Paper Citation & Reference Lookup (by DOI, arXiv ID, or PMID)
omnial/paper-details
Given a paper's DOI, arXiv id, OpenAlex id, or PMID, returns its full metadata (title, abstract, authors, venue, publication year, and field-of-study tags), its citation counts, its reference list (the works it cites), and its recent citing works (who has cited it since) -- for building a bibliography or checking a paper's citation impact in one call. An id or DOI that does not resolve to a known paper returns an error instead of an empty result.
Price
$0.0451 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.
Data source
Data from OpenAlex and Semantic Scholar.
Use it
Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.
Connect once and your AI can find and run this tool, and any other it needs.
For developers: the calls your assistant makes
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/paper-details" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/paper-details" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/paper-details", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/paper-details", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0451 |
- Updated
- Oct 27, 2026
Input and output schemas
Input schema
{
"type": "object",
"anyOf": [
{
"required": [
"id"
]
},
{
"required": [
"doi"
]
}
],
"properties": {
"id": {
"type": "string",
"description": "arXiv id, DOI, OpenAlex id, or PMID"
},
"doi": {
"type": "string",
"description": "alias for id (DOI form)"
},
"ref_limit": {
"type": "string",
"default": "25",
"description": "max references (0-100)"
},
"cite_limit": {
"type": "string",
"default": "25",
"description": "max citing works (0-100)"
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Present instead of `count`/`items` when the id/DOI does not resolve to a known paper. Typically the literal string 'HTTP_400'."
},
"count": {
"type": "number",
"description": "Number of entries in `items` (typically 1)."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"doi": {
"type": [
"string",
"null"
],
"description": "The paper's own DOI. Null when the paper has none (e.g. an arXiv preprint with no assigned DOI) -- not every paper has one."
},
"tldr": {
"type": [
"string",
"null"
],
"description": "A short, auto-generated one-sentence summary. Null when none is available."
},
"type": {
"type": "string",
"description": "Observed as the literal string 'paper_details'."
},
"year": {
"type": "number"
},
"title": {
"type": "string"
},
"venue": {
"type": "string"
},
"source": {
"type": "string",
"description": "Which citation-graph source resolved this record, e.g. 'arxiv'."
},
"authors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Author names as published on the paper."
},
"citedBy": {
"type": "array",
"items": {
"type": "object",
"properties": {
"doi": {
"type": [
"string",
"null"
],
"description": "Every real entry observed carries a DOI, but the field is declared nullable to match `references[].doi`'s confirmed behavior rather than assume this list is always fully populated."
},
"year": {
"type": "number"
},
"title": {
"type": "string"
},
"citedByCount": {
"type": "number"
}
},
"additionalProperties": true
},
"description": "Recent works that cite this paper, capped by the `cite_limit` input."
},
"abstract": {
"type": "string"
},
"published": {
"type": "string",
"description": "Publication date-time string, e.g. '2017-06-12T17:57:34Z'."
},
"openAlexId": {
"type": [
"string",
"null"
],
"description": "Often null."
},
"references": {
"type": "array",
"items": {
"type": "object",
"properties": {
"doi": {
"type": [
"string",
"null"
],
"description": "Null for several real entries observed -- not every cited work has a DOI on file."
},
"year": {
"type": "number"
},
"title": {
"type": "string"
},
"citedByCount": {
"type": "number"
}
},
"additionalProperties": true
},
"description": "The works this paper cites, capped by the `ref_limit` input."
},
"citedByCount": {
"type": [
"number",
"null"
],
"description": "Often null."
},
"citationCount": {
"type": [
"number",
"null"
],
"description": "Often null; not documented whether this ever differs from `citedByCount` when populated."
},
"fieldsOfStudy": {
"type": "array",
"items": {
"type": "string"
}
},
"referenceCount": {
"type": [
"number",
"null"
],
"description": "Null when the citation graph supplied no counts for this paper."
},
"citationGraphSource": {
"type": [
"string",
"null"
],
"description": "Which upstream citation graph supplied citation counts, e.g. 'semanticscholar'. Null when no citation graph matched the paper."
},
"influentialCitationCount": {
"type": [
"number",
"null"
],
"description": "Null when the citation graph supplied no counts for this paper."
}
},
"additionalProperties": true
}
},
"message": {
"type": "string",
"description": "Human-readable error text accompanying `code`."
}
},
"description": "The paper lookup result. A successful lookup returns `count`/`items`; an id or DOI that does not resolve returns `code`/`message` instead -- no field below is guaranteed present on every call.",
"additionalProperties": true
}