Skip to content
Eden Engine

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.

activeper callv4

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

OpenAlex and Semantic Scholar

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
agent
// 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 do

Not 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.

ChargePrice
Per call
$0.0451
Updated
Oct 27, 2026

Input and output schemas

Input schema
input_schema.json
{
  "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
output_schema.json
{
  "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
}