BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://api.crossref.org/works?rows=1&select=DOI,title'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://api.crossref.org/works?rows=1&select=DOI,title", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "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

ParameterTypeRequiredDescription
rowsintegerOptionalResults per page, max 1000. 20
offset / cursorstringOptionalPagination; use cursor for deep paging. *
querystringOptionalFree-text search across metadata. machine learning
filterstringOptionalFilters such as from-pub-date or type. type:journal-article
selectstringOptionalRestrict returned fields to shrink the payload. DOI,title
mailtostringOptionalYour 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

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.