Crossref API
Free Crossref API with no key: 160M+ scholarly works with DOIs, authors, journals, citations and funding data. The backbone of academic metadata. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the Crossref API?
The Crossref REST API is a free, key-free API providing metadata for more than 160 million scholarly works — journal articles, books, datasets and preprints — including DOIs, authors, affiliations, references and funding information.
Crossref is the organisation that issues DOIs, which makes it the authoritative source for academic metadata rather than an aggregator. If a paper has a DOI, Crossref knows about it.
Adding your email via the `mailto` parameter moves you into the 'polite pool', which gets noticeably better performance and reliability than anonymous requests. It costs nothing and is the single easiest improvement to any Crossref integration.
Quick facts
- Base URL
https://api.crossref.org- Authentication
- No API key. Supplying `mailto=you@example.com` puts you in the faster 'polite pool'.
- Rate limit
- No hard limit, but the polite pool gets better service. Bulk users should use the data dumps.
- Pricing
- Free open metadata.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Crossref API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Query scholarly works
GET https://api.crossref.org/works?rows=1&select=DOI,title
curl 'https://api.crossref.org/works?rows=1&select=DOI,title'const res = await fetch("https://api.crossref.org/works?rows=1&select=DOI,title");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.crossref.org/works?rows=1&select=DOI,title", timeout=20)
res.raise_for_status()
print(res.json()){
"status": "ok",
"message-type": "work-list",
"message-version": "1.0.0",
"message": {
"facets": {},
"total-results": 185622127,
"items": [
{
"DOI": "10.1007/978-3-658-17671-6_18-1",
"title": [
"Soziale Innovation"
]
}
],
"items-per-page": 1,
"query": {
"start-index": 0,
"search-terms": null
}
}
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
rows | integer | Optional | Results per page, max 1000. 20 |
offset / cursor | string | Optional | Pagination; use cursor for deep paging. * |
query | string | Optional | Free-text search across metadata. machine learning |
filter | string | Optional | Filters such as from-pub-date or type. type:journal-article |
select | string | Optional | Restrict returned fields to shrink the payload. DOI,title |
mailto | string | Optional | Your email — enables the polite pool. you@example.com |
Response fields
message.total-resultsinteger- Total works matching the query.
message.items[].DOIstring- The work's DOI — the stable identifier.
message.items[].titlearray- Title, as an array even when there is one.
message.items[].authorarray- Authors with given/family names and ORCID where known.
message.items[].container-titlearray- Journal or book title.
message.items[].is-referenced-by-countinteger- Citation count as tracked by Crossref.
message.items[].referencearray- The work's own reference list, when deposited.
What you can build with the Crossref API
- Resolve a DOI to full bibliographic metadata
- Build a citation manager or reference tool
- Analyse publication and citation trends
- Enrich a research repository with authoritative metadata
Common errors and how to fix them
Titles are arrays
Crossref returns title as an array.
Fix: Read title[0]; the array form supports multilingual titles.
Slow or throttled responses
You are in the anonymous pool.
Fix: Add mailto=you@example.com to join the polite pool — free and noticeably faster.
Deep paging fails past 10,000
offset is capped.
Fix: Use cursor-based paging with cursor=* and follow next-cursor.
Crossref API — frequently asked questions
Is the Crossref API free?
Yes, completely free with no API key. Adding your email as a mailto parameter puts you in the polite pool, which gets better performance.
How many works does it cover?
Over 160 million scholarly records — essentially everything with a DOI, since Crossref is the organisation that issues them.
Why is the title an array?
To support multilingual and alternative titles. In practice you read title[0], but the array is always there.
How do I page through large result sets?
Use cursor paging: start with cursor=* and follow the next-cursor value. Offset-based paging is capped at 10,000 results.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
Crossref is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.