Back to Claude Scientific Skills

Crossref API

scientific-skills/paper-lookup/references/crossref.md

2.38.05.0 KB
Original Source

Crossref API

Crossref is the DOI registration agency for scholarly content. It provides metadata for 150M+ works including journal articles, books, conference papers, datasets, and preprints.

Base URL

https://api.crossref.org

Authentication

None required. Add [email protected] to get into the polite pool (2x faster rate limits).

Rate Limits

PoolRateConcurrency
Public (no mailto)5 req/sec1 concurrent
Polite (with mailto)10 req/sec3 concurrent

HTTP 429 = temporarily blocked.

Key Endpoints

1. Search works

GET /works?query={text}&rows={n}&[email protected]
ParameterDefaultDescription
query--Free-text search across all fields
query.author--Search author names
query.bibliographic--Search titles, authors, ISSNs, years
query.affiliation--Search affiliations
query.container-title--Search journal names
filter--Comma-separated name:value pairs
sortscorescore, published, issued, deposited, updated, is-referenced-by-count, references-count
orderdescasc or desc
rows20Results per page (max 1000)
offset0Skip N results (max 10,000)
cursor--Use * for cursor-based deep pagination
select--Comma-separated field names to return
facet--Facet counts, e.g. type-name:10
sample--Return N random items (max 100)

Example:

https://api.crossref.org/works?query=CRISPR+gene+therapy&filter=from-pub-date:2024-01-01,type:journal-article,has-abstract:true&rows=5&sort=published&order=desc&[email protected]

2. Get work by DOI

GET /works/{doi}[email protected]

URL-encode the DOI: 10.1038/nature12373 becomes 10.1038%2Fnature12373

Example:

https://api.crossref.org/works/10.1038%[email protected]

3. Journals

GET /journals?query={name}&rows={n}
GET /journals/{issn}
GET /journals/{issn}/works?query={text}&rows={n}

4. Funders

GET /funders?query={name}
GET /funders/{id}
GET /funders/{id}/works?rows={n}

Funder IDs are from the Funder Registry (e.g., 100000001 for NSF).

5. Members (publishers)

GET /members?query={name}
GET /members/{id}/works?rows={n}

Key Filters

Date filters (accept YYYY, YYYY-MM, YYYY-MM-DD)

FilterDescription
from-pub-date / until-pub-datePublication date
from-print-pub-date / until-print-pub-datePrint publication date
from-online-pub-date / until-online-pub-dateOnline publication date
from-posted-date / until-posted-datePosted date (preprints)

Boolean filters

FilterDescription
has-abstractHas an abstract
has-orcidHas ORCID IDs
has-funderHas funder info
has-full-textHas full-text links
has-referencesHas reference list
has-licenseHas license info

Value filters

FilterDescription
typejournal-article, posted-content, book-chapter, proceedings-article, etc.
issnJournal ISSN
doiSpecific DOI
orcidContributor ORCID
funderFunder Registry ID
memberCrossref member ID
prefixDOI prefix
license.urlLicense URL
update-typecorrection, retraction

Syntax: filter=name1:value1,name2:value2

Pagination

Offset-based (max 10,000)

/works?query=cancer&rows=100&offset=200

Cursor-based (unlimited)

  1. First request: ?cursor=*&rows=100
  2. Response includes next-cursor
  3. Next request: ?cursor={next-cursor-value}&rows=100
  4. Cursors expire after 5 minutes

Response Format

List response

json
{
  "status": "ok",
  "message-type": "work-list",
  "message": {
    "total-results": 2779116,
    "items-per-page": 20,
    "next-cursor": "...",
    "items": [...]
  }
}

Work object (key fields)

json
{
  "DOI": "10.1038/nature12373",
  "title": ["Nanometre-scale thermometry in a living cell"],
  "author": [{"given": "G.", "family": "Kucsko", "sequence": "first"}],
  "publisher": "Springer Science and Business Media LLC",
  "type": "journal-article",
  "published": {"date-parts": [[2013, 7, 31]]},
  "container-title": ["Nature"],
  "ISSN": ["0028-0836", "1476-4687"],
  "volume": "500",
  "issue": "7460",
  "page": "54-58",
  "is-referenced-by-count": 1745,
  "references-count": 30,
  "abstract": "<p>Abstract text with HTML tags...</p>",
  "license": [{"URL": "...", "content-version": "vor"}],
  "link": [{"URL": "...", "content-type": "application/pdf"}],
  "reference": [{"key": "...", "doi-asserted-by": "crossref", "DOI": "..."}],
  "subject": ["Multidisciplinary"],
  "language": "en"
}

Note: title and container-title are arrays. published.date-parts is [[year, month, day]]. Abstract may contain HTML tags.