Contract
{
"type": "object",
"anyOf": [
{
"required": [
"id"
]
},
{
"required": [
"doi"
]
},
{
"required": [
"q"
]
}
],
"properties": {
"q": {
"type": "string",
"description": "query (alternative to id â relevance search)"
},
"id": {
"type": "string",
"description": "paper arXiv id, DOI, or OpenAlex id"
},
"doi": {
"type": "string",
"description": "alias for id (DOI form)"
},
"maxItems": {
"type": "string",
"default": "15",
"description": "1-50"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"count": {
"type": "number",
"description": "Number of items in `items` for this call -- e.g. 15 (the default `maxItems`) for a seed-paper lookup, 5 for a topic query with an explicit `maxItems` of 5."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"doi": {
"type": [
"string",
"null"
],
"description": "DOI string when the paper has one (e.g. \"10.1109/cvpr.2016.90\"); observed null on OpenAlex-sourced items the vendor has no DOI on file for."
},
"url": {
"type": "null",
"description": "Always null; the paper's landing-page URL is not returned."
},
"type": {
"type": "string",
"description": "Constant \"related_paper\" on every item observed."
},
"year": {
"type": "number",
"description": "Publication year, present on every item observed."
},
"title": {
"type": "string",
"description": "The paper's title, present on every item observed."
},
"venue": {
"type": [
"string",
"null"
],
"description": "Journal or venue name when known; observed null on several items with none on file, including arXiv preprints and some OpenAlex items."
},
"pdfUrl": {
"type": "null",
"description": "Always null; a direct PDF URL is not returned."
},
"source": {
"type": "string",
"description": "Which backing catalog surfaced this item, e.g. \"openalex\" or \"arxiv\"."
},
"authors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Published author list, in the order returned by the source. In one observed entry the source folded institutional affiliation/address fragments into this array."
},
"sources": {
"type": "array",
"items": {
"type": "string"
},
"description": "Present only for a topic query, not a seed-paper lookup -- which backing catalog(s) match this item for a topic search; a single-element array matching `source` on every item observed."
},
"abstract": {
"type": "string",
"description": "Full abstract text on every item observed."
},
"published": {
"type": "string",
"description": "Publication date. Format varies by source: bare date (e.g. \"2016-06-01\") on OpenAlex-sourced items, full ISO-8601 timestamp (e.g. \"2015-03-25T21:11:05Z\") on arXiv-sourced items."
},
"relatedBy": {
"type": "string",
"description": "How this item was matched: \"openalex\" for a seed-paper lookup, \"query\" for a topic query."
},
"citedByCount": {
"type": [
"number",
"null"
],
"description": "Citation count on OpenAlex-sourced items; observed null on every arXiv-sourced item (arXiv's own index does not track this)."
},
"citationCount": {
"type": [
"number",
"null"
],
"description": "Same value as `citedByCount` on every item observed; null wherever `citedByCount` is null."
},
"openAccessUrl": {
"type": "null",
"description": "Always null; an open-access copy URL is not returned."
}
},
"additionalProperties": false
}
}
},
"description": "The related-papers result.",
"additionalProperties": false
}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.045045 |
- 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
- Oct 12, 2026
