
Crossref Scraper
hipersoft/crossref-scraper
Bulk-scrape scholarly works from Crossref's 150M+ record index: DOI, title, authors (with ORCID), journal, publisher, publication date, citation count, references, ISSN, subjects and abstract. Full-text search, date and type filters, thousands of results per run. No setup.
Total users
2Monthly users
1Total runs
115Per work scraped
$0.001Last rebuilt
Oct 28, 2026Overview
Bulk-scrape scholarly metadata from Crossref, the DOI registry indexing 150M+ works across virtually every academic publisher. Get DOIs, titles, authors (with ORCID), journals, publishers, publication dates, citation counts, references, ISSNs, subjects and abstracts as clean JSON, CSV, Excel or XML. Full-text search plus date and type filters, thousands of results per run. No account, no API key — fast and reliable.

What does the Crossref Scraper do?
The Crossref Scraper searches the Crossref index and returns rich, structured metadata for every matching scholarly work. Filter by free-text query, publication date range and work type, then export DOIs, citation counts, author lists and abstracts at scale — ideal for literature reviews, bibliometrics and building research databases.
Features
- 🔎 Full-text search — across titles, authors, journals and more
- 📅 Date filters — from/until publication date
- 🗂️ Type filter — journal-article, book-chapter, proceedings-article, dataset, preprint…
- 🔗 DOIs + citation counts — citation count per work, plus reference counts
- 👥 Authors with ORCID + affiliation
- 🧾 Abstracts — when the publisher deposits them (coverage varies)
- 📊 Bulk export — scales to hundreds of thousands of records per run
What you get

One record per work:
{
"doi": "10.1089/crispr.2018.29011.rba",
"title": "Cultivating CRISPR",
"type": "journal-article",
"authors": [{ "name": "Rodolphe Barrangou", "given": "Rodolphe", "family": "Barrangou", "orcid": null, "affiliation": [] }],
"journal": "The CRISPR Journal",
"publisher": "SAGE Publications",
"publishedYear": 2018,
"citationCount": 12,
"referenceCount": 0,
"issn": "2573-1599",
"subjects": [],
"url": "https://doi.org/10.1089/crispr.2018.29011.rba",
"abstract": null
}
Output schema
| Field | Type | Description |
|---|---|---|
doi |
string | Digital Object Identifier of the work |
title |
string | Work title |
subtitle |
string | Work subtitle, if present |
type |
string | Work type, e.g. journal-article, book-chapter, dataset |
authors |
array | Author objects with name, given/family, ORCID and affiliation |
authorCount |
integer | Number of authors |
journal |
string | Container / journal title |
publisher |
string | Publisher name |
publishedDate |
string | Publication date |
publishedYear |
integer | Publication year |
volume |
string | Journal volume |
issue |
string | Journal issue |
page |
string | Page range |
issn |
string | ISSN of the containing publication |
citationCount |
integer | Number of times the work is referenced by others |
referenceCount |
integer | Number of references the work cites |
subjects |
array | Subject / category tags |
language |
string | Language of the work |
url |
string (URL) | Resolvable DOI link |
abstract |
string | Abstract text, when the publisher deposits one |
Input
{
"query": "crispr gene editing",
"fromDate": "2020-01-01",
"type": "journal-article",
"maxResults": 5000
}
| Field | Type | Description |
|---|---|---|
query |
string | Free-text search (blank = browse by filters only). |
fromDate / toDate |
string | Publication date range. |
type |
string | Crossref work type filter. |
hasAbstractOnly |
boolean | Only works that include an abstract. |
maxResults |
integer | Max works to return. |
mailto |
string | Your email — used to identify your requests for faster, more reliable access. |
Use cases
- Literature reviews & bibliometrics — pull every work on a topic with citation counts.
- Research databases — build DOI/metadata datasets at scale.
- Citation analysis — rank works and authors by impact.
- Publisher / journal monitoring — track new output by type and date.
- Enrichment — resolve DOIs to full metadata for an existing reference list.
How to scrape Crossref data
- Add the Crossref Scraper to your Apify account.
- Enter a query, or leave it blank and browse by filters.
- Optionally set fromDate/toDate, type, hasAbstractOnly and maxResults.
- Click Run.
- Export the dataset as JSON, CSV, Excel or XML, or pull it via the Apify API.
Need more research data?
- arXiv Scraper — preprints with full abstracts and PDF links.
- ClinicalTrials Scraper — study records from the clinical trials registry.
- OpenLibrary Scraper — book metadata, authors, subjects and editions.
FAQ
Do I need an API key or login?
No. There's no account, login or API key required. You can optionally add your email via mailto for faster, more reliable access.
How many works can I scrape per run?
Set maxResults as high as you need — it scales to hundreds of thousands of records per run, so you can pull an entire topic or date range in one go.
How does billing work? You pay only per work you get, so small filtered runs stay cheap. See the Pricing tab for current rates.
What format is the output? Structured JSON — one record per work — exportable as JSON, CSV, Excel or XML. Each record includes DOI, title, authors with ORCID, journal, publisher, year, citation count, references and (where deposited) an abstract.
Can I filter by date or work type?
Yes. Use fromDate/toDate for a publication date range, type to keep only journal-article, book-chapter, dataset, preprint etc., and hasAbstractOnly to return only works that include an abstract.
Is this only public data? Yes. Crossref openly publishes DOI and citation metadata, and this Actor returns only those public records.
Can I connect this to other tools? The Crossref Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Original clean-room implementation. Returns Crossref's openly available metadata as-is; you are responsible for compliance with Crossref's terms. Not affiliated with or endorsed by Crossref.
Input
| Field | Type | Description |
|---|---|---|
querySearch query | string | Free-text search across titles, authors, journals and more. Leave blank to browse purely by the filters below. |
fromDatePublished from | string | Earliest publication date (YYYY-MM-DD or YYYY). Optional. |
toDatePublished to | string | Latest publication date (YYYY-MM-DD or YYYY). Optional. |
typeWork type | string | Filter by type, e.g. journal-article, book-chapter, proceedings-article, dataset, posted-content. Optional. |
hasAbstractOnlyOnly works with an abstract | boolean | Return only records that include an abstract. Default: false |
includeAbstractInclude abstracts | boolean | Include abstract text when Crossref has it (coverage varies by publisher). Default: true |
maxResultsMax results | integer | Maximum works to return (a broad query can match hundreds of thousands). Default: 1000 |
mailtoContact email (optional) | string | Your email — joins Crossref's faster 'polite pool'. Optional. |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~crossref-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "crispr gene editing"
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/crossref-scraper").call(run_input={
"query": "crispr gene editing"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/crossref-scraper').call({
"query": "crispr gene editing"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Work scraped One scholarly work with metadata and citation count | $0.001 | $0.0005 |
| API request One Crossref API page request | $0.0005 | $0.0005 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Europe PMC Scraper
Bulk-scrape life-science and biomedical literature from Europe PMC (40M+ records: PubMed, PMC, preprints, patents): title, abstract, authors, journal, year, DOI, PMID/PMCID, citation count, MeSH terms, open-access flag and full-text/PDF links. Thousands per run. No setup.
325 runs · 5 users · $0.001 / article scrapedarXiv Papers Scraper
Search and extract arXiv papers: title, abstract, authors, categories, published/updated dates, DOI, journal reference, and direct PDF links. Filter by category and sort by newest, recently updated or relevance. Fetch by arXiv ID too. For research, lit reviews and AI/ML monitoring. No setup.
140 runs · 2 users · $0.0025 / paper scrapedLetterboxd Scraper
Scrape Letterboxd films with ratings, rating counts, genres, director, cast, runtime and synopsis. Feed it film pages, a user's films/watchlist/diary, any list URL, or browse pages. For film data, recommendations and research.
139 runs · 7 users · $0.0042 / film scrapedOpenLibrary Book Scraper
Search millions of books on OpenLibrary by keyword, author, subject or ISBN and get title, authors, publisher, year, subjects, ISBNs, edition count, ratings, page count and cover. Clean, no setup.
124 runs · 5 users · $0.002 / book scrapedSemantic Scholar Scraper
Bulk-scrape academic papers from Semantic Scholar's 200M+ corpus: title, abstract, AI TLDR summary, authors, venue, year, citation & influential-citation counts, fields of study, DOI/PubMed/arXiv IDs and open-access PDF links. Filter by year, field and citations. Thousands per run. No setup.
123 runs · 7 users · $0.001 / paper scrapedWikipedia Scraper
Search Wikipedia or look up exact articles and get the full plain-text content, summary, categories, image, Wikidata ID and monthly pageview trends. Any language. Great for research, RAG and AI datasets. No setup.
121 runs · 1 users · $0.001 / article scrapedSend the site and the fields. We build it and you get it first.