Crossref Scraper — 150M+ Papers, DOIs & Citations
Pricing
from $0.97 / 1,000 works
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
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.
| Input | Search keywords, journal ISSNs, or both |
| Output | One row per work: DOI, title, authors, journal, publisher, type, date, citations, subjects, ISSN, abstract, link |
| Ceiling | 20,000 works per run, 10,000 when sorted newest first |
| Account needed | None, 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 get | Field |
|---|---|
| The DOI, always present | doi |
| Title and authors | title, authors |
| The journal or book it appeared in, and its publisher | journal, publisher |
| What kind of work it is | type |
| When it was published, as precisely as the publisher said | publishedDate |
| How many works cite it, by Crossref's count | citations |
| Subject terms and the journal's ISSNs | subjects, issn |
| The abstract as plain text, when one was deposited | abstract |
| A link that resolves to the work | url |
▶️ How to scrape Crossref
- Open Crossref Scraper and click Try for free.
- Type your keywords into Search query, or put an ISSN into Journal ISSN.
- Set Max works. Start around 50 to see the row shape.
- Pick a Work type filter and a Sort order if the defaults do not suit you, then click Start.
- 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}
| Field | Default | What it is |
|---|---|---|
query | none, the form starts with deep learning | The keywords to search for. Required unless you give an issn. |
filterType | all types | One Crossref type: journal-article, proceedings-article, book-chapter, book, posted-content for preprints, dataset, report, dissertation or monograph. |
issn | none | Journal 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. |
fromDate | none | YYYY-MM-DD. Only works published on or after this date. There is no matching end date. |
sort | relevance | relevance, is-referenced-by-count for most cited, or published for newest first, which stops at 10,000 works. |
maxItems | 100 | How many works to return, up to 20,000. |
notionConnector | none | Optional. Writes each work into your Notion once the run finishes. |
notionParentId | none | Optional. The Notion data source to write into. |
proxyConfiguration | off | Optional 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"}
| Field | How to read it |
|---|---|
doi | Always present. Works without one are dropped before they reach you, so it is safe as a key. |
authors | Names as Given Family. An organisation shows up under its own name when there is no person. |
publishedDate | YYYY-MM-DD where the publisher deposited a full date, otherwise YYYY-MM or just YYYY. Older records are usually the short forms. |
citations | Crossref's referenced-by count, and 0 when Crossref has no figure at all. |
subjects, issn | Arrays, often empty. Both depend on what the publisher deposited. |
abstract | Plain text with the publisher's markup stripped out, or null. Missing far more often than present. |
url | Crossref'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.
| Row | How to spot it | Billed |
|---|---|---|
| A work | ok: true and a doi | yes |
| A diagnostic | ok: false and an errorCode | no |
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.
| Code | What it means |
|---|---|
BAD_INPUT | No 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_RESULTS | The search worked and nothing matched. totalResults on the row shows what Crossref counted. |
RATE_LIMITED | Crossref asked for a slower pace than the run could keep. |
SERVER_ERROR | Crossref answered with a server error. Usually passes. |
NOT_SERVED | This request was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED. |
NETWORK | Crossref was unreachable. Re-run it. |
TIME_LIMIT | The 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
issnand the date infromDate. - 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.
fromDatesets 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.
citationscannot tell you zero from unknown. Both read0.- 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 want | Use |
|---|---|
| arXiv preprints with full abstracts and PDF links | arXiv Scraper |
| Anything with a registered DOI, with its journal, publisher and ISSN | This one |
| Papers with readable abstracts, institutions and open-access links | OpenAlex Scraper |
| Patents rather than papers | Google Patents Search Scraper |
| Book records by keyword, title or ISBN | Books Scraper |
| Encyclopedia articles as plain text | Wikipedia Scraper |
| arXiv, OpenAlex and Wikipedia searches as tools for an AI agent | Research 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.
Is scraping Crossref legal?
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.