BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://zenodo.org/api/records?size=1'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://zenodo.org/api/records?size=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "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-Flexibi

Parameters

ParameterTypeRequiredDescription
sizeintegerOptionalResults per page. 20
pageintegerOptionalPage number. 2
qstringOptionalElasticsearch-style query string. climate model
typestringOptionaldataset, publication, software, image and others. dataset
sortstringOptionalbestmatch, 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

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.