Europe PMC API
Free Europe PMC API with no key: search 40M+ life science publications and abstracts, with full text where open access, citations and preprints. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the Europe PMC API?
Europe PMC is a free, key-free API for searching more than 40 million life science publications — abstracts, full text where openly licensed, preprints, patents and clinical guidelines — from PubMed, PMC and other sources.
Europe PMC aggregates PubMed alongside preprint servers, patents and clinical guidelines, which makes its coverage broader than PubMed alone. It is run by EMBL-EBI and funded by a consortium of European research funders.
Unlike NCBI's two-step search-then-fetch pattern, Europe PMC returns actual records directly from a single search request, which makes simple integrations considerably less work.
Quick facts
- Base URL
https://www.ebi.ac.uk/europepmc/webservices/rest- Authentication
- No API key required.
- Rate limit
- No published hard limit; the maintainers ask for reasonable use and a contact email in the User-Agent.
- Pricing
- Free. Open access content is reusable under its own licence.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Europe PMC API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Search life science literature
GET https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=malaria&format=json&pageSize=1
curl 'https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=malaria&format=json&pageSize=1'const res = await fetch("https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=malaria&format=json&pageSize=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=malaria&format=json&pageSize=1", timeout=20)
res.raise_for_status()
print(res.json()){
"version": "6.9",
"hitCount": 283884,
"nextCursorMark": "AoIIQG/5dCg1NjExNjU0Mg==",
"nextPageUrl": "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=malaria&cursorMark=AoIIQG/5dCg1NjExNjU0Mg==&resultType=lite&pageSize=1&format=json",
"request": {
"queryString": "malaria",
"resultType": "lite",
"cursorMark": "*",
"pageSize": 1,
"sort": "",
"synonym": false
},
"resultList": {
"result": [
{
"id": "42575118",
"source": "MED",
"pmid": "42575118",
"doi": "10.1016/j.langlo.2026.103984",
"title": "Long-term mortality and risk of chronic kidney disease in children following severe malaria complicated by acute kidney injury: a prospective observational study.",
"authorString": "Mellencamp KA, Namazzi R, Batte A, Kazinga C, Liepmann CD, Goings MJ, Opoka RO, Datta D, Ren J, Kalyesubula R, Bangirana P, Goldstein SL, John CC, Conroy AL.",
"journalTitle": "Lancet Glob Health",
"pubYear": "2027",
"journalIssn": "2214-109x",
"pageInfo": "103984",
"pubType": "journal article",
"isOpenAccess": "N",
"inEPMC": "N",
"inPMC": "N",
"hasPDF": "N",
"hasBook": "N",
"hasSuppl": "N",
"citedByCount": 0,
"hasReferences": "N",
"hasTextMinedTerms": "N",
"hasDbCrossReferences": "N",
"hasLabsLinks": "N",
"hasTMAccessionNumbers": "N",
"firstIndexDate": "2026-08-13",
"firstPublicationDate": "2027-05-19"
}
]
}
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Required | Search query, supporting field syntax. malaria |
format | string | Optional | json, xml or dc. Default is XML. json |
pageSize | integer | Optional | Results per page, max 1000. 25 |
cursorMark | string | Optional | Deep pagination cursor from the previous response. * |
resultType | string | Optional | idlist, lite or core for increasing detail. core |
Response fields
hitCountinteger- Total matching publications.
nextCursorMarkstring- Cursor for the next page — use for deep pagination.
resultList.result[].id / pmid / doistring- Identifiers across systems.
resultList.result[].titlestring- Publication title.
resultList.result[].authorStringstring- Authors as a single string.
resultList.result[].isOpenAccessstring- Y or N — whether full text is freely available.
resultList.result[].citedByCountinteger- Citation count.
What you can build with the Europe PMC API
- Build a biomedical literature search across more than PubMed
- Find open access full text for research papers
- Include preprints in a literature review workflow
- Track citations for a research group
Common errors and how to fix them
XML instead of JSON
XML is the default format.
Fix: Always pass format=json.
Deep paging fails past 1,000
Offset-based paging is capped.
Fix: Use cursorMark=* and follow nextCursorMark for large result sets.
Full text unavailable
Only open access content has retrievable full text.
Fix: Check isOpenAccess before requesting the fullTextXML endpoint.
Europe PMC API — frequently asked questions
Is Europe PMC free?
Yes, completely free with no API key. It is run by EMBL-EBI and funded by European research funders.
How does it differ from PubMed's API?
Coverage is broader — it includes preprints, patents and clinical guidelines alongside PubMed — and it returns records directly from a search rather than requiring NCBI's two-step search-then-fetch pattern.
Can I get full text?
For open access articles, yes, via the fullTextXML endpoint. Check the isOpenAccess field first; subscription content returns metadata only.
How do I page through many results?
Use cursorMark=* and follow nextCursorMark. Offset paging is capped at around 1,000 results.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
XML Formatter
Format and beautify XML online with proper indentation, or minify it to a single line. Parse errors are reported clearly — free, fast and fully private.
Europe PMC is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.