Crossref REST API
crossref.org · Debrid · 1 record · JSON
Crossref REST API Debrid
★ qualifiesanonymousno cardDrequest-rate
| Free tier | not published unit unlimited; metered on none; No numeric rate limit is published. The documented guidance is 'back off if you start seeing 429 statuses'. |
|---|---|
| Price | USD 0 |
| Per-object cap | not applicable: paged JSON. rows=1000 with a select list returned 773,304 bytes in one response here. |
| Retention | the registry only grows; records are corrected rather than deleted, and the API is the live view |
| Egress | Free and unmetered. No key, no account, no allowance published. free_allowance: no byte allowance published |
| Identity | anonymous No sign-up is required. A mailto in the query or User-Agent is a courtesy that routes the caller to the polite pool; it is not a credential. |
| Limits |
The documented bulk snapshot did not work: https://api.crossref.org/snapshots/monthly/latest.json.gz answered 200 with 41 bytes of text/html and no body, and /snapshots answered 200 with a zero-byte body. That is a false-200 shape, not a file. |
| Binding | request-rate At 773 KB per rows=1000 call, 1 TiB is about 1.4 million calls; the call rate, which is unpublished and signalled only by 429, is what decides the day's bytes. |
| Interface | rest, cli GET https://api.crossref.org/works with rows, cursor and select; content negotiation for single records. The polite pool is signalled with mailto= or a User-Agent carrying an address. endpoint: https://api.crossref.org/works |
| Tooling | curl/python-requests; the harvester package and the documented cursor pattern. No SDK required. |
| Composes with | Crossref supplies the DOI-level citation graph and licence metadata; the full text behind each DOI is a separate fetch from the publisher or from an OA mirror such as PMC or Europe PMC. |
| Reliability | The polite pool is the difference between a fast run and a 429 storm, and it costs only an email in the User-Agent; the snapshot endpoint is silently broken and returns a 200 stub, which a naive client will save as a data file. |
| Notes | Metadata-only: the corpus is descriptions of papers, not papers. |
| Evidence rung | documented Two endpoints were exercised with byte counts and the vendor page was read. No 429 was triggered here, so the unpublished rate ceiling is not characterised. |
| Checked | 2026-10-24 (live); stale on 2026-11-23 |
| Parsed numbers |
|
Evidence (4)
| date | source | what it proved |
|---|---|---|
| 2026-10-23 | www.crossref.org/documentation/retrieve-metadata/rest-api/ | 'No sign-up is required to use the REST API' and the polite-pool mailto pattern |
| 2026-10-23 | www.crossref.org/documentation/retrieve-metadata/rest-api/ti | 'back off if you start seeing 429 statuses' - the only published rate signal; cursor paging for bulk |
| 2026-10-23 | probe:https://api.crossref.org/works?rows=1000&cursor=*&select=DOI,title,container-title,published,author | 200, 773,304 bytes of application/json in 3,456 ms - the real bytes per call |
| 2026-10-23 | probe:https://api.crossref.org/snapshots/monthly/latest.json.gz | 200 with 41 bytes of text/html and no file - the documented snapshot URL did not serve a snapshot |
More fields (2)
{
"rows_1000_bytes": 773304,
"snapshot_status": "200 with 41-byte HTML stub"
}Unknown or withheld values (1)
$.free_tier.statedwithheld