Open knowledge
Romania
Cultural heritage / API

Europeana APIs

Search collections and retrieve object records through documented interfaces.

Before you use this resource

An API key is required. Image availability and rights vary between objects.

Published by
Europeana
Source
Nonprofit organisation
Collection
Cultural heritage
Resource type
API
Coverage
Europeana collections
Documented formats
JSON, IIIF
Licence / terms
Varies by resource
API access
Documented API
Record review date
2026-10-22
Last resource update
Unknown
Technical data audit
Not performed
Documentation
Source reviewed

Documentation

Official access documentation was read on 22 October 2026: X-Api-Key is the preferred API-key header. Examples read the key locally from the environment; they were not tested with a key and credentials must not be copied into public code.

The cited page documents this record. Check the original source for terms and versions before reuse.

api.europeana.eu ↗

Request examples and access requirements

Requires a Europeana API key. Create an account and obtain a key; read it locally from the EUROPEANA_API_KEY environment variable and send it in the X-Api-Key header. Never publish it in a page, application source or shared URL. Documentation-based examples; not tested with a key.

Documentation used ↗

test -n "$EUROPEANA_API_KEY" || { echo 'Set EUROPEANA_API_KEY locally' >&2; exit 1; }
curl --fail-with-body --silent --show-error --max-time 30 \
  -H "X-Api-Key: $EUROPEANA_API_KEY" \
  'https://api.europeana.eu/record/v2/search.json?query=Romania&rows=5' > europeana.json
jq . europeana.json
import json
import os
import urllib.request

key = os.environ["EUROPEANA_API_KEY"]
if not key:
    raise ValueError("EUROPEANA_API_KEY is empty")
request = urllib.request.Request(
    "https://api.europeana.eu/record/v2/search.json?query=Romania&rows=5", headers={"X-Api-Key": key}
)
with urllib.request.urlopen(request, timeout=30) as response:
    data = json.load(response)
print(json.dumps(data, indent=2))
library(httr2)

key <- Sys.getenv("EUROPEANA_API_KEY")
if (!nzchar(key)) stop("Set EUROPEANA_API_KEY locally")
response <- request("https://api.europeana.eu/record/v2/search.json?query=Romania&rows=5") |>
  req_headers_redacted("X-Api-Key" = key) |>
  req_timeout(30) |>
  req_perform()
data <- resp_body_json(response)
str(data)
-- Run the authenticated cURL example first; it saves europeana.json.
-- Keep the API key in your local environment, never in this SQL or a URL.
SELECT * FROM read_json_auto('europeana.json');

Continue your research

Editorial suggestions for discovery. These links do not establish technical integration or licence compatibility.