OpenCitations Scraper | Citations & References by DOI avatar

OpenCitations Scraper | Citations & References by DOI

Pricing

from $0.60 / 1,000 citation scrapeds

Go to Apify Store
OpenCitations Scraper | Citations & References by DOI

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

7 hours ago

Last modified

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_sc and author_sc are 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. maxPerDoi bounds 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"
}
FieldDescription
source_doiThe DOI you asked about
directioncitations or references, which way this row was walked
citing_doi, cited_doiThe two ends of the citation link
citation_dateOpenCitations' creation date for the citation
journal_scJournal self-citation flag
author_scAuthor self-citation flag
scraped_atCapture 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

Found a bug or want a field added? Open an issue on the Actor's Apify Console page.

Last verified: 2026-08