Europeana · Capability
Europeana Search and Record API
The Europeana REST API gives programmatic access to over 50 million cultural heritage items, including books, paintings, films, museum objects, and archival records aggregated from more than 3,500 institutions across Europe. The Search API discovers records, and the Record API returns the full metadata for a specific item.
What You Can Do
GET
Searchrecords
— Search records
/search.json
GET
Getrecord
— Get record
/{datasetId}/{localId}.json
MCP Tools
searchrecords
Search records
read-only
idempotent
getrecord
Get record
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Europeana Search and Record API
description: The Europeana REST API gives programmatic access to over 50 million cultural heritage items, including books,
paintings, films, museum objects, and archival records aggregated from more than 3,500 institutions across Europe. The
Search API discovers records, and the Record API returns the full metadata for a specific item.
tags:
- Europeana
- API
created: '2026-05-06'
modified: '2026-05-06'
capability:
consumes:
- type: http
namespace: europeana
baseUri: https://api.europeana.eu/record/v2
description: Europeana Search and Record API HTTP API.
authentication:
type: apikey
in: query
name: wskey
value: '{{EUROPEANA_TOKEN}}'
resources:
- name: search-json
path: /search.json
operations:
- name: searchrecords
method: GET
description: Search records
inputParameters:
- name: query
in: query
type: string
required: true
description: Search query string.
- name: qf
in: query
type: array
description: Query refinement filter (repeatable).
- name: rows
in: query
type: integer
description: Number of records to return (max 100).
- name: start
in: query
type: integer
- name: profile
in: query
type: string
description: Response profile (minimal, standard, rich, facets).
- name: media
in: query
type: boolean
- name: thumbnail
in: query
type: boolean
- name: reusability
in: query
type: string
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: datasetid-localid-json
path: /{datasetId}/{localId}.json
operations:
- name: getrecord
method: GET
description: Get record
inputParameters:
- name: datasetId
in: path
type: string
required: true
description: Dataset identifier (collection prefix).
- name: localId
in: path
type: string
required: true
description: Local identifier within the dataset.
- name: profile
in: query
type: string
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
port: 8080
namespace: europeana-rest
description: REST adapter for Europeana Search and Record API.
resources:
- path: /search.json
name: searchrecords
operations:
- method: GET
name: searchrecords
description: Search records
call: europeana.searchrecords
outputParameters:
- type: object
mapping: $.
- path: /{datasetId}/{localId}.json
name: getrecord
operations:
- method: GET
name: getrecord
description: Get record
call: europeana.getrecord
with:
datasetId: rest.datasetId
localId: rest.localId
outputParameters:
- type: object
mapping: $.
- type: mcp
port: 9090
namespace: europeana-mcp
transport: http
description: MCP adapter for Europeana Search and Record API for AI agent use.
tools:
- name: searchrecords
description: Search records
hints:
readOnly: true
destructive: false
idempotent: true
call: europeana.searchrecords
with:
query: tools.query
qf: tools.qf
rows: tools.rows
start: tools.start
profile: tools.profile
media: tools.media
thumbnail: tools.thumbnail
reusability: tools.reusability
inputParameters:
- name: query
type: string
description: Search query string.
required: true
- name: qf
type: array
description: Query refinement filter (repeatable).
- name: rows
type: integer
description: Number of records to return (max 100).
- name: start
type: integer
description: start
- name: profile
type: string
description: Response profile (minimal, standard, rich, facets).
- name: media
type: boolean
description: media
- name: thumbnail
type: boolean
description: thumbnail
- name: reusability
type: string
description: reusability
outputParameters:
- type: object
mapping: $.
- name: getrecord
description: Get record
hints:
readOnly: true
destructive: false
idempotent: true
call: europeana.getrecord
with:
datasetId: tools.datasetId
localId: tools.localId
profile: tools.profile
inputParameters:
- name: datasetId
type: string
description: Dataset identifier (collection prefix).
required: true
- name: localId
type: string
description: Local identifier within the dataset.
required: true
- name: profile
type: string
description: profile
outputParameters:
- type: object
mapping: $.
binds:
- namespace: env
keys:
EUROPEANA_TOKEN: EUROPEANA_TOKEN