This website uses cookies to ensure you get the best experience. By clicking or navigating the site you agree to allow our collection of information through cookies. More info

Europeana REST API

The Europeana REST API allows you to build applications that use the wealth of our collections drawn from the major museums and galleries across Europe. The Europeana collections contain over 50 million cultural heritage items, from books and paintings to 3D objects and audiovisual material, that celebrate over 3,500 cultural institutions across Europe.

Over the past couple of years, the Europeana REST API has grown beyond its initial scope as set out in September 2011, into a wide range of specialized APIs. At the moment, we offer several APIs that you can use to not only get the most out of Europeana but also to contribute back. If you want to search Europeana in an simple way (for instance 'give me all results for the word cat), you can then use the Search API. But if you are looking for a way to delve into the structured metadata of Europeana (For instance, to ask the question "What are all the French 18th-century painters with at least five artworks available through Europeana'), then the SPARQL service is more appropriate. On the other, if you want to get all the metadata associated with a single item, then you can use the Record API. It also possible to obtain a larger amount of metadata and ultimately harvest the complete Europeana repository by using the OAI-PMH Service. Regarding contextual information that is associated to items, we also offer an Entity API that gives you access to information such as Topics, Persons and Places. Lastly, if you want to contribute information about the items that are available on Europeana, you can do it via the Annotations API.

General Information

Registration

To start using the API you need to register for a key at the registration page. Upon registration, you will get your individual private and public authentication key. The private key is used for specific methods that require additional user authentication while the public key must be used by all other API methods, see Access using an API key. We use these keys to anonymously gather relevant statistics about the usage of the API so that we can better improve it. Please do not share these keys with third parties or expose it in user interfaces or in markup as the API keys are confidential and are for use by the client or user only.

This API key will give you access to all APIs that are in a Stable version. APIs such as OAI-PMH, Entity API, and Annotations API use different keys that can either be obtained on request or use a demonstration key.

Access using an API key

You need to provide an access key (corresponding to your public authentication key) when making a request to any of the methods made available by the Europeana REST APIs. This is done by using the wskey parameter described below. The only exception is the Thumbnail method of the Search API which does not require an access key.

ParameterDatatypeDescription
wskeyStringThe client API key that gives you access to this API.

Usage Limit

In the past, the Europeana REST API was limited to 10.000 calls within a period of 24 hours per API key. We have lifted this restriction but may reinstate it in the future.

Terms of Use

Please read our Terms of Use before using or reusing the Europeana REST APIs. The terms of use for external data sources appearing at data.europeana.eu are provided on the Europeana Data sources page.

API Console

Each API documentation page provides a console that allows developers to easily see how the API works and test it for their needs. This is an interactive tool that allows filling method parameters in an online form and sees both the expected results and the exact format of the call that should be used by an application to get these results. The API console has been built by us for developers’ convenience. You are encouraged to use it and provide us feedback about its usability for the developer community.

Releases

We deploy new versions of each API quite regularly. These are minor releases in order to fix issues or make small improvements to the existing or new functionality but without breaking backwards compatibility. For major releases we follow the standard practices:

AlphaA release is done when functionality is made available in an early stage for the purpose of receiving feedback from users, which may result on bug fixes or proposals to add, change or remove features. It is expected that not all functionality is made available, just the core features.
BetaThis release is done when all product features are completed and all major bugs have been addressed. It may still contain some bugs and potential performance issues, and functionality can still be changed.
Stable (official)This release is done when all product features are completed and all major bugs have been addressed. From this point on, any changes made to the functionality need to be backward compatible with previous versions.

Discussion and Contact

Join the Europeana API discussion group at Google Groups and get regular updates about the Europeana API, provide feedback and discuss it with other developers. If you wish you can also contact us directly via api@europeana.eu.

Europeana Data Model

To organize and structure its data, Europeana has defined a data model named Europeana Data Model (EDM). A detailed description of EDM is beyond the scope of this documentation: the reader is referred to the extensive documentation at the EDM page. However, a basic understanding of EDM is necessary for using the API. The objective of this section is to provide this basic understanding.

Records

A record is a term occasionally used as a shorthand means of referring to the package of data about one Cultural Heritage Object (CHO), comprising the 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.

Datasets

The records in Europeana are grouped by datasets. A dataset for Europeana is an Information Package as defined by OAIS or a collection of data. A Europeana dataset can be about a certain topic, originate from a certain source or process and is aggregated by a certain custodian. (http://www.w3.org/TR/void/). In some cases, a Europeana dataset can be the representation of one existing collection held by an institution, while in other cases the correspondence between datasets and collections won’t be one-to-one. A dataset can be provided by:

  • a provider (i.e. the organisation providing datasets directly to Europeana).
  • a data provider (i.e. an organisation providing the dataset to an aggregator).

Note that a dataset can have multiple data providers. A data provider is an organisation that submits data to Europeana.eu. Data providers may submit data directly to Europeana but are more likely to use the services of a provider, which collects, formats and manages data from data providers before submitting data to Europeana.eu.

Identifiers

EDM makes use of Internationalized Resource Identifier (ie. IRI, an extension to Uniform Resource Identifiers scheme so that Unicode characters can be used) as identifiers for all the resources (units of information) that make up the metadata of a CHO, as well as, the CHO itself so that they can be unambiguously referenced.

Besides being addressable, the resources are also dereferenceable by their IRIs; for instance, http://data.europeana.eu/item/92056/BibliographicResource_1000093324568 leads either to an HTML page on the Europeana portal for the object it identifies or to raw, machine-processable data on this object. Please see the technical details and the animation above for background on our motivation.

Identifying Records

All records when delivered to Europeana are assigned a unique identifier (IRI) with the following structure:

http://data.europeana.eu/item/...

For simplicity, many of the Europeana APIs use a field named Record ID as a shortened version made out of just the variable parts of the IRI:

/DATASET_ID/LOCAL_ID

The variables in both the IRI and Record ID have the following meaning:

ConstantDatatypeDescription
DATASET_IDNumberThe identifier of the dataset containing the record. It is typically a 5 digit integer number made of an initial 3 digit number that identifies the provider and following 2 digit number that identifies the actual dataset for that provider.
LOCAL_IDStringThe local identifier of the record which uniquely identifies the record within that dataset. It is typically generated in a deterministic way from the identifier given by the provider.

Example: IRI identifier of the CHO with Record ID "/09102/_GNM_1234"

http://data.europeana.eu/item/...

Namespaces

In the documentation we sometimes refer to namespace prefixes (eg. dc, skos, edm) as many RDF output formats make use of namespaces to abbreviate the identifiers (IRIs) of properties and classes, following Namespaces in XML 1.0. Here we list all the namespace prefixes and URIs that are used by the Europeana APIs.

PrefixNamespace URIDescription
cchttps://creativecommons.org/nsCreative Commons
dchttp://purl.org/dc/elements/1....Dublin Core
dctermshttp://purl.org/dc/terms/Dublin Core Mmetadata Initiative (DCMI) Metadata Terms
edmhttp://www.europeana.eu/schema...Europeana Data Model
foafhttp://xmlns.com/foaf/0.1/FOAF (Friend of a Friend) Vocabulary
orehttp://www.openarchives.org/or...Open Archives Initiative Object Reuse and Exchange
owlhttp://www.w3.org/2002/07/owl#OWL Web Ontology Language
rdaGr2http://rdvocab.info/ElementsGr...RDA Group 2 elements
rdfhttp://www.w3.org/1999/02/22-r...Resource Description Framework
skoshttp://www.w3.org/2004/02/skos...Simple Knowledge Organization System
wgs84http://www.w3.org/2003/01/geo/...WGS84 Geo Positioning

EDM Definitions

This section introduces all the classes defined in EDM and the properties that can be used in association to such classes.

ore:Aggregation

An Aggregation object. The set of resources related to a single cultural heritage object that collectively represent that object in Europeana. Such set consists of: all descriptions about the object that Europeana collects from (possibly different) content providers, including thumbnails and other forms of abstractions, as well as of the description of the object Europeana builds. An aggregation is associated to the object that it is about, by the property edm:aggregatedCHO. Find more in the EDM Definition.

EDM PropertyDatatype#Description
edm:aggregatedCHOReference1..1The identifier of the source object e.g. the Mona Lisa itself. This could be a full linked open data URI or an internal identifier.
edm:dataProviderLiteral1..1The name of the data provider of the object (i.e. the organisation providing data to an aggregator).
edm:hasViewReference0..*The URL of a web resource which is a digital representation of the CHO. This may be the source object itself in the case of a born digital cultural heritage object.
edm:intermediateProviderLiteral or Reference0..*The name of the intermediate organization that selects, collates, or curates data from a Data Provider that is then aggregated by a Provider from which Europeana aggregates. The Intermediate Provider is distinct from both the Data Provider and the Provider in the data supply chain.
edm:isShownAtReference0..1The URL to the digital object on the provider’s web site in its full information context.
edm:isShownByReference0..1The URL of a web view of the object.
edm:objectReference0..1The URL of a representation of the CHO which will be used for generating previews for use in the Europeana portal. This may be the same URL as edm:isShownBy.
edm:providerLiteral1..1The name of the provider of the object (i.e. the organisation providing data directly to Europeana).
dc:rightsLiteral or Reference0..*Information about rights held in and over the resource.
edm:rightsReference1..1The rights statement that applies to the digital representation, as given (for example) in edm:object or edm:isShownAt/By, when these resources are not provided with their own edm:rights.
edm:ugcLiteral0..1Indicates whether the record has been contributed by the user community. It is a mandatory property for objects that are user generated or user created that have been collected by crowdsourcing or project activity. The property is used to identify such content and can only take the value “true” (lower case).

edm:EuropeanaAggregation

An Europeana Aggregation object. The set of resources related to a single cultural heritage object that collectively represent that object in Europeana. Such set consists of: all descriptions about the object that Europeana collects from (possibly different) content providers, including thumbnails and other forms of abstractions, as well as of the description of the object Europeana builds.

EDM PropertyDatatype#Description
dc:creatorLiteral0..1A creator definitions. This field has always the value "Europeana".
edm:aggregatedCHOReference1..1The ID of the record corresponding to the CHO of this aggregation
edm:collectionNameLiteral1..1This property is deprecated and edm:datasetName should be used instead.
edm:datasetNameLiteral0..1This property holds the identifier given to the dataset in Europeana.
edm:countryLiteral1..1This is the name of the country in which the Provider is based or “Europe” in the case of Europe-wide projects.
edm:hasViewReference0..*This property relates a ORE aggregation about a CHO with a web resource providing a view of that CHO. Examples of view are: a thumbnail, a textual abstract and a table of contents.
edm:isShownByReference0..1An unambiguous URL reference to the digital object on the provider’s web site in the best available resolution/quality.
edm:landingPageReference0..1The URL of Europeana HTML object page. It captures the relation between an aggregation representing a cultural heritage object and the Web resource representing that object on the provider’s web site.
edm:languageLiteral1..1A language assigned to the resource with reference to the Provider.
edm:previewReference0..1The URL of a thumbnail representing the digital object, generated by Europeana.
edm:rightsReference0..1Information about copyright of the digital object as specified by isShownBy and isShownAt.
ore:aggregatesReference0..*Aggregations, by definition, aggregate resources. The ore:aggregates relationship expresses that the object resource is a member of the set of aggregated resources of the subject (the Aggregation). This relationship between the Aggregation and its Aggregated Resources is thus more specific than a simple part/whole relationship, as expressed by dcterms:hasPart for example.

edm:ProvidedCHO

Represents the Cultural Heritage Object that Europeana collects descriptions about. The metadata describing the object sent by the data provider is described within the Provider Proxy, see the EDM Primer for the differences between edm:ProvidedCHO and Proxies.

EDM PropertyDatatype#Description
owl:sameAsReference0..*Links an individual to an individual. Such an owl:sameAs statement indicates that two URI references actually refer to the same thing: the individuals have the same "identity".

ore:Proxy (Provider and Europeana Proxies)

Europeana uses Proxies as place-holders for cultural heritage objects within aggregations (whether Europeana aggregations or not) to the end of making assertions (a specific view) about the corresponding cultural heritage objects while distinguishing the provenance of these assertions. This is particular important as Europeana can add metadata which can this way be distinguished from the original metadata sent by the Data Provider (See chapter 6.1 Introducing proxies in the EDM primer). The first is usually called Europeana Provider and is distinguished from the Provider Proxy through the edm:europeanaProxy property with the value "true".

Differences between a Provider's Proxy and Europeana Proxy:

  • a provider proxy has edm:type and a europeana proxy does not.
  • a europeana proxy has edm:year and a provider proxy does not.
EDM PropertyDatatype#Description
dc:contributorLiteral or Reference0..*An entity responsible for making contributions to the resource.
dc:coverageLiteral or Reference0..*The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant.
dc:creatorLiteral or Reference0..*An entity primarily responsible for making the resource. This may be a person, organisation or a service.
dc:dateLiteral or Reference0..*A point or period of time associated with an event in the lifecycle of the resource.
dc:descriptionLiteral or Reference0..*A description of the resource.
dc:formatLiteral or Reference0..*The file format, physical medium or dimensions of the resource.
dc:identifierLiteral0..*An unambiguous reference to the resource within a given context.
dc:languageLiteral0..*A language of the resource.
dc:publisherLiteral or Reference0..*An entity responsible for making the resource available. Examples of a publisher include a person, an organisation and a service.
dc:relationLiteral or Reference0..*The name or identifier of a related resource, generally used for other related CHOs. The recommended best practice is to identify the resource using a formal identification scheme.
dc:rightsLiteral or Reference0..*Name of the rights holder of the CHO or more general rights information. (Note that the controlled edm:rights property relates to the digital objects and applies to the edm:WebResource and/or edm:Aggregation).
dc:sourceLiteral or Reference0..*A related resource from which the described resource is derived in whole or in part, i.e. the source of the original CHO.
dc:subjectLiteral or Reference0..*The topic of the resource.
dc:titleLiteral0..*A name given to the resource. Typically, a Title will be a name by which the resource is formally known.
dc:typeLiteral or Reference0..*The nature or genre of the resource. Type includes terms describing general categories, functions, genres, or aggregation levels for content.
dcterms:alternativeLiteral0..*An alternative name for the resource. This can be any form of the title that is used as a substitute or an alternative to the formal title of the resource including abbreviations or translations of the title.
dcterms:conformsToLiteral or Reference0..*An established standard to which the described resource conforms.
dcterms:createdLiteral or Reference0..*Date of creation of the resource.
dcterms:extentLiteral or Reference0..*The size or duration of the resource.
dcterms:hasFormatLiteral or Reference0..*A related resource that is substantially the same as the pre-existing described resource, but in another format.
dcterms:hasPartLiteral or Reference0..*A related resource that is included either physically or logically in the described resource.
dcterms:hasVersionLiteral or Reference0..*A related resource that is a version, edition, or adaptation of the described resource. Changes in version imply substantive changes in content rather than differences in format.
dcterms:isFormatOfLiteral or Reference0..*A related resource that is substantially the same as the described resource, but in another format.
dcterms:isPartOfLiteral or Reference0..*A related resource in which the described resource is physically or logically included.
dcterms:isReferencedByLiteral or Reference0..*A related resource that references, cites, or otherwise points to the described resource.
dcterms:isReplacedByLiteral or Reference0..*A related resource that supplants, displaces, or supersedes the described resource.
dcterms:isRequiredByLiteral or Reference0..*A related resource that requires the described resource to support its function, delivery or coherence.
dcterms:issuedLiteral or Reference0..*Date of formal issuance (e.g., publication) of the resource.
dcterms:isVersionOfLiteral or Reference0..*A related resource of which the described resource is a version, edition, or adaptation. Changes in version imply substantive changes in content rather than differences in format.
dcterms:mediumLiteral or Reference0..*The material or physical carrier of the resource.
dcterms:provenanceLiteral or Reference0..*A statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity and interpretation. This may include a description of any changes successive custodians made to the resource.
dcterms:referencesLiteral or Reference0..*A related resource that is referenced, cited, or otherwise pointed to by the described resource.
dcterms:replacesLiteral or Reference0..*A related resource that is supplanted, displaced, or superseded by the described resource.
dcterms:requiresLiteral or Reference0..*A related resource that is required by the described resource to support its function, delivery or coherence.
dcterms:spatialLiteral or Reference0..*Spatial characteristics of the resource.
dcterms:tableOfContentsLiteral or Reference0..*Table Of Contents. A list of subunits of the resource.
dcterms:temporalLiteral or Reference0..*Temporal characteristics of the resource.
edm:currentLocationLiteral or Reference0..1The geographic location and/or name of the repository, building, site, or other entity whose boundaries presently include the resource.
edm:europeanaProxyBoolean0..1Flag whether the proxy is an Europeana proxy. See chapter 6.2 Europeana proxies and data enrichment in the EDM primer.
edm:hasMetReference0..*edm:hasMet relates a resource with the objects or phenomena that have happened to or have happened together with the resource under consideration. We can abstractly think of history and the present as a series of “meetings” between people and other things in space-time. Therefore we name this relationship as the things the object “has met” in the course of its existence. These meetings are events in the proper sense, in which other people and things participate in any role.
edm:hasTypeLiteral or Reference0..*This property relates a resource with the concepts it belongs to in a suitable type system such as MIME or any thesaurus that captures categories of objects in a given field (e.g., the “Objects” facet in Getty’s Art and Architecture Thesaurus). It does not capture aboutness.
edm:incorporatesReference0..*This property captures the use of some resource to add value to another resource. Such resources may be nested, such as performing a theater play text, and then recording the performance, or creating an artful edition of a collection of poems or just aggregating various poems in an anthology.
edm:isDerivativeOfReference0..*This property captures a narrower notion of derivation than edm:isSimilarTo, in the sense that it relates a resource to another one, obtained by reworking, reducing, expanding, parts or the whole contents of the former, and possibly adding some minor parts.
edm:isNextInSequenceReference0..*Relates two resources S and R that are ordered parts of the same resource A, and such that S comes immediately after R in the order created by their being parts of A.
edm:isRelatedToLiteral or Reference0..*The most general contextual property defined in EDM. Contextual properties have typically to do either with the things that have happened to or together with the object under consideration, or what the object refers to by its shape, form or features in a figural or encoded form.
edm:isRepresentationOfReference0..1This property associates a resource to another resource that it represents.
edm:isSimilarToReference0..*The most generic derivation property, covering also the case of questionable derivation. Is Similar To asserts that parts of the contents of one resource exhibit common features with respect to ideas, shapes, structures, colors, words, plots, topics with the contents of the related resource.
edm:isSuccessorOfReference0..*This property captures the relation between the continuation of a resource and that resource. This applies to a story, a serial, a journal etc. No content of the successor resource is identical or has a similar form with that of the precursor. The similarity is only in the context, subjects and figures of a plot. Successors typically form part of a common whole – such as a trilogy, a journal, etc.
edm:realizesReference0..*This property describes a relation between a physical thing and the information resource that is contained in it, visible at it or otherwise carried by it, if applicable.
edm:typeLiteral1..1The Europeana material type of the resource. All digital objects in Europeana have to be classified as one of the five Europeana material types using upper case letters: TEXT, IMAGE, SOUND, VIDEO or 3D. A broad classification of objects into five material types that users may find useful for filtering purposes: text, image, sound, video, 3D.
edm:unstoredLiteral0..*This property should not be used and is only included here for backward compatibility with ESE.
edm:wasPresentAtReference0..*This property associates the people, things or information resources with an event at which they were present.
edm:yearLiteral0..*A point of time associated with an event in the life of the original analog or born digital object.
ore:proxyForReference1..1Proxy objects are used to represent a resource as it is aggregated in a particular aggregation. The ore:proxyFor relationship is used to link the proxy to the aggregated resource it is a proxy for. The subject of the relationship is a proxy object, and the object of the relationship is the aggregated resource.
ore:proxyInReference1..*Proxy objects must also link to the aggregation in which the resource being proxied is aggregated. The ore:proxyIn relationship is used for this purpose. The subject of the relationship is a proxy object, and the object of the relationship is the aggregation
owl:sameAsReference0..*

edm:WebResource for digital representations

The digital representation(s) of the cultural heritage object. There may be more than one edm:WebResource for each edm:ProvidedCHO, which will be linked via the ore:Aggregation using edm:hasView or one of its subproperties.

The properties listed in this section are used to described the digital representation, not the cultural heritage object itself. Some of the properties such as "edm:hasColorSpace", "edm:componentColor", "edm:spatialResolution", "edm:codecName" and the ones defined within the EBUCORE namespace, are extracted from the media resource by Europeana tools during data ingestion. For more information on these properties, see the EDM profile for technical metadata.

EDM PropertyDatatype#Description
dc:creatorLiteral or Reference0..*An entity primarily responsible for making the web resource. This may be a person, organisation or a service.
dc:descriptionLiteral or Reference0..*An account or description of this digital representation.
dc:formatLiteral or Reference0..*The file format, physical medium or dimensions of the resource.
dc:rightsLiteral or Reference0..*Free text information about the rights in this object.
dc:sourceLiteral or Reference0..*A related resource from which the web resource is derived in whole or in part.
dcterms:conformsToLiteral or Reference0..*An established standard to which the web resource conforms.
dcterms:createdLiteral or Reference0..*Date of creation of the web resource.
dcterms:extentLiteral or Reference0..*The size or duration of the digital resource.
dcterms:hasPartReference0..*A related resource that is included either physically or logically in the web resource.
dcterms:isFormatOfLiteral or Reference0..*A related resource that is substantially the same as the described resource, but in another format.
dcterms:isReferencedByLiteral or Reference0..*A related resource that references, cites, or otherwise points to the described resource. In IIIF, dcterms:isReferencedBy can be used to connect a edm:WebResource to a IIIF manifest URI.
dcterms:isPartOfReference0..*A related resource in which the described web resource is physically or logically included.
dcterms:issuedLiteral or Reference0..*Date of formal issuance (e.g., publication) of the resource.
edm:isNextInSequenceReference0..*Where one CHO has several web resources, shown by multiple instances of the edm:hasView property on the ore:Aggregation this property can be used to show the sequence of the objects. Each web resource (apart from the first in the sequence) should use this property to give the URI of the preceding resource in the sequence.
edm:rightsReference0..1The value in this element will indicate the usage and access rights that apply to this digital representation. The rights statement specified at the level of the web resource will "override" the statement specified at the level of the aggregation. The value in this element is a URI taken from the set of those defined for use in Europeana. A list of these can be found at http://pro.europeana.eu/web/available-rights-statements
owl:sameAsReference0..*Provide the URI of another web representation of the same resource.
edm:codecNameLiteral0..1The name of a device or computer program capable of encoding or decoding a digital data stream or signal, e.g. "h264".
ebucore:hasMimeTypeLiteral0..1The main MIME type as defined by IANA: e.g. image/jpeg
ebucore:fileByteSizeLiteral0..1The size of a media file in bytes.
ebucore:durationLiteral0..1The duration of a media file in ms.
ebucore:widthLiteral0..1The width of a media file in pixels.
ebucore:heightLiteral0..1The height of a media file in pixels.
edm:spatialResolutionLiteral0..1The spatial resolution of a media resource.
ebucore:sampleSizeLiteral0..1The size of an audio sample in bits. Also called bit depth.
ebucore:sampleRateLiteral0..1The frequency at which audio is sampled per second. Also called sampling rate.
ebucore:bitRateLiteral0..1To provide the bitrate at which the MediaResource can be played in kilobits/second.
ebucore:frameRateLiteral0..1The frame rate of the video signal in frame per second.
edm:hasColorSpaceLiteral0..1Whether an image is a coloured image.
edm:componentColorLiteral0..6A significant color present in an image. The colors are taken from the CSS3 standard color palette and are expressed as a hexadecimal binary value.
ebucore:orientationLiteral0..1The orientation of a Document or an Image i.e. landscape or portrait.
ebucore:audiochannelNumberLiteral0..1The total number of audio channels contained in the MediaResource.
rdf:typeReference0..1
svcs:has_serviceReference0..*The identifier of the Service require to consume the WebResource.

SVCS Service

A Service is a web service associated with a Site or part of it. The Service class is used to flag a service requiring a specific protocol and profile to be consumed. A Service is important for IIIF Web Resources to flag their compliance and level of compliance to the IIIF specification. Find more in the IIIF to EDM Profile.

EDM PropertyDatatype#Description
dcterms:comformsToReference1..*An established standard to which the web resource or service conforms. W3C WCAG 2.0 (web content accessibility guidelines). If the Service describes a IIIF resource, dcterms:conformsTo must be used to describe the IIIF protocol the resource is conforming to.
doap:implementsReference0..*A specification that a project implements. Could be a standard, API or legally defined level of conformance. In IIIF doap:implements refers to the the protocol implemented in IIIF.

Classes for contextual resources

The contextual classes represent entities that bring additional information to the cultural heritage item. They comprise classes such as edm:Agent, edm:Place, edm:TimeSpan and skos:Concept.

edm:Agent

An EDM Agent class comprises people, either individually or in groups, who have the potential to perform intentional actions for which they can be held responsible.

EDM PropertyDatatype#Description
skos:prefLabelLiteral0..1The preferred form of the name of the agent.
skos:altLabelLiteral0..*Alternative forms of the name of the agent.
skos:hiddenLabelLiteral0..*A hidden lexical label, typically used for text-based indexing and search applications, but not for display purposes.
skos:noteLiteral0..*A note about the agent e.g. biographical notes.
dc:dateLiteral or Reference0..*A significant date associated with the agent.
dcterms:hasPartReference0..*
dc:identifierLiteral0..*An identifier of the agent.
dcterms:isPartOfReference0..*
edm:beginLiteral0..1The date the agent was born/established.
edm:endLiteral0..1The date the agent died/terminated.
edm:hasMetReference0..*Reference to another entity which the agent has “met” in a broad sense. For example a reference to a Place class.
edm:isRelatedToReference0..*Reference to other entities, particularly other agents, with whom the agent is related in a generic sense.
edm:wasPresentAtReference0..*Associates the people, things or information resources with an event at which they were present.
foaf:nameLiteral0..*The name of the agent as a simple textual string.
rdaGr2:biographicalInformationLiteral0..*Information pertaining to the life or history of the agent.
rdaGr2:dateOfBirthLiteral0..1The date the agent (person) was born.
rdaGr2:dateOfDeathLiteral0..1The date the agent (person) died.
rdaGr2:placeOfBirthLiteral or Reference0..1The town, city, province, state, and/or country in which a person was born.
rdaGr2:placeOfDeathLiteral or Reference0..1The town, city, province, state, and/or country in which a person died.
rdaGr2:dateOfEstablishmentLiteral0..1The date on which the agent (corporate body) was established or founded.
rdaGr2:dateOfTerminationLiteral0..1The date on which the agent (corporate body) was terminated or dissolved.
rdaGr2:genderLiteral0..1The gender with which the agent identifies.
rdaGr2:professionOrOccupationLiteral or Reference0..*The profession or occupation in which the agent works or has worked.
owl:sameAsReference0..*Another URI of the same agent.

edm:Place

The extent in space, in particular on the surface of the earth, in the pure sense of physics: independent from temporal phenomena and matter.

EDM PropertyDatatype#Description
wgs84_pos:latfloating point0..1The latitude of a spatial thing (decimal degrees).
wgs84_pos:longfloating point0..1The longitude of a spatial thing (decimal degrees).
wgs84_pos:altfloating point0..1The altitude of a spatial thing (decimal metres above the reference).
wgs84_pos:lat_longLiteral0..1A comma-separated representation of a latitude, longitude coordinate.
skos:prefLabelLiteral0..1The preferred form of the name of the place.
skos:altLabelLiteral0..*Alternative forms of the name of the place.
skos:hiddenLabelLiteral0..*A hidden lexical label, represented by means of the skos:hiddenLabel property, is a lexical label for a resource, where a KOS designer would like that character string to be accessible to applications performing text-based indexing and search operations, but would not like that label to be visible otherwise.
skos:noteLiteral0..*Information relating to the place.
dcterms:hasPartReference0..*Reference to a place that is part of the place being described.
dcterms:isPartOfReference0..*Reference to a place that the described place is part of.
edm:isNextInSequenceReference0..*A sequence of Place entities over time e.g. the historical layers of the city of Troy./td>
owl:sameAsReference0..*URI of a Place.

edm:TimeSpan

A period of time having a beginning, an end and a duration.

EDM PropertyDatatype#Description
skos:prefLabelLiteral0..1The preferred form of the name of the timespan or period.
skos:altLabelLiteral0..*Alternative forms of the name of the timespan or period.
skos:hiddenLabelLiteral0..*A hidden lexical label, represented by means of the skos:hiddenLabel property, is a lexical label for a resource, where a KOS designer would like that character string to be accessible to applications performing text-based indexing and search operations, but would not like that label to be visible otherwise.
skos:noteLiteral0..*Information relating to the timespan or period.
dcterms:hasPartReference0..*Reference to a timespan which is part of the described timespan.
dcterms:isPartOfReference0..*Reference to a timespan of which the described timespan is a part.
edm:beginLiteral0..1The date the timespan started.
edm:endLiteral0..1The date the timespan finished.
edm:isNextInSequenceReference0..*Used to represent a sequence of Time Periods.
owl:sameAsReference0..*The URI of a timespan.

skos:Concept

A SKOS concept can be seen as an idea or notion; a unit of thought. All properties of this class are defined in SKOS.

EDM PropertyDatatype#Description
skos:prefLabelLiteral0..1The preferred form of the name of the concept.
skos:altLabelLiteral0..*Alternative forms of the name of the concept.
skos:hiddenLabelLiteral0..*A hidden lexical label, represented by means of the skos:hiddenLabel property, is a lexical label for a resource, where a KOS designer would like that character string to be accessible to applications performing text-based indexing and search operations, but would not like that label to be visible otherwise.
skos:broaderReference0..*The identifier of a broader concept in the same thesaurus or controlled vocabulary.
skos:narrowerReference0..*The identifier of a narrower concept.
skos:relatedReference0..*The identifier of a related concept.
skos:broadMatchReference0..*The identifier of a broader matching concepts from other concept schemes.
skos:narrowMatchReference0..*The identifier of a narrower matching concepts from other concept schemes.
skos:relatedMatchReference0..*The identifier of a related matching concepts from other concept schemes.
skos:exactMatchReference0..*The identifier of exactly matching concepts from other concept schemes.
skos:closeMatchReference0..*The identifier of close matching concepts from other concept schemes.
skos:noteLiteral0..*Information relating to the concept.
skos:notationLiteral0..*The notation in which the concept is represented. This may not be words in natural language for some knowledge organisation systems e.g. algebra.
skos:inSchemeReference0..*The URI of a concept scheme.

cc:License

A set of requests/permissions to users of a Work, e.g. a copyright license, the public domain, information for distributors.

EDM PropertyDatatype#Description
odrl:inheritFromReference1..1ID of a base rights statement from which the described License is derived. This value must come from a list of statements controlled by Europeana.
cc:deprecatedOnReference0..1The date that the license expires, as it has been described, which implies among other things the expiration of the restrictions specified by the license.

Datatypes

EDM inherits from RDF the following datatypes:

DatatypeDescription
LiteralA string value with an optional ISO639 language tag (ie. represented in RDF/XML using the xml:lang attribute).
ReferenceA reference to another resource (may be a contextual resource such as a person or place, a media object, or another object) using a unique identifier for that resource (i.e. URI).

Browser support for APIs

A client application running on a web browser is typically prohibited to call methods of an endpoint that is being served under a domain outside its own because of the same origin policy. To get around this restriction, we support CORS for all the APIs that we offer. For APIs such as Record API and Search API, we still offer support for the outdated JSONP mechanim. Given that this mechanism has been superseeded by CORS, we may stop supporting it in future versions of these APIs so we strongly recommend all users to shift from JSONP to CORS.

Cross-Origin Resource Sharing (CORS)

The Cross-Origin Resource Sharing (CORS) is a transparent mechanism using HTTP headers for client applications to call APIs served from a domain outside the one they are being served. To enable CORS, it is only necessary to supply the Origin HTTP header at every request with the domain where your application is running. After handling the request, the API will respond back with a set of headers that will tell the browser to lift the restrictions.

JSON with padding (JSONP)

JSONP (JSON with padding) is an older mechanism for getting around the same origin policy enforced by browsers. Unlike CORS, it is limited to GET request and works by supplying a client side (JavaScript) callback function that will be called with the respective response.

"Under the same origin policy, a web page served from server1.example.com cannot normally connect to or communicate with a server other than server1.example.com. An exception is the HTML script element. Exploiting the open policy for script elements, some pages use them to retrieve JavaScript code that operates on dynamically generated JSON-formatted data from other origins. This usage pattern is known as JSONP. Requests for JSONP retrieve not JSON, but arbitrary JavaScript code. They are evaluated by the JavaScript interpreter, not parsed by a JSON parser." (Wikipedia: JSONP)

A callback can be added to any JSON-based call by appending &callback=callbackname to the call, where the callbackname should be an existing JavaScript function existing on the client side. The API returns JSONP response, like this one:

https://api.europeana.eu/recor...[RECORD_ID].json?wskey=YOUR_KEY&callback=processEuropeanaSearch

Which returns

processEuropeanaSearch({
  "apikey":"xxxxx",
  "action":"record.json",
  "success":true,
  "statsDuration":22,
  "requestNumber":8,
  "object": {
    "type":"TEXT",
    "title":["Bibliotheca Indica"],
    "about":"[record ID]",
    ...
  }
})

The JSON response is wrapped into your function, and the function use JSON as input parameter, and it immediatelly runs when it returns. In your client you have to define the callback function before you call the API. A client side example:

<script>
function processEuropeanaSearch(json) {
  alert(json.object.title.join(', '));
}
</script>
<script src="https://api.europeana.eu/record/v2/0000/1111.json?wskey=xxxx&callback=processEuropeanaSearch"></script>
top