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
- DOIs
doislistRequired - 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
- DOI
doitextRequired - 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
}