# Unpaywall

[Unpaywall](https://unpaywall.org) is OpenAlex's Open Access discovery surface: an API, dataset, and [browser extension](https://unpaywall.org/products/extension) that tell you whether a scholarly article has a free-to-read copy, and where. It's used by libraries, link resolvers, and thousands of applications.

**Unpaywall is not a separate database.** Since the Walden rewrite, Unpaywall records are served from the **same OpenAlex data** that powers everything else — Unpaywall is a legacy-compatible *format* over that data, kept stable for the large ecosystem built on it. The OA facts in an Unpaywall record and in an OpenAlex [work's `open_access` object](/docs/open-access/) come from the same pipeline.

## The Unpaywall surfaces

| Surface | What it does |
|---|---|
| [REST API](https://unpaywall.org/products/api) | `api.unpaywall.org/v2/{DOI}?email=you@example.com` returns the article's OA record in the [Unpaywall data format](https://unpaywall.org/data-format) |
| [Simple Query Tool](https://unpaywall.org/products/simple-query-tool) | Paste up to 1,000 DOIs, get results by email — no code needed |
| [Browser extension](https://unpaywall.org/products/extension) | Shows a green tab when the article you're viewing has a free copy |
| [Data feed](/docs/data-feed/#the-unpaywall-data-feed) | Change updates in the Unpaywall record format, for subscribers |
| Link-resolver integrations | Unpaywall data inside SFX, EBSCO, 360 Link, and others — see [Link resolver integrations](/docs/link-resolver-integrations/) |

For new projects, consider the [OpenAlex API](/api/) directly — it exposes the same OA information plus everything else OpenAlex knows (works, authors, sources, topics, and more). The Unpaywall format is best when you're integrating with tools that already speak it.

## Which DOIs Unpaywall covers

DOIs can be created by any of several [Registration Agencies](https://www.doi.org/registration_agencies.html). The Unpaywall dataset covers articles issued by one: [Crossref](https://www.crossref.org/). If a DOI isn't in Unpaywall, it might be invalid or created by a different agency — in either case the REST API returns 404, the Simple Query Tool gives a blank row, and it's absent from the dataset.

- Check whether a DOI is **valid** with the [doi.org proxy REST API](https://www.doi.org/factsheets/DOIProxy.html#rest-api).
- Check **which agency** created it with Crossref's agency endpoint: `https://api.crossref.org/works/{DOI}/agency`.
- Some valid Crossref DOIs are still excluded because they've been deleted or are used for testing.

**DataCite DOIs** aren't included. Nearly everything with a DataCite DOI is Open Access, so classifying them added little value and was mostly a source of errors — for statistical purposes, if you have a DataCite DOI, it's OA. (OpenAlex itself *does* index DataCite works — that's one of the things the [OpenAlex API](/api/) gives you beyond the Unpaywall format.)

## Fixing errors

- **A specific article's OA status looks wrong:** report it at [unpaywall.org/fix](https://unpaywall.org/fix).
- **A journal's OA status is wrong:** librarians can submit corrections through the [journal curation tool](https://openalex.org/curate/journals) — see [How can I correct the Open Access status of journals?](/help/how-can-i-correct-the-open-access-status-of-journals-in-unpaywall/).
- **Anything else:** [support@unpaywall.org](mailto:support@unpaywall.org).

## Related pages

- [Open Access](/docs/open-access/) — how OpenAlex determines OA status, the taxonomy behind `oa_status`
- [Unpaywall change notes](/docs/unpaywall-change-notes/) — methodology changes affecting the dataset
- [Using Unpaywall data safely](/docs/unpaywall-data-safety/) — code-injection care when displaying metadata
- [Data feed & changefiles](/docs/data-feed/) — the OpenAlex-native way to stay in sync
