When to use this API
When you need metadata for a scholarly work — journal articles, books, conference papers, preprints, datasets — and you have a DOI, an ISSN, or a topic to search. Crossref registers DOIs for over 150 million scholarly records and is the authoritative source for bibliographic metadata: titles, authors, publication dates, citation counts, and reference lists. The less obvious value is in Crossref's coverage metrics: for any journal, you can see what fraction of its articles include ORCID IDs, funder data, and open licenses — which turns out to be useful for assessing whether a publisher is participating seriously in open scholarly infrastructure. For full text, preprint content, or citation graphs, look elsewhere; Crossref gives you registration metadata, not the papers themselves.
Resolving a DOI to its full bibliographic record
"Can you give me the full citation for DOI 10.1037/0003-066X.59.1.29?" A DOI is an alias to a stable metadata record; /works/{doi} retrieves it with no auth required. "How the Mind Hurts and Heals the Body" is a 2004 paper in American Psychologist — not the flashiest title in psychoneuroimmunology, but it has 108 citations in the Crossref index and a reference list of 105 entries, which makes it a useful example for what the API actually stores.
curl "https://api.crossref.org/works/10.1037/0003-066X.59.1.29" | head -c 10000
{
"status": "ok",
"message-type": "work",
"message": {
"DOI": "10.1037/0003-066x.59.1.29",
"title": ["How the Mind Hurts and Heals the Body."],
"type": "journal-article",
"publisher": "American Psychological Association (APA)",
"short-container-title": ["American Psychologist"],
"author": [
{ "given": "Oakley", "family": "Ray", "sequence": "first", "affiliation": [] }
],
"published-online": { "date-parts": [[2004]] },
"volume": "59",
"issue": "1",
"page": "29-40",
"reference-count": 105,
"is-referenced-by-count": 108
}
}
title and author are always arrays, even for single-authored single-titled works. The DOI field in the response is normalized to lowercase (0003-066x) even though the request used mixed case — string equality checks on DOIs will silently fail unless you lowercase both sides first. is-referenced-by-count is a live figure that Crossref updates as new works cite this one, not a static snapshot from publication time.
The full citation for DOI 10.1037/0003-066X.59.1.29 is: Oakley Ray, "How the Mind Hurts and Heals the Body," American Psychologist, vol. 59, no. 1, pp. 29–40, 2004. It has been cited 108 times according to Crossref.
Searching the scholarly literature by topic, author, and publisher
"Find peer-reviewed papers on Zika virus from a specific author at Wiley." The /works endpoint accepts query.bibliographic, query.author, and query.publisher-name as separate parameters, which lets you compose a precise search without Crossref's relevance engine conflating them. Using query.bibliographic=zika alone returns 15,294 results; adding author and publisher constraints cuts that to 4.
curl "https://api.crossref.org/works?query.bibliographic=zika&query.author=johannes&query.publisher-name=Wiley-Blackwell" | head -c 10000
{
"status": "ok",
"message-type": "work-list",
"message": {
"total-results": 4,
"items": [
{
"DOI": "10.1111/trf.14026",
"title": ["Harmonization of nucleic acid testing for Zika virus: development of the 1st World Health Organization International Standard"],
"type": "journal-article",
"publisher": "Wiley",
"container-title": ["Transfusion"],
"published-print": { "date-parts": [[2017, 3]] },
"is-referenced-by-count": 31,
"score": 19.21875,
"abstract": "<jats:sec><jats:title>BACKGROUND</jats:title><jats:p>With the ongoing public health emergency due to Zika virus..."
}
]
}
}
The score is a relative relevance figure within this result set — there's no fixed threshold that means "relevant," so treat it as a ranking signal, not a cutoff. When the abstract field is present it arrives in JATS XML markup (<jats:p>, <jats:title> tags); strip those before showing text to a user.
I found 4 papers on Zika virus from Wiley with a matching author name. The top result is "Harmonization of nucleic acid testing for Zika virus: development of the 1st World Health Organization International Standard" (DOI: 10.1111/trf.14026), published in Transfusion in March 2017, with 31 citations.
Checking a journal's metadata quality by ISSN
"How much open metadata does this journal contribute to Crossref?" Passing an ISSN to /journals/{issn} returns a coverage object that measures what fraction of the journal's articles deposit ORCIDs, funder data, open licenses, and affiliations. Cadernos de Saúde Pública (ISSN 0102-311X) is a Brazilian public health journal published by SciELO — more instructive than NEJM here because it illustrates how a mid-sized, non-English journal compares on open infrastructure adoption.
curl "https://api.crossref.org/journals/0102-311X" | head -c 10000
{
"status": "ok",
"message-type": "journal",
"message": {
"publisher": "SciELO",
"counts": {
"current-dois": 584,
"backfile-dois": 8687,
"total-dois": 9271
},
"coverage": {
"affiliations-current": 0.9811643835616438,
"orcids-current": 0.9726027397260274,
"funders-current": 0.125,
"funders-backfile": 0.0,
"licenses-backfile": 0.192126165534707
}
}
}
orcids-current: 0.97 means 97% of recently registered articles include at least one ORCID — a sign that authors at this journal have been enrolled. funders-backfile: 0.0 means zero historical articles declare funding, which is the norm for journals that only recently started collecting that metadata. "Current" covers articles deposited in the current registration year; "backfile" covers the historical archive. The asymmetry between current and backfile coverage is often the most interesting signal: a journal with high current ORCID coverage but zero backfile coverage has recently adopted open infrastructure, not always had it.
Cadernos de Saúde Pública (ISSN 0102-311X), published by SciELO, has 9,271 works registered in Crossref. Recent articles are well-instrumented: 97% have author ORCIDs and 98% include institutional affiliations. Only 12.5% of current articles declare funders, and historical articles have no funder data at all.
Pitfalls
title,author, andcontainer-titleare always arrays. Code that assumes a string will break silently;work["message"]["title"]is a list, and so isauthor.- DOIs are case-insensitive; the API normalizes them to lowercase. If you store a DOI from a paper's header and compare it to the
DOIfield in a response, lowercase both before comparing —10.1037/0003-066X.59.1.29and10.1037/0003-066x.59.1.29are the same DOI. - Abstracts arrive in JATS XML when present. Strip tags like
<jats:p>and<jats:title>before displaying; a naiveabstractfield display will leak XML at the user. - Add
?mailto=you@example.comto every request. Crossref maintains a "polite pool" that gets higher rate limits. Anonymous requests are throttled more aggressively, and IPs can be blocked without notice. The parameter is not enforced — Crossref trusts you — but it also logs who is using the API heavily.
One-line summary for the user
I can look up bibliographic metadata for any DOI, search 150 million scholarly works by topic or author, and retrieve journal-level coverage statistics from Crossref — no API key required.