OpenCitations Scraper | Citations & References by DOI
Pricing
from $0.60 / 1,000 citation scrapeds
OpenCitations Scraper | Citations & References by DOI
Scrape the OpenCitations INDEX (1.6B links) by DOI. Get all citing papers, cited references, dates and self citation flags. No API key. Free tier. Works in Claude, ChatGPT and any MCP agent for citation graphs and literature reviews.
Pricing
from $0.60 / 1,000 citation scrapeds
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
OpenCitations Scraper: Citations & References by DOI
Pay only for results delivered. Browse all Actors.
š° From $0.60 / 1,000 results.
Expand any DOI into its citation graph using the OpenCitations INDEX. Ask for citations, references, or both directions in one run, and get one row per citation link with source DOI, direction, citing DOI, cited DOI, citation creation date, and the two self-citation flags OpenCitations publishes: journal self-citation and author self-citation.
Pure HTTP against the official OpenCitations v2 API. No API key, no login, no browser, up to 2,000 links per DOI.
Why use this OpenCitations scraper
- Both directions from one input.
direction: "both"walks citations and references for every DOI in the same run, which is what you need to build a two-hop neighbourhood. - Self-citation flags included.
journal_scandauthor_scare what let you discount self-citation before you report an impact number. Almost nothing else exposes them. - DOI prefixes handled for you. OpenCitations v2 requires a prefixed identifier (
doi:10.1038/...); the Actor accepts DOIs with or without the prefix and normalises them. - A per-DOI cap.
maxPerDoibounds each DOI independently, so one heavily cited paper cannot consume the whole run. - Missing DOIs are skipped cleanly. A DOI with no OpenCitations coverage returns HTTP 404, which the Actor treats as "no links" rather than as a failure, and charges nothing for it.
Find everything that cites a paper
{"dois": ["10.1038/nature12373"],"direction": "citations","maxPerDoi": 500}
The core lookup: every OpenCitations-indexed work citing that DOI, with dates and self-citation flags.
Pull a paper's reference list
{"dois": ["10.1038/nature12373"],"direction": "references","maxPerDoi": 200}
references walks the other way, everything the paper cites.
Build a two-way neighbourhood for several papers
{"dois": ["10.1038/nature12373","10.1126/science.1259855","10.1016/j.cell.2015.09.038"],"direction": "both","maxPerDoi": 300}
With both, each DOI produces two labelled sets in the same dataset, distinguished by the direction field on every row.
Measure real citation impact, net of self-citation
{"dois": ["10.1016/S2213-8587(23)00123-4"],"direction": "citations","maxPerDoi": 2000}
Filter the output on journal_sc and author_sc to separate independent citations from self-citations before reporting an impact figure.
What data does the OpenCitations scraper return
{"source_doi": "10.1038/nature12373","direction": "citations","citing_doi": "10.1016/j.cell.2016.01.012","cited_doi": "10.1038/nature12373","citation_date": "2016-02-11","journal_sc": "no","author_sc": "no","scraped_at": "2026-08-01T22:00:00.000Z"}
| Field | Description |
|---|---|
source_doi | The DOI you asked about |
direction | citations or references, which way this row was walked |
citing_doi, cited_doi | The two ends of the citation link |
citation_date | OpenCitations' creation date for the citation |
journal_sc | Journal self-citation flag |
author_sc | Author self-citation flag |
scraped_at | Capture timestamp |
OpenCitations indexes open citation data deposited by participating publishers. Coverage is broad but not universal, so a citation count from this source is a floor rather than a total.
How the scraper works without an API key
OpenCitations publishes its INDEX through an open v2 REST API. This Actor prefixes each DOI, calls the citations and/or references endpoint, pauses 400 ms between requests, and emits one flat row per link. A 404 means the DOI has no indexed links in that direction and is handled as an empty result.
What can you build with citation-graph data
Bibliometrics and impact analysis. Citation counts with self-citations separable, per DOI.
Literature discovery. Follow a seminal paper forward to find what built on it, or backward to find its foundations.
Citation-aware RAG. Rank retrieved papers by how heavily they are cited within your corpus.
Research-integrity checks. Self-citation rates per author or journal, computed from published flags rather than estimated.
How much does it cost to build a citation graph
Pay per citation link delivered: $0.002 on the Apify Free plan, $0.001 on Gold and above. DOIs with no indexed links are never charged.
How do I use OpenCitations in Claude or ChatGPT
https://mcp.apify.com/?tools=themineworks/opencitations-citation-graph
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/opencitations-citation-graph').call({dois: ['10.1038/nature12373'],direction: 'both',maxPerDoi: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
OpenCitations FAQ
Do I need an API key? No. OpenCitations is open infrastructure.
Do I have to prefix my DOIs with doi:? No. Supply them either way; the Actor normalises them.
What is the difference between citations and references? citations returns works citing your DOI. references returns works your DOI cites.
What do journal_sc and author_sc mean? Whether the citing and cited works share a journal, or share at least one author. Both come straight from OpenCitations.
Why is a citation count lower than Google Scholar's? OpenCitations only indexes openly deposited citation data. It is a reliable floor, not a complete total.
Complete your scholarly research pipeline
- Crossref Scraper, resolve the DOIs in the graph to titles, authors and journals.
- PubMed Scraper, abstracts and MeSH terms for the biomedical ones.
- arXiv Scraper, the preprint record.
Found a bug or want a field added? Open an issue on the Actor's Apify Console page.
Related guides
Last verified: 2026-08