---
name: europe-pmc-rest-api-ingestion
description: "How to get Europe PMC RESTful Web Service data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Search Europe PMC literature via the REST API

Source entry: https://signal-lab.qdt.ai/datasets/europe-pmc-rest-api
Provider: https://europepmc.org/RestfulWebService
Checked against the provider's documentation: 2026-11-06

## Access
- No key needed for the REST search endpoint at ebi.ac.uk/europepmc/webservices/rest.
- europepmc.org itself returned HTTP 403 to a plain curl request but HTTP 200 in a browser; query the REST API host directly.

## Request
```bash
curl 'https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=maritime&format=json'
```

## Format
JSON with top-level version and hitCount fields (hitCount 48,304 for a 2026-11-05 query of "maritime", version 6.9) plus a resultList.result array of matching records.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""Europe PMC REST search -> pandas -> Parquet. No key needed."""
import requests
import pandas as pd

URL = "https://www.ebi.ac.uk/europepmc/webservices/rest/search"
params = {"query": "maritime", "format": "json", "pageSize": 100}
r = requests.get(URL, params=params, timeout=60)
r.raise_for_status()
data = r.json()
results = data.get("resultList", {}).get("result", [])
df = pd.json_normalize(results)
df.to_parquet("europepmc_maritime.parquet", index=False)
print(data.get("hitCount"), "total hits; saved", len(df), "records (API version", data.get("version"), ")")
```
Run by us on 2026-11-05 (python 3 | pandas | pyarrow | requests). Result: Europe PMC REST search for "maritime" returned HTTP 200 without a key on 2026-11-06: hitCount 48,304, API version 6.9 (JSON fields version and hitCount).

## Limits
- Not stated numeric rate limit on the checked pages.

## Quirks
- Distinct from the already-listed NCBI E-utilities (PubMed): adds a European full-text OA subset, text-mined annotations, citations and grants.
- Query the ebi.ac.uk REST host directly rather than europepmc.org if a plain HTTP client gets blocked (403).

## Terms and attribution
- EMBL-EBI Terms of Use (revised 14 Oct 2026): "promotes open science through its mission to provide freely available Data Resources and Tools."
- "Where EMBL-EBI presents scientific data generated by others, EMBL-EBI imposes no additional restriction on the use of the contributed data than those provided by the data owner, unless otherwise specified in these Terms of Use."
- "EMBL-EBI expects attribution (e.g. in publications, services or products) for the use of any of its Data Resources and Tools in accordance with good scientific practice."
- Article full texts carry their own publishers'/authors' licences, which vary by article. Search is free to query subject to Provider/upstream terms; do not treat returned metadata as an affirmative open-data licence.
- Terms page: https://www.ebi.ac.uk/about/terms-of-use

## Sources
- https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=maritime&format=json: ""version": "6.9", "hitCount": 48304"
- https://www.ebi.ac.uk/about/terms-of-use: "Where EMBL-EBI presents scientific data generated by others, EMBL-EBI imposes no additional restriction on the use of the contributed data than those provided by the data owner, unless otherwise specified in these Terms of Use."
- https://www.ebi.ac.uk/about/terms-of-use: "EMBL-EBI expects attribution (e.g. in publications, services or products) for the use of any of its Data Resources and Tools in accordance with good scientific practice."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab.qdt.ai/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
