Unpaywall

App · 2 actions

Find free, legal copies of scholarly articles. Check whether a DOI is open access, get a link to the best free PDF, and check a whole reading list at once.

Check open access for many DOIs

Check up to 200 DOIs at once, such as a reading list, and get one row for each: whether it is free to read and where. DOIs Unpaywall doesn't know are listed rather than stopping the step.

Inputs

DOIsdoislistRequired
A list from an earlier step, or DOIs separated by commas or new lines. https://doi.org/ links work too.

Outputs

closed_countnumber
How many were found but have no free copy.
countnumber
How many DOIs were checked.
found_countnumber
How many Unpaywall has a record of.
not_foundlist
The entries Unpaywall has no record of, or that aren't DOIs.
open_countnumber
How many have a free, legal copy.
resultslist
One row per DOI, in the order given; repeats dropped.
Example output
{
  "closed_count": 1,
  "count": 3,
  "found_count": 2,
  "not_found": [
    "10.5281/zenodo.10680266"
  ],
  "open_count": 1,
  "results": [
    {
      "best_license": null,
      "best_pdf_url": "https://www.nature.com/articles/nature12373.pdf",
      "best_url": "https://www.nature.com/articles/nature12373.pdf",
      "best_version": "publishedVersion",
      "doi": "10.1038/nature12373",
      "error": null,
      "found": true,
      "is_oa": true,
      "journal_name": "Nature",
      "oa_status": "bronze",
      "title": "Nanometre-scale thermometry in a living cell",
      "year": 2013
    },
    {
      "best_license": null,
      "best_pdf_url": null,
      "best_url": null,
      "best_version": null,
      "doi": "10.1126/science.1157784",
      "error": null,
      "found": true,
      "is_oa": false,
      "journal_name": "Science",
      "oa_status": "closed",
      "title": "Strategic Reading, Ontologies, and the Future of Scientific Publishing",
      "year": 2009
    },
    {
      "best_license": null,
      "best_pdf_url": null,
      "best_url": null,
      "best_version": null,
      "doi": "10.5281/zenodo.10680266",
      "error": "Not in Unpaywall",
      "found": false,
      "is_oa": false,
      "journal_name": null,
      "oa_status": null,
      "title": null,
      "year": null
    }
  ]
}

Get open-access status

Find out whether a scholarly article has a free, legal copy, with a link to the best one (its PDF when there is one) and every other place it can be read.

Inputs

DOIdoitextRequired
The article's DOI, such as 10.1038/nature12373. A https://doi.org/ link works too.

Outputs

authorslist
The authors' names, in order.
best_host_typetext
Where the best copy is: 'publisher' or 'repository'.
best_landing_page_urltext
The page the best free copy is on.
best_licensetext
The best copy's licence, such as 'cc-by', if known.
best_pdf_urltext
A direct PDF link for the best free copy, if any.
best_urltext
A link to the best free copy: its PDF when there is one.
best_versiontext
Which version the best copy is: 'publishedVersion', 'acceptedVersion' or 'submittedVersion'.
doitext
The DOI, in lowercase.
doi_urltext
The DOI as a https://doi.org/ link.
genretext
The kind of work, such as 'journal-article'.
has_repository_copytrue/false
Whether a free copy is in a repository, such as a preprint server.
is_oatrue/false
Whether there is any free, legal copy.
is_paratexttrue/false
Whether it is front matter rather than an article: a table of contents, a cover or a masthead.
journal_is_in_doajtrue/false
Whether the journal is listed in the Directory of Open Access Journals.
journal_is_oatrue/false
Whether the journal publishes only open access.
journal_issn_ltext
The journal's linking ISSN.
journal_issnslist
All of the journal's ISSNs.
journal_nametext
The journal it appeared in.
oa_location_countnumber
How many free copies there are.
oa_locationslist
Every free copy Unpaywall knows of, best first.
oa_statustext
How it is open: 'gold' (open-access journal), 'diamond' (open-access journal that charges authors nothing), 'hybrid' (open licence in a subscription journal), 'bronze' (free on the publisher's site without an open licence), 'green' (free in a repository) or 'closed'.
oa_status_meaningtext
The open-access status in plain words.
published_datetext
When it was published (YYYY-MM-DD).
publishertext
The publisher.
titletext
The work's title.
updatedtext
When Unpaywall last updated this record.
yearnumber
The year it was published.
Example output
{
  "authors": [
    "G. Kucsko",
    "P. C. Maurer",
    "N. Y. Yao",
    "M. Kubo",
    "H. J. Noh",
    "P. K. Lo",
    "H. Park",
    "M. D. Lukin"
  ],
  "best_host_type": "publisher",
  "best_landing_page_url": "https://doi.org/10.1038/nature12373",
  "best_license": null,
  "best_pdf_url": "https://www.nature.com/articles/nature12373.pdf",
  "best_url": "https://www.nature.com/articles/nature12373.pdf",
  "best_version": "publishedVersion",
  "doi": "10.1038/nature12373",
  "doi_url": "https://doi.org/10.1038/nature12373",
  "genre": "journal-article",
  "has_repository_copy": true,
  "is_oa": true,
  "is_paratext": false,
  "journal_is_in_doaj": false,
  "journal_is_oa": false,
  "journal_issn_l": "0028-0836",
  "journal_issns": [
    "0028-0836",
    "1476-4687"
  ],
  "journal_name": "Nature",
  "oa_location_count": 3,
  "oa_locations": [
    {
      "host_type": "publisher",
      "is_best": true,
      "landing_page_url": "https://doi.org/10.1038/nature12373",
      "license": null,
      "oa_date": "2013-07-30",
      "pdf_url": "https://www.nature.com/articles/nature12373.pdf",
      "repository": null,
      "url": "https://www.nature.com/articles/nature12373.pdf",
      "version": "publishedVersion"
    },
    {
      "host_type": "repository",
      "is_best": false,
      "landing_page_url": "http://arxiv.org/abs/1304.1068",
      "license": null,
      "oa_date": "2013-07-30",
      "pdf_url": "https://arxiv.org/pdf/1304.1068",
      "repository": "Cornell University",
      "url": "https://arxiv.org/pdf/1304.1068",
      "version": "submittedVersion"
    },
    {
      "host_type": "repository",
      "is_best": false,
      "landing_page_url": "http://nrs.harvard.edu/urn-3:HUL.InstRepos:12285462",
      "license": "cc-by",
      "oa_date": "2013-07-30",
      "pdf_url": null,
      "repository": "Harvard University",
      "url": "http://nrs.harvard.edu/urn-3:HUL.InstRepos:12285462",
      "version": "submittedVersion"
    }
  ],
  "oa_status": "bronze",
  "oa_status_meaning": "free to read on the publisher's site, without an open licence",
  "published_date": "2013-07-30",
  "publisher": "Springer Science and Business Media LLC",
  "title": "Nanometre-scale thermometry in a living cell",
  "updated": "2026-10-15T10:14:54Z",
  "year": 2013
}

On this page