Crossref Scraper — 150M+ Papers, DOIs & Citations avatar

Crossref Scraper — 150M+ Papers, DOIs & Citations

Pricing

from $0.97 / 1,000 works

Go to Apify Store
Crossref Scraper — 150M+ Papers, DOIs & Citations

Crossref Scraper — 150M+ Papers, DOIs & Citations

Search Crossref for journal articles, preprints, book chapters and datasets by keyword or journal ISSN. Each row holds the DOI, title, authors, journal, publisher, type, publication date and citation count, plus subjects, ISSN and abstract where the publisher deposited them. $1.00 per 1,000 works.

Pricing

from $0.97 / 1,000 works

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

4 days ago

Last modified

Share

Type a research phrase or a journal ISSN and get back the works Crossref has a DOI for: journal articles, preprints, book chapters, datasets and dissertations, one row each, with the DOI, title, authors, journal, publisher, publication date and citation count.

The honest part first. Crossref holds what publishers deposited with it, and plenty of them deposit the bare minimum. Abstracts, subject terms and ISSNs are missing on a lot of older records, and the citation count reads 0 both when a work genuinely has none and when nobody has told Crossref.

InputSearch keywords, journal ISSNs, or both
OutputOne row per work: DOI, title, authors, journal, publisher, type, date, citations, subjects, ISSN, abstract, link
Ceiling20,000 works per run, 10,000 when sorted newest first
Account neededNone, and no API key
Price$1.00 per 1,000 works on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 5,000

🔍 What Crossref Scraper does

It runs your keywords against Crossref's search, which reads across titles, authors, abstracts and the rest of the deposited metadata, then pages through the matches so a large request keeps going past the first hundred.

You can narrow it to one work type or to particular journals by ISSN, set a published-on-or-after floor, and choose relevance, citation count or newest first as the order. Works with no DOI are skipped, and a DOI that turns up twice is delivered once.

Nothing is written to your dataset until the whole set has been collected, so you get either the full result set you asked for or a diagnostic row explaining why not. The one exception is a run that gets close to its time limit: it writes the works it has, and a TIME_LIMIT row says so.

📋 What data you get from each Crossref work

What you getField
The DOI, always presentdoi
Title and authorstitle, authors
The journal or book it appeared in, and its publisherjournal, publisher
What kind of work it istype
When it was published, as precisely as the publisher saidpublishedDate
How many works cite it, by Crossref's countcitations
Subject terms and the journal's ISSNssubjects, issn
The abstract as plain text, when one was depositedabstract
A link that resolves to the workurl

▶️ How to scrape Crossref

  1. Open Crossref Scraper and click Try for free.
  2. Type your keywords into Search query, or put an ISSN into Journal ISSN.
  3. Set Max works. Start around 50 to see the row shape.
  4. Pick a Work type filter and a Sort order if the defaults do not suit you, then click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost to scrape Crossref?

$1.00 per 1,000 works on the Free plan. Paid plans pay a little less: $0.99 on Starter, $0.98 on Scale and $0.97 on Business. On the free plan, the $5 Apify gives you each month covers about 5,000 works.

You pay per work delivered. Duplicate DOIs and works without a DOI are dropped before they are counted, diagnostic rows are not charged, and a search that matches nothing is not charged. Set a maximum cost on the run and it stops when it gets there.

📥 What you give it

{
"query": "CRISPR gene editing",
"filterType": "journal-article",
"fromDate": "2020-01-01",
"sort": "is-referenced-by-count",
"maxItems": 500
}
FieldDefaultWhat it is
querynone, the form starts with deep learningThe keywords to search for. Required unless you give an issn.
filterTypeall typesOne Crossref type: journal-article, proceedings-article, book-chapter, book, posted-content for preprints, dataset, report, dissertation or monograph.
issnnoneJournal ISSNs, such as 2169-3536, up to 50. You get works from any of them. With an ISSN set, query can be empty and you get the journal's whole list.
fromDatenoneYYYY-MM-DD. Only works published on or after this date. There is no matching end date.
sortrelevancerelevance, is-referenced-by-count for most cited, or published for newest first, which stops at 10,000 works.
maxItems100How many works to return, up to 20,000.
notionConnectornoneOptional. Writes each work into your Notion once the run finishes.
notionParentIdnoneOptional. The Notion data source to write into.
proxyConfigurationoffOptional network settings. Off by default, and a normal run does not need it.

fromDate has to be a real date shaped YYYY-MM-DD, and an ISSN has to be 8 characters like 0950-382X. Anything else stops the run with a BAD_INPUT row before a single search is made.

📤 What you get back

A real row from a run on 2 October 2026, with the author list cut short (the row carries all six names):

{
"ok": true,
"doi": "10.1067/mva.1993.50616",
"title": "Light reflection rheography: A simple noninvasive screening test for deep vein thrombosis",
"authors": ["Thomas W. Wakefield", "Subodh W. Arora", "David J. K. Lam", "..."],
"journal": "Journal of Vascular Surgery",
"publisher": "Elsevier BV",
"type": "journal-article",
"publishedDate": "1993-11",
"citations": 0,
"subjects": [],
"issn": ["0741-5214"],
"abstract": null,
"url": "https://doi.org/10.1067/mva.1993.50616"
}
FieldHow to read it
doiAlways present. Works without one are dropped before they reach you, so it is safe as a key.
authorsNames as Given Family. An organisation shows up under its own name when there is no person.
publishedDateYYYY-MM-DD where the publisher deposited a full date, otherwise YYYY-MM or just YYYY. Older records are usually the short forms.
citationsCrossref's referenced-by count, and 0 when Crossref has no figure at all.
subjects, issnArrays, often empty. Both depend on what the publisher deposited.
abstractPlain text with the publisher's markup stripped out, or null. Missing far more often than present.
urlCrossref's own link, falling back to https://doi.org/<DOI>.

🧾 Reading the output

Two kinds of row land in your dataset, and ok tells them apart.

RowHow to spot itBilled
A workok: true and a doiyes
A diagnosticok: false and an errorCodeno

The overview table in the Apify Console shows the work columns only, so a diagnostic row looks blank there. Switch to the JSON or All fields view to read it.

CodeWhat it means
BAD_INPUTNo query and no ISSN, a fromDate that is not a real YYYY-MM-DD date, an ISSN that is not one, or a search Crossref itself refused. The row says which.
NO_RESULTSThe search worked and nothing matched. totalResults on the row shows what Crossref counted.
RATE_LIMITEDCrossref asked for a slower pace than the run could keep.
SERVER_ERRORCrossref answered with a server error. Usually passes.
NOT_SERVEDThis request was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED.
NETWORKCrossref was unreachable. Re-run it.
TIME_LIMITThe run got close to its time limit and stopped on its own. The works delivered before that are complete and charged. Give the run more time, or ask for fewer works, to get the rest.

A run that ends on one of these rows still finishes as succeeded, except one: when the time limit stopped the run before any work came back, it ends as failed, with a TIME_LIMIT row saying so.

💡 What people use it for

  • Building a DOI list for a literature review, then fetching the papers themselves elsewhere.
  • Sorting a field by citation count to see which work everything else is built on.
  • Listing what one journal published since a date, with its ISSN in issn and the date in fromDate.
  • Checking which publisher holds a set of papers before writing to them about access.

🚧 What it does not do

  • No lookup by DOI or by author. Keywords and journal ISSNs are the ways in.
  • No end date. fromDate sets a floor and nothing sets a ceiling.
  • Newest first stops at 10,000 works, and a few records carry publication dates years ahead, which sort to the top. In one test the first rows were dated 2115 and 2106. Deep in that order, works sharing a date can repeat across pages; repeats are dropped and not charged, so a full run ends a little short (9,872 of 10,000 in that test).
  • Abstracts are mostly missing. Crossref only has one if the publisher deposited it.
  • citations cannot tell you zero from unknown. Both read 0.
  • No full text, and no PDF. You get the DOI and the link, not the paper.
  • Paging stops on a short page. If Crossref returns fewer than 100 items in one page, the run treats that as the end even when its own total says otherwise.
  • All or nothing. A failure partway through discards what had been collected, so you get a diagnostic row rather than a partial set.
  • Crossref is publisher-deposited metadata, not a curated index. Quality varies by publisher and by decade.
  • It is not an official Crossref tool. Dami's Studio is independent and is not affiliated with or endorsed by Crossref, or by any other company named on this page.

🧭 Which research scraper do you need?

If you wantUse
arXiv preprints with full abstracts and PDF linksarXiv Scraper
Anything with a registered DOI, with its journal, publisher and ISSNThis one
Papers with readable abstracts, institutions and open-access linksOpenAlex Scraper
Patents rather than papersGoogle Patents Search Scraper
Book records by keyword, title or ISBNBooks Scraper
Encyclopedia articles as plain textWikipedia Scraper
arXiv, OpenAlex and Wikipedia searches as tools for an AI agentResearch MCP Server

❓ Questions people ask

Do I need a Crossref account or an API key?

No. Crossref publishes this metadata openly and the actor reads it directly.

Why are so many abstracts null?

Crossref stores what the publisher sent. Most publishers never deposit an abstract, so the field is empty far more often than it is filled.

Can I look a paper up by its DOI?

Not here. This searches by keyword and by journal ISSN.

Can I list everything one journal published?

Yes. Put its ISSN in issn and leave the query empty. A big journal holds more than one run delivers, so sort newest first or by citations to get the end you care about.

Why did I get fewer works than I asked for?

Either Crossref has fewer matches, or a page came back short and paging stopped there. You are charged for what arrived.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/crossref-scraper. Either way the run happens on your Apify account at the same price.

Crossref publishes this metadata openly. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the run ID and the query you used. The errorCode on the diagnostic row usually names the problem on its own.