scholarly-metadata
Unpaywall
A database that maps DOIs to legal open-access copies of papers, tracking OA status for around 150 million DOIs. Give it a DOI and it reports whether a free, legitimate full-text copy exists and where, via a simple free API. The standard way to answer 'can I read this paywalled paper for free somewhere legitimate?'
Why it’s useful & how it works
Reach for Unpaywall when you want to know whether a specific paper is available legally for free somewhere on the web. Give it any DOI and it searches more than 50,000 open-access sources, including repositories, preprint servers, and publisher OA pages, to tell you whether a free full-text copy exists and where. The lookup is instant via a free API that requires no registration, just your email address as a parameter. It is the fastest way to answer the question: is there a legitimate free version of this paywalled article?
What’s inside
Tracks open-access status for a number of DOIs comparable to the Crossref registry, currently in the range of roughly 150 to 180 million DOIs, with around a quarter of Crossref DOIs finding at least one free legal copy.
API access
https://api.unpaywall.org/v2/ <doi>?email=<email>
What we measured
Our own probes, not the archive’s own claims. Re-run periodically; every reading below is dated.
Reachability
- Direct request
- Responded HTTP 200 534 ms
- Through a datacenter proxy
- Responded HTTP 200 763 ms
- API, direct
- Responded HTTP 200 476 ms
- API, through a proxy
- Responded HTTP 200 657 ms
Did a real search return anything?
Returned results · median 473 ms · stable across runs
DOI->OA lookup works (the real use); the /v2/search endpoint is unreliable. Integrate as per-DOI lookup.
Sample query: Measured measurement
Benchmark coverage
Found 0 of 8 test items (0%) in the Academic papers cluster. Median response 150 ms.
By how well known the item is: 0/3 well-known, 0/3 mid, 0/2 obscure .
Reachability measured 2026-08-22. Search checked 2026-08-22. Benchmark run 2026-08-22.
Access
Programmatic API access (a key may be required, see the API tag).