Contract
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "author name to search"
},
"maxItems": {
"type": "string",
"default": "10",
"description": "1-25 candidate authors"
},
"top_works": {
"type": "string",
"default": "5",
"description": "top papers per author (0-25)"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Present instead of `count`/`items` when the upstream provider rejects the request outright. Observed as 'HTTP_400' for a nonsense/invalid name in the one real fixture captured; behavior for a merely-unrecognized-but-well-formed name is unconfirmed."
},
"count": {
"type": "number",
"description": "Number of candidate profiles in `items`. Absent (along with `items`) when the name was rejected outright -- see `code`/`message`."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The candidate researcher's publication name, e.g. 'Geoffrey E. Hinton'."
},
"type": {
"type": "string",
"description": "Observed as the literal string 'author' on every entry."
},
"orcid": {
"type": [
"string",
"null"
],
"description": "The researcher's ORCID identifier, when the profile has one on file. Observed as `null` on every entry in the one real fixture captured; a populated value's shape is unconfirmed."
},
"hIndex": {
"type": "number"
},
"i10Index": {
"type": "number"
},
"topWorks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"doi": {
"type": [
"string",
"null"
],
"description": "The paper's DOI (e.g. '10.1038/nature14539'), when it has one on file. Observed `null` for several works in the one real fixture captured -- not every indexed work carries a DOI."
},
"url": {
"type": "null",
"description": "A link to the paper (a doi.org or openalex.org URL). Value withheld the same way as `openAlexId`."
},
"year": {
"type": "number"
},
"title": {
"type": "string"
},
"citedByCount": {
"type": "number"
}
},
"additionalProperties": true
},
"description": "This author's most-cited papers, up to the input `top_works` count. Empty array observed for several low-publication-count candidates in the one real fixture captured."
},
"openAlexId": {
"type": "null",
"description": "An OpenAlex researcher-profile identifier URL. Value withheld (always returned as `null` regardless of the real underlying id) -- only that the field exists is observable, not the identifier itself."
},
"worksCount": {
"type": "number",
"description": "Total publications on file."
},
"affiliations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ror": {
"type": "null",
"description": "A ror.org research-organization identifier URL. Value withheld the same way as `openAlexId`."
},
"name": {
"type": "string",
"description": "The institution's public name."
},
"country": {
"type": "string",
"description": "Two-letter country code, e.g. 'CA'."
}
},
"additionalProperties": true
},
"description": "Current/recent institutional affiliations. Empty array observed for several low-publication-count candidates in the one real fixture captured."
},
"citedByCount": {
"type": "number",
"description": "Total citations across all works."
},
"meanCitedness2yr": {
"type": "number",
"description": "Average citations per work over the most recent 2-year window."
}
},
"additionalProperties": true
},
"description": "One entry per candidate author profile matching the searched name -- a common name can return many unrelated people, not one disambiguated match (10 distinct people observed for a single well-known name, several sharing near-identical name strings)."
},
"message": {
"type": "string",
"description": "Human-readable detail accompanying `code`."
}
},
"description": "The search result, as returned at routing.responseResultPath ($.output).",
"additionalProperties": true
}Pricing
Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.
Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.
| Charge | Rate |
|---|---|
Per call Flat, regardless of what comes back | $0.03003 |
- Cost basis
- Not recorded
This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.
- Updated
- Sep 15, 2026
