EUROPEANA RECORD API
The Record API provides direct access to the Europeana data, which is modeled using EDM. While EDM is an open flexible data model featuring various kind of resources and relations between them, the Record API (and the Europeana Collections Portal) supports the retrieval of a segment of EDM for practical purposes (a subgraph, to use strict terminology). These "atomic" EDM segments usually contain one Cultural Heritage Object (CHO), the aggregation information which connects the metadata and the digital representations together and a number of contextual resources such as the agents, places, concepts and time pertaining to the CHO.
Before start using this API, we recommend reading the introduction page for an overview of the EDM model, Registering for an API key, and reading the Terms of Use. If you want to get started with this API, go directly to the Getting Started section or try it out directly on the Console.
Europeana eCloud: an artistic installation
The project provides a unique visual experience, featuring personal World War One stories collected across Europe as part of Europeana's 1914-18 Family History Roadshows.
Europeana Attribution Tool
This tool, created for the Europeana Food & Drink project, allows users to supply a url for a Europeana page and generate an attribution snippet in either text or html
Digital Storytelling Prototype
The Digital Storytelling Prototype is a service (backend, API and client) that allows users to create and publish collections of content, mixing their own uploads with existing content in Europeana and on YouTube.
LIBRARIES AND PLUGINS
Apart from the console, there is a multitude of other ways you can interact with the API. On the libraries and plugins page, you can find libraries that allow you to develop applications with the API in your programming language of choice. Plugins make it easy to integrate the Europeana API into existing applications, such as Wordpress or Google Docs. 
CLICK HERE TO SEE ALL THE AVAILABLE API LIBRARIES AND PLUGINS
Deprecation Information
The following will be deprecated per the given date, ensure that your API clients are updated accordingly:
January 2018As the API supports SSL now for a while, we will start to redirect all non-SSL traffic for the API to SSL. Ensure your applications follow redirects if needed or adjust the hostname to use SSL.
Roadmap and Changelog
We deploy new versions of the portal and API quite regularly, but not all new versions result in changes in the interface. The current version of the Record API is 2.9.0 (2019-07-15). To see the changes made for this version and also all previous releases, see the API changelog in the project GitHub.
GETTING STARTED
Every call to the Record API is an HTTPS request in the following URL signature:
https://api.europeana.eu/record/v2/[RECORD_ID].[FORMAT]
Where the variables in the URL path mean:
RECORD_IDThe identifier of the record which is composed of the dataset identifier plus a local identifier within the dataset in the form of "/DATASET_ID/LOCAL_ID", for more detail see Europeana ID.
FORMATThe file extension corresponding to one of the supported output formats, namely: .json, .jsonld, .rdf. See next section on Output Formats
Additional parameters may apply to the request above such as the API key and Browser access.
Supported Output Formats
The Record API supports 3 serialization formats, namely: JSON, JSON-LD and RDF/XML. The primary and default output supported by this API is JSON which also means that some fields are only available in this format. Both JSON-LD and RDF/XML are formats to represent Linked Data which used predefined transport schemas for serializing RDF data. To request a record in either of these formats, just alter the extension of the call to the desired format. The table below explains each of the formats and the respective extension.
JSON.jsonThe output serialized in JSON and using a Europeana specific schema for representing EDM data. The schema is further explained in the next Section.
JSON-LD.json-ldAn alternative JSON output based on the JSON-LD format for RDF.
RDF/XML.rdfThe XML output is primarily based on RDF/XML format for RDF serialization but following the EDM XSD schema (the same schema is also used for data ingestion to Europeana).
Error Responses
An error occurring during processing of an API method is reported by (1) a relevant HTTP status code, (2) a value of the success field and (3) a meaningful error message in the error field. The following table shows the fields appearing within an error response:
apikeyStringThe authentication parameter sent out by the client (the wskey parameter)
successBooleanA boolean (true/false) flag denoting the successful execution of the call
statsDurationNumberThe time (in milliseconds) taken to serve the request
errorStringIf the call was not successful, this fields will contain a detailed text message. See Error Codes for more information.
The following kinds of errors can be returned by the API:
200The request was executed successfully.
401Authentication credentials were missing or authentication failed.
404The requested record was not found.
429The request could be served because the application has reached its usage limit.
500An error has occorred in the server which has not been properly handled. If you receive this error it means that something has gone really wrong, so please report them to us!
Example: Request to the Record API supplying an invalid (unknown) API key
https://api.europeana.eu/record/v2/000002/_UEDIN_214.json?wskey=test
{ "apikey": "test", "success": false, "error": "Invalid API key" }
RETRIEVING A RECORD IN THE DEFAULT FORMAT (JSON)
JSON is the primary output format of the Record API. It uses a Europeana specific schema for representing EDM data which is explained in this Section.
A response in JSON will always contain a number of fields that present information about the handling of the request, while the concrete information about the record is presented in the "object" field.
apikeyStringthe authentication parameter sent out by the client (the wskey parameter)
successBooleana boolean (true/false) flag denoting the successful execution of the call
statsDurationNumberthe time (in milliseconds) taken to serve the request
requestNumberNumbera positive number denoting the number of request by this API key within the last 24 hours
ObjectObjectThe object representing the EDM metadata record, see next Section.
Object
Gathers all the information contained within a EDM metadata record.
aboutString
agentsArray (Agent)
aggregationsArray (Aggregation)
conceptsArray (Concept)
countryArray (String)
europeanaAggregationArray (​EuropeanaAggregation
europeanaCollectionNameArray (String)
europeanaCompletenessNumber
languageArray (String)
licensesArray (License)
optOutBoolean
placesArray (Place)
providerArray (String)
providedCHOsArray (ProvidedCHO
proxiesArray (Proxy)
servicesArray (Service)
timespansArray (TimeSpan)
timestamp_created_epochNumber
timestamp_update_epochNumber
timestamp_createdString
timestamp_updateString
titleArray (String)
typeString
yearArray (String)
JSON Structures and Fields for EDM
The JSON structures and fields defined in this section all represent classes and properties that are defined in EDM. We advise all readers that are not familiar with EDM to first have a look at our introduction page where we explain the model. The fields listed in the table below have direct links to where they are explained in the introduction page for quick help.
rdf:aboutabout
edm:dataProvideredmDataProvider
edm:isShownByedmIsShownBy
edm:isShownAtedmIsShownAt
edm:objectedmObject
edm:provideredmProvider
edm:rightsedmRights
edm:ugcedmUgc
dc:rightsdcRights
edm:hasViewhasView
edm:aggregatedcHOaggregatedCHO
ore:aggregatesaggregates
edm:unstorededmUnstored
edm:WebResourcewebResources
rdf:aboutabout
edm:WebResourcewebResources
edm:aggregatedcHOaggregatedcHO
ore:aggregatesaggregates
dc:creatordcCreator
edm:landingPageedmLandingPage
edm:isShownByedmIsShownBy
edm:hasViewedmHasView
edm:countryedmCountry
edm:languageedmLanguage
edm:rightsedmRights
edm:previewedmPreview
rdf:aboutabout
owl:sameAsowlSameAs
rdf:aboutabout
dc:contributordcContributor
dc:coveragedcCoverage
dc:creatordcCreator
dc:datedcDate
dc:descriptiondcDescription
dc:formatdcFormat
dc:identifierdcIdentifier
dc:languagedcLanguage
dc:publisherdcPublisher
dc:relationdcRelation
dc:rightsdcRights
dc:sourcedcSource
dc:subjectdcSubject
dc:titledcTitle
dc:typedcType
dcterms:alternativedctermsAlternative
dcterms:conformsTodctermsConformsTo
dcterms:createddctermsCreated
dcterms:extentdctermsExtent
dcterms:hasFormatdctermsHasFormat
dcterms:hasPartdctermsHasPart
dcterms:hasVersiondctermsHasVersion
dcterms:isFormatOfdctermsIsFormatOf
dcterms:isPartOfdctermsIsPartOf
dcterms:isReferencedBydctermsIsReferencedBy
dcterms:isReplacedBydctermsIsReplacedBy
dcterms:isRequiredBydctermsIsRequiredBy
dcterms:issueddctermsIssued
dcterms:isVersionOfdctermsIsVersionOf
dcterms:mediumdctermsMedium
dcterms:provenancedctermsProvenance
dcterms:referencesdctermsReferences
dcterms:replacesdctermsReplaces
dcterms:requiresdctermsRequires
dcterms:spatialdctermsSpatial
dcterms:tableOfContentsdctermsTOC
dcterms:temporaldctermsTemporal
edm:currentLocationedmCurrentLocation
edm:hasMetedmHasMet
edm:hasTypeedmHasType
edm:incorporatesedmIncorporates
edm:isDerivativeOfedmIsDerivativeOf
edm:isNextInSequenceedmIsNextInSequence
edm:isRelatedToedmIsRelatedTo
edm:isRepresentationOfedmIsRepresentationOf
edm:isSimilarToedmIsSimilarTo
edm:isSuccessorOfedmIsSuccessorOf
edm:realizesedmRealizes
edm:typeedmType
edm:rightsedmRights
edm:wasPresentAtedmWasPresentAt
edm:europeanaProxyeuropeanaProxy
ore:proxyForproxyFor
ore:proxyInproxyIn
rdf:aboutabout
dc:rightswebResourceDcRights
edm:rightswebResourceEdmRights
dc:descriptiondcDescription
dc:formatdcFormat
dc:sourcedcSource
dcterms:extentdctermsExtent
dcterms:issueddctermsIssued
dcterms:conformsTodctermsConformsTo
dcterms:createddctermsCreated
dcterms:isFormatOfdctermsIsFormatOf
dcterms:hasPartdctermsHasPart
dcterms:isReferencedBydctermsIsReferencedBy
edm:isNextInSequenceisNextInSequence
edm:codecNameedmCodecName
ebucore:hasMimeTypeebucoreHasMimeType
ebucore:fileByteSizeebucoreFileByteSize
ebucore:durationduration
ebucore:widthebucoreWidth
ebucore:heightebucoreHeight
edm:spatialResolutionedmSpatialResolution
ebucore:sampleSizeebucoreSampleSize
ebucore:sampleRateebucoreSampleRate
ebucore:bitRateebucoreBitRate
ebucore:frameRateebucoreFrameRate
edm:hasColorSpaceedmHasColorSpace
edm:componentColoredmComponentColor
ebucore:orientationebucoreOrientation
ebucore:audioChannelNumberebucoreAudioChannelNumber
svcs:has_servicesvcsHasService
rdf:aboutabout
dcterms:comformsTodctermsConformsTo
doap:implementsdoapImplements
rdf:aboutabout
skos:prefLabelprefLabel
skos:altLabelaltLabel
skos:hiddenLabelhiddenLabel
skos:notenote
edm:beginbegin
edm:endend
edm:wasPresentAtedmWasPresentAt
edm:hasMetedmHasMet
edm:isRelatedToedmIsRelatedTo
owl:sameAsowlSameAs
foaf:namefoafName
dc:datedcDate
dc:identifierdcIdentifier
rdaGr2:dateOfBirthrdaGr2DateOfBirth
rdaGr2:dateOfDeathrdaGr2DateOfDeath
rdaGr2:dateOfEstablishmentrdaGr2DateOfEstablishment
rdaGr2:dateOfTerminationrdaGr2DateOfTermination
rdaGr2:genderrdaGr2Gender
rdaGr2:professionOrOccupationrdaGr2ProfessionOrOccupation
rdaGr2:biographicalInformationrdaGr2BiographicalInformation
rdf:aboutabout
skos:prefLabelprefLabel
skos:altLabelaltLabel
skos:hiddenLabelhiddenLabel
skos:notenote
skos:broaderbroader
skos:narrowernarrower
skos:relatedrelated
skos:broadMatchbroadMatch
skos:narrowMatchnarrowMatch
skos:exactMatchexactMatch
skos:relatedMatchrelatedMatch
skos:closeMatchcloseMatch
skos:notationnotation
skos:inSchemeinScheme
rdf:aboutabout
skos:prefLabelprefLabel
skos:altLabelaltLabel
skos:hiddenLabelhiddenLabel
skos:notenote
dcterms:isPartOfisPartOf
wgs84:latlatitude
wgs84:longlongitude
wgs84:altaltitude
wgs84:lat_longposition
dcterms:hasPartdcTermsHasPart
owl:sameAsowlSameAs
rdf:aboutabout
skos:prefLabelprefLabel
skos:altLabelaltLabel
skos:hiddenLabelhiddenLabel
skos:notenote
edm:beginbegin
edm:endend
dcterms:isPartOfisPartOf
dcterms:hasPartdctermsHasPart
owl:sameAsowlSameAs
rdf:aboutabout
odrl:inheritFromodrlInheritFrom
cc:deprecatedOnccDeprecatedOn
JSON Datatypes
The JSON output of this API uses the following datatypes:
Booleantrue or false
Numberinteger or double precision floating-point number
Stringdouble-quoted Unicode, with backslash escaping
Arrayan ordered sequence of values, comma-separated and enclosed in square brackets; the values do not need to be of the same type
Array([Datatype])an ordered sequence values of Datatype (e.g. String or Object), comma-separated and enclosed in square brackets
Objectan unordered collection of key:value pairs with the ':' character separating the key and the value, comma-separated and enclosed in curly braces; the keys must be strings and should be distinct from each other
LangMapA special datatype to provide values in various languages. It is an associative array where the keys are ISO language codes or "def" (where the language is not given), and the value is an array of strings. For example: "dcTitle": {"por": ["Paris"]}. Here the datatype of dcTitle is a LanguageMap: the language code is "por" (stands for Portuguese), and the value is a list with only one element: "Paris". For those familiar with Java notations: is it the JSON equivalent of Map<String,List<String>>
nullempty value
RETRIEVING A RECORD IN JSON-LD FORMAT
JSON-LD stands for JSON for Linking Data and is one of the Linked Data formats that the Record API supports. The basic structure of the JSON-LD response is similar to the default JSON format of the Record API:
{ "@context": { "ore": "http://www.openarchives.org/ore/terms/", "skos": "http://www.w3.org/2004/02/skos/core#", "dc": "http://purl.org/dc/elements/1.1/", "edm": "http://www.europeana.eu/schemas/edm/", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "dcterms": "http://purl.org/dc/terms/", "foaf": "http://xmlns.com/foaf/0.1/", "geo": "http://www.w3.org/2003/01/geo/wgs84_pos#" }, "@graph": [ { "@id": "http://data.europeana.eu/aggregation/europeana/09102/_CM_0839888", "@type": "edm:EuropeanaAggregation", "dc:creator": "Europeana", "edm:aggregatedCHO": { "@id": "http://data.europeana.eu/item/09102/_CM_0839888" }, "edm:collectionName": "09102_Ag_EU_MIMO_ESE", "edm:country": "Europe", "edm:landingPage": { "@id": "http://www.europeana.eu/portal/record/09102/_CM_0839888.html" }, "edm:language": "mul", "edm:rights": { "@id": "http://creativecommons.org/licenses/by-nc-sa/3.0/" } }, { "@id": "http://data.europeana.eu/aggregation/provider/09102/_CM_0839888", "@type": "ore:Aggregation", ... }, { "@id": "http://data.europeana.eu/item/09102/_CM_0839888", "@type": "edm:ProvidedCHO" }, { "@id": "http://data.europeana.eu/proxy/europeana/09102/_CM_0839888", "@type": "ore:Proxy", ... }, { "@id": "http://data.europeana.eu/proxy/provider/09102/_CM_0839888", "@type": "ore:Proxy", ... }, { "@id": "http://mediatheque.cite-musique.fr/masc/play.asp?ID=0839888", "@type": "edm:WebResource" }, { "@id": "http://semium.org/time/1910", "@type": "edm:TimeSpan", ... }, { "@id": "http://semium.org/time/19xx_1_third", "@type": "edm:TimeSpan", ... }, { "@id": "http://sws.geonames.org/2950159", "@type": "edm:Place", ... }, { "@id": "http://www.geonames.org/2950159", "@type": "edm:Place", ... }, { "@id": "http://www.mimo-db.eu/InstrumentsKeywords/4495", "@type": "skos:Concept", ... }, { "@id": "http://www.mimo-db.eu/media/MF-GET/IMAGE/MFIM000024482.jpg", "@type": "edm:WebResource", ... } ] }
The big differences between normal JSON and JSON-LD are
  1. JSON-LD makes use of Internationalized Resource Identifiers, IRIs as property names. This ensures that each statement of a record matches a standard vocabulary. In Europeana's implementation the properties are qualified names (in the format of "namespace_prefix:property_name" such as "dc:creator") for the sake of brevity. In the normal JSON response we use non-standard camel case ("dcCreator") property names. In the JSON Section you can find the connections between our camelCase property names and the JSON-LD and RDF qualified names.
  2. JSON-LD has a @context part, which links object properties in a JSON document to concepts in an ontology. In our JSON-LD this lists the used namespaces and their prefixes.
  3. JSON-LD makes a distinction between values that are string literals from values that are other resources.
A resource as value:
{ "edm:landingPage": { "@id": "http://www.europeana.eu/portal/record/09102/_CM_0839888.html" }, ... }
A string literal as value:
{ "dc:creator": "Europeana", ... }
RETRIEVING A RECORD IN RDF/XML FORMAT
The XML output is primarily based on RDF/XML format for RDF serialization but following the EDM XSD schema (the same schema is also used for data ingestion to Europeana).
The structure of an RDF/XML document formated using the EDM XSD schema is as follows:
RETRIEVING THUMBNAILS FROM MEDIA RESOURCES
The Thumbnail API is an extension of the Record API to allow the retrieval of cached thumbnails that are generated upon ingestion of the metadata by Europeana. Thumbnails are only generated for media resources that are referred through by edm:isShownBy, edm:isShownAt or edm:object properties which are then supplied using the edm:preview property.
Request
The Thumbnail API doesn't require any form of authentication, providing your API key is optional. It always returns an image, whether the thumbnail exists or not. To use the Search API to verify whether a thumbnail exists you can add has_thumbnail=true to your search query, or check if the edmPreview field in the search or record response has a value (which is the URL of the thumbnail).
Every call to the Thumbnail API is an HTTP request in the following URL signature:
https://api.europeana.eu/thumbnail/v2/url.json?uri=URI&type=TYPE&size=SIZE
where the variables in the URL path mean:
sizeStringThe size of the thumbnail, can either be w200 (width 200) or w400 (width 400).
typeStringType of the default thumbnail (media image) in case the thumbnail does not exists, can be: IMAGE, SOUND, VIDEO, TEXT or 3D.
uriStringThe URL of the media resource of which a thumbnail should be returned. Note that the URL should be encoded.
Response
The thumbnail API call responds with an image in the given size. If the thumbnail does not exist, the API returns a 'default' image which is specific to the 'type' that is provided.
Example
Obtain a 400px thumbnail from the image located at https://www.dropbox.com/s/8gpbipwr4ipwj37/Austria_Gerstl.jpg?raw=1​:
https://api.europeana.eu/thumbnail/v2/url.json?uri=https%3A%2F%2Fwww.dropbox.com%2Fs%2F8gpbipwr4ipwj37%2FAustria_Gerstl.jpg%3Fraw%3D1&type=IMAGE&size=w400
Datatypes for request parameters
The following datatypes are defined for the request parameters used in this method.
StringValues are preserved as they are present in the data.
CONSOLE
Use this console to experiment with the Record API and build queries. The Request URL will display the call you need to make to the API.

Europeana Foundation
Prins Willem-Alexanderhof 5
2595 BE Den Haag
Netherlands
News
Events
Publications
Contact us
Terms & policies
OUR MISSION
Europeana empowers the cultural heritage sector in its digital transformation. We develop expertise, tools and policies to embrace digital change and encourage partnerships that foster innovation.
All texts are CC BY-SA, images and media licensed individually.
Europeana Foundation is registered at the Chamber of Commerce under number 27307531, RSIN number is 8186.80.349.
FIND US ELSEWHERE

Europeana is an initiative of the European Union, financed by the European Union’s Connecting Europe Facility and European Union Member States. The Europeana services, including this website, are operated by a consortium led by the Europeana Foundation under a service contract with the European Commission.

The European Commission does not guarantee the accuracy of the information and accepts no responsibility or liability whatsoever with regard to the information on this website. Neither the European Commission, nor any person acting on the European Commission’s behalf, is responsible or liable for the accuracy or use of the information on this website.
Hi! Could we please enable some additional services for analytics and security? You can always change or withdraw your consent later.
Let me choose
Libraries and PluginsGet StartedJSONJSON-LDRDF/XMLThumbnailsConsole