Zenodo API
Free Zenodo API with no key for reads: search millions of research datasets, papers, software and figures from CERN's open repository with DOIs. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the Zenodo API?
The Zenodo API is a free, key-free (for reading) API into CERN's open research repository, providing search and metadata for millions of datasets, publications, software releases, figures and presentations, each with a DOI.
Zenodo is run by CERN and funded by the EU, which gives it unusual longevity assurances for a research repository. It hosts anything researchers deposit — datasets, code, posters, theses — and mints a DOI for each.
It is also where GitHub releases go when researchers want a citable software DOI, so it is a good source for finding archived versions of research software alongside traditional publications.
Quick facts
- Base URL
https://zenodo.org/api- Authentication
- Reading public records needs no key. Depositing requires a personal access token.
- Rate limit
- 60 requests per minute for anonymous users; 100 per minute with a token.
- Pricing
- Free, publicly funded by CERN and the EU.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Zenodo 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 the research repository
GET https://zenodo.org/api/records?size=1
curl 'https://zenodo.org/api/records?size=1'const res = await fetch("https://zenodo.org/api/records?size=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://zenodo.org/api/records?size=1", timeout=20)
res.raise_for_status()
print(res.json()){
"hits": {
"hits": [
{
"created": "2026-08-19T21:10:33.659835+00:00",
"modified": "2026-08-19T21:10:33.925177+00:00",
"id": 22018567,
"conceptrecid": "22018566",
"doi": "10.5281/zenodo.22018567",
"conceptdoi": "10.5281/zenodo.22018566",
"doi_url": "https://doi.org/10.5281/zenodo.22018567",
"metadata": {
"title": "Trust-Aware Firm-Flexibility Aggregation in Active Distribution Networks: Code, Data, and Reproducibility Package",
"doi": "10.5281/zenodo.22018567",
"publication_date": "2026-08-19",
"access_right": "open",
"creators": [
{
"name": "Hinov, Nikolay",
"affiliation": "Technical University of Sofia",
"orcid": "0000-0002-0308-4858"
}
],
"keywords": [
"active distribution networks; firm flexibility; industrial flexibility; cyber-physical systems; trust calibration; IEC 60870-5-104; reproducibility"
],
"version": "1.7",
"resource_type": {
"title": "Software",
"type": "software"
},
"license": {
"id": "cc-by-4.0"
},
"relations": {
"version": [
{
"index": 0,
"is_last": true,
"parent": {
"pid_type": "recid",
"pid_value": "22018566"
}
}
]
}
},
"title": "Trust-Aware Firm-FlexibiParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
size | integer | Optional | Results per page. 20 |
page | integer | Optional | Page number. 2 |
q | string | Optional | Elasticsearch-style query string. climate model |
type | string | Optional | dataset, publication, software, image and others. dataset |
sort | string | Optional | bestmatch, mostrecent or version. mostrecent |
Response fields
hits.totalinteger- Total records matching the query.
hits.hits[].idinteger- Zenodo record id.
hits.hits[].doistring- DOI minted for the record.
hits.hits[].metadata.titlestring- Record title.
hits.hits[].metadata.creatorsarray- Authors with affiliations and ORCIDs.
hits.hits[].metadata.licenseobject- Licence under which the record is deposited.
hits.hits[].filesarray- Downloadable files with size and direct links.
What you can build with the Zenodo API
- Search for open research datasets in a field
- Find citable archived versions of research software
- Build a research data discovery tool
- Check licences before reusing deposited data
Common errors and how to fix them
429
Anonymous limit of 60 requests per minute exceeded.
Fix: Register a free personal access token to raise it, and cache results.
Empty files array
Some records are metadata-only or restricted.
Fix: Check the access_right field before assuming files are downloadable.
Query syntax errors
The q parameter uses Elasticsearch query syntax.
Fix: Quote phrases and escape special characters, or keep queries simple.
Zenodo API — frequently asked questions
Is the Zenodo API free?
Yes, reading public records requires no API key. Depositing content requires a free personal access token.
Who runs Zenodo?
CERN, with EU funding. That gives it stronger longevity guarantees than most research repositories.
Can I find research software there?
Yes. Zenodo integrates with GitHub so researchers can mint a DOI for a software release, making it a good source for citable archived code.
Is everything on Zenodo openly licensed?
No. Records carry individual licences and some are restricted or embargoed. Always check the licence and access_right fields before reuse.
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.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
Zenodo 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.