Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
minLevel1
maxLevel2
outlinefalse
typelist
printablefalse

...

Getting Started

Request

Every call to the Search API is an HTTPS request using the following base URL:

...

Expand
titleExample: Search for all openly licensed records with a direct link to the full media file:

Request:

https://api.europeana.eu/record/v2/search.json?query=Paris&reusability=open&media=true&wskey=YOURAPIKEY

Response

A response from the Search API is always formatted in JSON and will contain fields that present information about the handling of the request, while the concrete information about the record is presented in the "items" field (see Metadata Sets).

Expand
titleSearch API Response Parameters

Field

Datatype

Description

apikey

String

the authentication parameter sent out by the client (the wskey parameter)

action

String

the name of the API method that was called

success

Boolean

a boolean (true/false) flag denoting the successful execution of the call

statsDuration

Number

the time (in milliseconds) taken to serve the request

requestNumber

Number

a positive number denoting the number of request by this API key within the last 24 hours

params

Object

The original request parameters. If an invalid request parameter was submitted, this response parameter will contain the default value (see individual calls for the default values). Shown up only if the profile parameter contains "params".

itemsCount

Number

The number of retrieved records

totalResults

Number

The total number of results

nextCursor

String

Encoded string to pass along to the cursor to navigate to the next page in the search result set. See Pagination.

items

Array (Item)

This is a collection of search results. Each item is represented by a summary of the metadata record. The actual content is dependent of the profile parameter.

facets

Array (Facet)

A collection of facets that describe the resultant dataset.

breadcrumbs

Array (Breadcrumb)

A collection of search queries that were applied in this call.

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:

...

Expand
titleExample: Request to the Search API supplying an invalid (unknown) API key

Request:

https://api.europeana.eu/record/v2/search.json?query=*&wskey=test

Response:

Code Block
{
    "apikey": "test",
    "success": false,
    "error": "Invalid API key"
}

Query, Filter, and Faceting Fields

Search Fields outside EDM

In addition to the fields defined in EDM, a handful of other administrative fields can also be used to search.

Expand
titleList of Search fields outside of EDM

Search Field

Datatype

Result Field

Description

europeana_id

String

id

The Europeana ID of the record.

timestamp

Date

timestamp_created

Date

timestamp_created
timestamp_created_epoch

The date when record was created (formatted as ISO 8601)

timestamp_update

Date

timestamp_update
timestamp_update_epoch

The date when record was last updated (formatted as ISO 8601)

europeana_completeness

Number

europeanaCompleteness

An internal Europeana measure of the completeness of the metadata of the record, based on the availability of mandatory and optional schema fields. It is measured as a number from 1 to 10 and serves as indicator of the metadata quality.

COMPLETENESS

String

completeness

Language-specific Search Fields

In EDM, most of the properties that accept a Literal may be language tagged, meaning the field has a tag that describes the language of the text using the ISO 639-2 standard. To allow for a language-specific search on such properties, the Search API defines a field for each of the language variations that appear in our repository while keeping the base field with all the values in all language variations. As opposed to the base field which typically has datatype Text (some fields may also be defined as String), the language-specific fields are always of type String to allow for faceting with the complete value (with no tokenization), see “datatypes for search fields” below for more details. If a language-specific field is part of a metadata set, it can also be output in the response (see “Language-Specific Result Fields” under the “Metadata Sets” Heading).

...

Search Field

Search Datatype

Result Field

proxy_dc_creator

Text

dcCreator

proxy_dc_creator.*

String

dcCreatorLangAware

Search Fields defined in EDM

EDM defines an extensive list of classes and properties. In the Search API only a subset of these, corresponding to the ones found to be the most commonly used, can be used to search in the repository. These fields are listed in this section.

...

Expand
titleList of Search Fields defined in EDM

Search Field

Search Datatype

Result Field

ML

ore:Proxy

proxy_dc_contributor

Text

dcContributor

CONTRIBUTOR

String

dcContributor

proxy_dc_coverage

String

proxy_dc_creator

Text

dcCreator
dcCreatorLangAware

proxy_dc_date

String

proxy_dc_description

Text

dcDescription
dcDescriptionLangAware

proxy_dc_format

Text

proxy_dc_identifier

String

LANGUAGE

String

dcLanguage

proxy_dc_publisher

Text

proxy_dc_rights

String

proxy_dc_source

String

proxy_dc_subject

Text

proxy_dc_title

Text

dcTitleLangAware

proxy_dc_type

String

proxy_dc_type_search

Text

proxy_dcterms_alternative

String

proxy_dcterms_created

String

proxy_dcterms_hasPart

String

dctermsHasPart

proxy_dcterms_isPartOf

String

dctermsIsPartOf

proxy_dcterms_issued

String

proxy_dcterms_medium

Text

proxy_dcterms_provenance

String

proxy_dcterms_spatial

String

dctermsSpatial

proxy_dcterms_temporal

String

proxy_edm_currentLocation

String

proxy_edm_hasMet

String

proxy_edm_isRelatedTo

String

TYPE

String

type

YEAR

String

year

ore:Aggregation

DATA_PROVIDER

String

edmDataProvider

provider_aggregation_edm_hasView

String

provider_aggregation_edm_intermediateProvider

String

provider_aggregation_edm_isShownAt

String

edmIsShownAt

provider_aggregation_edm_isShownBy

String

edmIsShownBy

provider_aggregation_edm_object

String

edmObject

PROVIDER

String

provider

provider_aggregation_dc_rights

String

RIGHTS

String

rights

UGC

Boolean

ugc

edm_previewNoDistribute

Boolean

previewNoDistribute

edm:EuropeanaAggregation

europeana_collectionName1

String

europeanaCollectionName

edm_datasetName

String

edmDatasetName

COUNTRY

String

country

europeana_aggregation_edm_language

String

language

edm:WebResource

edm_webResource

String

wr_dc_rights

String

wr_dcterms_isReferencedBy

String

wr_edm_isNextInSequence

String

wr_edm_rights

String

wr_svcs_hasservice

String

cc:License

wr_cc_license

String

provider_aggregation_cc_license

String

provider_aggregation_odrl_inherited_from

String

wr_cc_odrl_inherited_from

String

wr_cc_deprecated_on

Date

provider_aggregation_cc_deprecated_on

Date

svcs:Service

svcs_service

String

sv_dcterms_conformsTo

String

edm:Agent

edm_agent

String

edmAgent

ag_skos_prefLabel

Text

edmAgentLabel

ag_skos_altLabel

Text

ag_foaf_name

String

ag_rdagr2_dateOfBirth

String

ag_rdagr2_dateOfDeath

String

ag_rdagr2_placeOfBirth

Text

ag_rdagr2_placeOfDeath

Text

ag_rdagr2_professionOrOccupation

String

skos:Concept

skos_concept

String

edmConceptTerm

cc_skos_prefLabel

String

edmConceptPrefLabel

cc_skos_altLabel

String

edm:Place

edm_place

String

edmPlace

pl_wgs84_pos_lat

String

edmPlaceLatitude

pl_wgs84_pos_long

String

edmPlaceLongitude

pl_wgs84_pos_alt

String

pl_skos_prefLabel

Text

edmPlaceLabel

pl_skos_altLabel

Text

edmPlaceAltLabel

edm:TimeSpan

edm_timespan

String

edmTimespan

ts_skos_prefLabel

String

edmTimespanLabel

ts_skos_altLabel

String

Notes:

1 This field has been deprecated with edmDatasetName. This change followed the change in EDM to rename to edm:collectionName to edm:datasetName. We will keep support for edmCollectionName for a grace period, but on January 2018, we will return only edmDatasetName so please update your API client.

Aggregated Fields

Europeana aggregates its data from cultural institutions that can use diverse, fine-grained systems and methodologies. As a result, a link between for example an object and a person may be stored in different specialized fields. To provide simpler views on this data, Europeana has introduced several general Aggregated Fields, such as: title, who, what, when, and where. In these fields, we gather together information from different record fields to make the discovery of objects easier. Title, for example, aggregates data from the dc:title and dcterms:alternative fields which are part of Dublin Core, a popular general standard for describing different types of resources.

Expand
titleList of Aggregated Fields

Field Name

Search Datatype

Fields being Aggregated

title

Text

proxy_dc_title, proxy_dcterms_alternative

subject

Text

proxy_dc_coverage, proxy_dc_subject, proxy_dcterms_spatial, proxy_dcterms_temporal

what

Text

proxy_dc_format, proxy_dc_type, proxy_dc_subject, proxy_dcterms_medium, cc_skos_prefLabel, cc_skos_altLabel

when

Text

proxy_dcterms_created, proxy_dcterms_temporal, proxy_dc_date, ts_skos_prefLabel, ts_skos_altLabel, proxy_edm_year, proxy_dcterms_issued

where

Text

proxy_dcterms_spatial, pl_skos_prefLabel, pl_skos_altLabel

who

Text

proxy_dc_contributor, proxy_dc_creator, ag_skos_prefLabel, ag_skos_altLabel, ag_foaf_name

text

Text

provider_aggregation_edm_dataProvider, provider_aggregation_edm_intermediateProvider, provider_aggregation_edm_provider, proxy_dc_contributor, proxy_dc_coverage, proxy_dc_creator, proxy_dc_date, proxy_dc_description, proxy_dc_format, proxy_dc_language, proxy_dc_publisher, proxy_dc_source, proxy_dc_subject, proxy_dc_title, proxy_dc_type, proxy_dcterms_alternative, proxy_dcterms_created, proxy_dcterms_issued, proxy_dcterms_medium, proxy_dcterms_provenance, proxy_dcterms_spatial, proxy_dcterms_temporal, proxy_edm_currentLocation, proxy_edm_type, ag_skos_altLabel, ag_skos_prefLabel, ag_foaf_name, ts_skos_altLabel, ts_skos_prefLabel, pl_skos_altLabel, pl_skos_prefLabel, cc_skos_altLabel, cc_skos_prefLabel, proxy_dc_type_search

Media Search

The Search API allows not only to search on and retrieve metadata added by curators but also offers powerful features based on technical metadata. Technical metadata is metadata which is extracted from media files such as images and videos which are associated with records, such as the width and height of an image. This allows you to search for and filter Europeana records by media information, for instance to only search for records which have extra large images, high-quality audio files, or images that match a particular colour. Besides searching and filtering, faceting is also possible using technical metadata and is part of the default facets provided by the facet profile.

...

Expand
titleList of fields related to metadata extracted from media resources

Facet Name

Datatype

Media Type

Description

MEDIA

Boolean

To indicate whether an URL to the full media file is present in the edm:isShownBy or edm:hasView metadata and is resolvable.

MIME_TYPE

String

Mime-type of the file, e.g. image/jpeg

IMAGE_SIZE

String

Image

Size in megapixels of an image, values: small (< 0.5MP), medium (0.5-1MP), large (1-4MP) and extra_large (> 4MP)

IMAGE_COLOUR

Boolean

Image

Lists 'true' for colour images. An alias to this facet is IMAGE_COLOR, note that for non-colour images you cannot provide the 'false' value. Use the greyscale-facet instead.

IMAGE_GREYSCALE

Boolean

Image

Lists 'true' for greyscale images. An alias to this facet is IMAGE_GRAYSCALE, note that for colour images you cannot provide the 'false' value. Use the colour-facet instead.

COLOURPALETTE

String

Image

The most dominant colours present in images, expressed in HEX-colour codes. See colour palette.

IMAGE_ASPECTRATIO

String

Image

Portrait or landscape.

VIDEO_HD

Boolean

Video

Lists 'true' for videos that have a resolution higher than 576p.

VIDEO_DURATION

String

Video

Duration of the video, values: short (< 4 minutes), medium (4-20 minutes) and long (> 20 minutes).

SOUND_HQ

Boolean

Sound

Lists 'true' for sound files where the bit depth is 16 or higher or if the file format is a lossless file type (ALAC, FLAC, APE, SHN, WAV, WMA, AIFF & DSD). Note that 'false' does not work for this facet.

SOUND_DURATION

String

Sound

Duration of the sound file, values: very_short (< 30 seconds), short (30 seconds - 3 minutes), medium (3-6 minutes) and long (> 6 minutes).

TEXT_FULLTEXT

Boolean

Text

Lists 'true' for text media types which are searchable, e.g. a PDF with text.

Colour palette

From all records with images, the six most prominent colours are extracted. These colours are then mapped to one of the 120 colours that can be found in the listing here. To search for records where one of the images matches a particular colour you can use the colour palette parameter, you can provide it multiple times. You need to provide a Hex rgb code as value, such as #8A2BE2 or #FFE4C4.

Datatypes for Search Fields

The following datatypes are defined for the search fields used for querying, filtering and faceting.

Expand
titleList of Datatypes that a search field might hold

Datatype

Description

Boolean

A true or false value.

Number

A numeric value, typically with integer precision.

Date

A point in time with millisecond precision. See Section X to learn more on how to query date fields.

String

Values are preserved as they are present in the data, with no additional NLP processing. This datatype is typically more usefull for faceting.

Text

A word tokenized with punctuation filtering and case sensitive value, with additional stemming of words. This datatype is typically usefull for querying and filtering.

Reusability

The possible values of the reusability parameter are shown in the following Table:

...

Expand
titleExample: Search only for freely reusable records:

Request:

https://api.europeana.eu/record/v2/search.json?query=Paris&reusability=open&wskey=YOURAPIKEY

Profiles

A profile typically determines how extensive the response will be, by either dictating the metadata fields that will be present (ie. minimal, standard and rich) or appending additional data elements such as facets or breadcrumbs. Most facets can be combined with the exception of the metadata facets or combined facets such as rich. The following table lists the profiles supported by the API:

Expand
titleList of possible Profile parameter values

Profile

Description

minimal

Returns minimal set of metadata.

standard

Returns a broader set of metadata.

rich

Returns the broadest set of metadata.

facets

Information about Facets is added. For the records the Standard profile is used.

breadcrumbs

information about the query is added in the form of breadcrumbs. Facets are added as well; for the records the Standard profile is used.

params

The header of the response will contain a params key, which lists the requested and default parameters of the API call.

portal

standard, facets, and breadcrumb combined, plus additional fields.

Breadcrumbs

A collection of search queries that were applied to your call.

Expand
titleList of Breadcrumb fields

Field

Datatype

Description

display

String

Human-readable description of the search

param

String

The search parameter name (**query** or **qf**)

value

String

The search parameter value

href

String

The search part of the URL which can be reused in further calls

last

Boolean

Boolean value indicating whether the current breadcrumb is the last one

Metadata Sets

Each item in a search result is represented by a subset of the fields from the corresponding metadata record. The extent of the fields that are present is determined by the Profile chosen.

Result Fields outside EDM

In addition to the fields defined in EDM, a handful of other fields were defined for administrative reasons that are output in the response.

Expand
titleList of Result fields outside EDM

Result Field

Description

guid

A link to the object page on the Europeana portal to be used by client applications.

link

A link to the API object call. This link should be used to retrieve the full metadata object.

title

The main and alternative titles of the item.

score

The relevancy score calculated by the search engine. Depends of the query.

timestamp

?

timestamp_created_epoch

UNIX timestamp of the date when record were created

timestamp_update_epoch

UNIX timestamp of the date when record were last updated

timestamp_created

ISO 8601 format of the date when record were created

timestamp_update

ISO 8601 format of the date when record were last updated

Language-specific Result Fields

The same way as there are separate language-specific fields for searching, there is also a way to distinguish language-specific values for the response. Such fields always end with the suffix "LangAware" and are represented as LangMap. In order to preserve backwards compatibility we have not changed the original fields. This means that fields such as title, description and creator now appear twice in the search response, one with their original field name (dcTitle) and one as a multilingual labelled list (dcTitleLangAware). In the future, we will replace the single-value fields with the correct multilingual ones.

...

Result Field

Result Datatype

Search Field

dcCreator

Array (String)

proxy_dc_creator

dcCreatorLangAware

LangMap

proxy_dc_creator.*

Result Fields

The table below lists all the fields that are output by the search divided per profile (metadata set).

Expand
titleTable of all Response Result fields

Result Field

JSON Datatype

Search Field

Minimal Profile

id

String

europeana_id

link

String

guid

String

edmPreview

Array (String)

edmIsShownBy

Array (String)

provider_aggregation_edm_isShownBy

edmIsShownAt

Array (String)

provider_aggregation_edm_isShownAt

title

Array (String)

title

dcTitleLangAware

LangMap

proxy_dc_title.*

dcDescription

Array (String)

proxy_dc_description

dcDescriptionLangAware

LangMap

proxy_dc_description

dcCreator

Array (String)

proxy_dc_creator

dcCreatorLangAware

LangMap

proxy_dc_creator.*

edmPlaceLatitude

Array (String)

pl_wgs84_pos_lat

edmPlaceLongitude

Array (String)

pl_wgs84_pos_long

type

String

TYPE

year

Array (String)

YEAR

provider

Array (String)

PROVIDER

dataProvider

Array (String)

provider_aggregation_edm_dataProvider

rights

Array (String)

RIGHTS

europeanaCompleteness

Number

COMPLETENESS

score

Number

score

Standard Profile

previewNoDistribute

Boolean

edm_previewNoDistribute

edmConceptTerm

Array (String)

skos_concept

edmConceptPrefLabel

Array (LangMap)

cc_skos_prefLabel

edmConceptPrefLabelLangAware

LangMap

cc_skos_prefLabel.*

edmConceptBroaderTerm

Array (String)

cc_skos_broader

edmConceptBroaderLabel

Array (LangMap)

cc_skos_broader

edmTimespanLabel

Array (LangMap)

ts_skos_prefLabel

edmTimespanLabelLangAware

LangMap

ts_skos_prefLabel.*

ugc

Array (Boolean)

UGC

completeness

Number

COMPLETENESS

country

Array (String)

COUNTRY

europeanaCollectionName1

Array (String)

europeana_collectionName

edmDatasetName

Array (String)

edm_datasetName

edmPlaceAltLabel

???

pl_skos_altLabel

edmPlaceAltLabelLangAware

LangMap

pl_skos_altLabel.*

dcLanguage

Array (String)

proxy_dc_language

dctermsIsPartOf

Array (String)

pl_dcterms_isPartOf

timestamp

Number

timestamp

timestampCreated

String

timestamp_created

timestampUpdate

String

timestamp_update

language

Array (String)

LANGUAGE

Portal Profile

dctermsSpatial

Array (String)

proxy_dcterms_spatial

edmPlace

Array (String)

edm_place

edmTimespan

Array (String)

edm_timespan

edmAgent

Array (String)

edm_agent

edmAgentLabel

Array (LangMap)

ag_skos_prefLabel

dcContributor

Array (String)

proxy_dc_contributor

Rich Profile

edmLandingPage

europeana_aggregation_edm_landingPage

1 This field has been deprecated with edmDatasetName. This change followed the change in EDM to rename to edm:collectionName to edm:datasetName. Starting from January 2018, we will return only edmDatasetName . Please update your API client.

JSON Datatypes

The JSON output of this API uses the following datatypes:

...

Expand
titleExample: Include the broadest set of metadata in the search response:

Request:

https://api.europeana.eu/record/v2/search.json?query=Paris&profile=rich&wskey=YOURAPIKEY

Faceting

The number of records that Europeana contains is very big and growing. Therefore we need efficient ways to allow our users to discover what they need easily. One such technique is a faceted indexing system that classifies each record along multiple dimensions. The facets, seen on the left side of europeana.eu, can be useful for filtering search results and can also be used by API clients. If you conduct a search for the keyword "paris" and have a look at the TYPE facet, this facet would tell how many items exist within your search result grouped by TYPE (such as IMAGE, VIDEO etc.). All search fields can also be faceted on.

When you search within your result set for a specific facet, the other items in your facet would still exist (if you search for TYPE:IMAGE, then you can still see how many results there are for TYPE:VIDEO etc.). This last functionality, called multi-facets, is not supported for the Technical Metadata fields.

Requesting Facets

Facets can be requested by either setting the facets or the portal profiles with the profile parameter. By default, a predefined set of facets is returned corresponding to the facets seen on the left side of the europeana.eu, which correspond to the following search fields:

  • TYPE, LANGUAGE, COMPLETENESS, CONTRIBUTOR, COUNTRY, DATA_PROVIDER, LANGUAGE, PROVIDER, RIGHTS, UGC, YEAR, COLOURPALETTE, MIME_TYPE, REUSABILITY, IMAGE_SIZE, SOUND_DURATION, VIDEO_DURATION, TEXT_FULLTEXT, LANDINGPAGE, MEDIA, THUMBNAIL, IMAGE_ASPECTRATIO, IMAGE_COLOUR, VIDEO_HD, SOUND_HQ

Facet objects in the Response

When requested, facets appear on the response within the facets field as an Array of Facet objects, which are composed by the following fields:

...

Expand
titleExample: Requesting default facets for all Europeana records

Request:

https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=*&rows=0&profile=facets

Response:

Code Block
{
  "apikey": "YOURAPIKEY",
  "success": true,
  "requestNumber": 999,
  "totalResults": 62029238,
  "items": [],
  "facets": [
    {
      "name": "RIGHTS",
      "fields": [
        {
          "label": "http://rightsstatements.org/vocab/InC/1.0/",
          "count": 21135772
        },
        ...
        {
          "label": "http://creativecommons.org/licenses/by-nc-nd/3.0/de/",
          "count": 2732
        }
      ]
    }
    ...
  ]
}

Individual Facets

It is also possible to select which facets to retrieve beyond (or instead of) the default facet set, via the facet parameter.

...

Expand
titleExample: Requesting the default plus an additional individual facet

Request:

https://api.europeana.eu/record/v2/search.json?query=*&facet=DEFAULT+proxy_dc_rights+proxy_dcterms_medium&profile=facets&wskey=YOURAPIKEY&rows=0

Multiple Individual Facets

A client can request one or more facets in a single query. This can be done by either duplicating the facet parameter or by combining all the fields needed for faceting as a comma-separated String.

...

Expand
titleExample: requesting multiple facets using a comma-separated list.

Request:

https://api.europeana.eu/record/v2/search.json?query=*&facet=skos_concept,proxy_dcterms_medium&profile=facets&wskey=YOURAPIKEY&rows=0

Offset and limit for Facets

A client can request how many facet values to retrieve, and which should be the first one. These parameters can be used to page over all facet values without requesting too many facet values at a time. The table below explains these two parameters. The FACET_NAME constant stands for the field for which the limit applies.

...

Expand
titleExample: Requesting for faceting on the PROVIDER field using offset and limit.

Request:

https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=paris&profile=facets&facet=PROVIDER&f.PROVIDER.facet.offset=10&f.PROVIDER.facet.limit=30&rows=0

Pagination

The Search API offers two ways of paginating through the result set: basic and cursor-based pagination. The basic pagination is suitable for smaller or user-facing browsing applications which allows for the iteration over the first 1000 results using the start parameter. For larger and/or harvesting applications, the API offers the capability to use cursor-based pagination which allows for a quick iteration over the entire result set.

Pagination

Capabilities

Implementation

Basic

Allows to go to a specific offset/page (start=X).
Limited to the first 1000 results (start + rows).

Use the start parameter to set the search result offset, default value is 1.

Cursor-based

Quickly iterate over the entire result set.
Does not allow you to go to a specific offset.
Cannot be used in conjunction with the start parameter.
Based on Solr Cursor Pagination.

Set the cursor parameter to * to start cursor-based pagination at page 1.
Take the nextCursor value from the response and pass it to the cursor parameter to paginate to the next page (you will need to urlescape the key).
When the nextCursor value is not returned anymore, you have reached the end of the search result set.

Query Syntax

Europeana uses the Apache Solr platform to index its data and therefore Apache Lucene Query Syntax is inherently supported by the Search API, although the Solr eDismax query parser is the one currently used by default in the search engine. Advanced users are encouraged to use Lucene and Apache SOLR guides to get the most out of the Europeana repository. For others, we supply a basic guide for querying Europeana.

Basic and phrase search

To look for records that contain a search term in one of the data fields, provide the term as a query parameter:

...

Note that like in many other search applications omitting the quotes will result in searching for records that contain the term Mona and the term Lisa but not necessarily both of them together or in that order. We can allow the existence of a number of other words in between by adding that number after the quotes. For example, searching by “Peter Rubens”~1 will return objects about Peter Rubens but also about Peter Paul Rubens.

Search by fields

If you want to limit your search to a specific data field you should provide the name of the field using the following syntax. Use parentheses ( ) to group the keywords to search for in that field. For example, to look for objects whose creator is Leonardo da Vinci:

...

https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=who:("Leonardo da Vinci")

Boolean Search

To combine several terms in one search one can use boolean operators AND, OR, and NOT (note the case-sensitivity). Use parentheses to group logical conditions. Note that two consecutive terms without any boolean operator in between default to the AND operator.

...

https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=lisa+NOT+mona

Wildcard search

If you are not sure of the spelling of the search terms, you can use wildcards such as * or ? These will work on all words, but not in the first letter of the word.

...

https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=Nicolas~

Range search

To execute range queries, the range operator should be used. This example will search for objects whose field values fall between a and z:

...

As well as for textual fields it can also be used for numeric values, date ranges, or geographical areas, as shown below. Make sure you URLEncode these queries before putting them in a browser, since the square brackets cannot be part of a URL without being encoded first!

Geographical Bounding Box Search

To search for objects by their geographic location you should specify the bounding box of the area. You need to use the range operator and the pl_wgs84_pos_lat (latitude position) and pl_wgs84_pos_long (longitude position) field. The following example will bring all the objects found between the latitude of 45° and 47° and between the longitude of 7° and 8°:

...

https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=pl_wgs84_pos_lat:[45 TO 47] AND pl_wgs84_pos_long:[7 TO 8]

Timestamp Search

One can also search objects by date. Currently, full-fledge date search is supported only for the fields storing the creation (timestamp_created) and update (timestamp_update) dates of the objects in our database, which are available in two formats: the UNIX epoch timestamp and the ISO 8601 formatted date. To search for objects created or updated on a given date, use the following query:

...

https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=timestamp_update:"2013-03-16T20:26:27.168Z"

Searching for date range (as [date1 TO date2]):

Syntax: timestamp_created:[2013-11-01T00:00:0.000Z TO 2013-12-01T00:00:00.000Z]

...

https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=timestamp_update:[2013-11-01T00:00:0.000Z TO 2013-12-01T00:00:00.000Z]

Date mathematics

With date mathematics you can formulate questions such as "in the last two months" or "in the previous week". The basic operations and their symbols are addition (+), substraction (-) and rounding (/). Some examples:

...

You can find more about date mathematics at Solr's API documentation

Query Refinements

So far we have dealt with examples where there was only one query parameter. Sometimes it is useful to split a query into a variable and a constant part. For instance, for an application that accesses only objects located in London, it is possible to have the constant part of the query pre-selecting London-based objects and the variable part selecting objects within this pre-selection.

...

We can also use more specific fields instead of location: currentLocation (with coordinates from edm:currentLocation), and coverageLocation (with coordinates from dcterms:spatial and dc:coverage). For example, qf=distance(currentLocation,47,12,200) will filter the results to those actually located within 200 km of the coordinates indicated.

Sorting

The search results are, by default, ranked by relevance according to their similarity with the contents of the query parameter. It is possible however to use the parameter sort to arrange them according to one or more fields, in ascending or descending order. This example looks for objects containing the words mona and lisa, but sort them according to the field YEAR in ascending order:

...

Refinement and sorting parameters can be concatenated. Each such parameter and the mandatory query parameter contributes a breadcrumb object if breadcrumbs are specified in the search profile.

Query Translation

The Search API offers an auxiliary method to help translate search terms to different languages so that they can be easily used with the main Search API method. This method uses the Wikipedia API to perform the actual translation. The signature of the method is as follows:

...

Expand
titleList of Request fields using the TranslateQuery method

Parameter

Datatype

Description

term

String

The search term being translated

languageCodes

String

A comma separated list of ISO 8601 language codes corresponding to the target languages for translation

Response

A response of the translation method is always formatted in JSON and will contain several fields that present information about the handling of the request, while the concrete information about the record is presented in the "translations" field.

...

Expand
titleExample: Get translations for "Notre Dame" in Dutch, English and Hungarian

Request:

https://europeana.eu/api/v2/translateQuery.json?languageCodes=nl,en,hu&wskey=YOURAPIKEY&term=notre%20dame

Opensearch

Basic search function following the OpenSearch specification, returning the results in XML (RSS) format. This method does not support facet search or profiles. The names of parameters are different from other API call methods, because they match the OpenSearch standard. The OpenSearch response elements can be used by search engines to augment existing XML formats with search-related metadata. The signature of the method is as follows:

...

For the response, see OpenSearch specification.

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.

...

Deprecation Information

The following will be deprecated per the given date, ensure that your API clients are updated accordingly:

Date

Deprecation Details

January 2018

As the API supports HTTPS now for a while, we will start to redirect all non-HTTPS traffic for the API to HTTPS. Ensure your applications follow redirects if needed or adjust the hostname to use HTTPS.

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 Search 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.

Backward Compatibility (v1)

The current version of the Europeana API (API2) is fully backward compatible with the previous version (API1). However, we encourage developers to switch to the new naming of the fields that were used in API v1. For more information on the mapping between the new and the old fields, please see below.

Compatibility with V1

Some fields available in API1 were renamed in API2. In the table below you can find the mapping between the old and the new field names. Old field names are still supported but we encourage using new names because the backward compatibility with API1 fields will be stopped at some point.

Expand
titleTable comparing the differences in field names between API V1 and API V2

API1 field

API2 field

europeana_uri

europeana_id

europeana_collectionName

europeana_collectionName

europeana_type

proxy_edm_type

europeana_object

provider_aggregation_edm_object

europeana_isShownAt

provider_aggregation_edm_isShownAt

europeana_isShownBy

provider_aggregation_edm_isShownBy

europeana_provider

provider_aggregation_edm_provider

europeana_dataProvider

provider_aggregation_edm_dataProvider

europeana_rights

provider_aggregation_edm_rights

europeana_UGC

edm_UGC

europeana_completeness

europeana_completeness

europeana_previewNoDistribute

europeana_previewNoDistribute

dc_coverage

proxy_dc_coverage

dc_contributor

proxy_dc_contributor

dc_description

proxy_dc_description

dc_creator

proxy_dc_creator

dc_date

proxy_dc_date

dc_format

proxy_dc_format

dc_identifier

proxy_dc_identifier

dc_language

proxy_dc_language

dc_publisher

proxy_dc_publisher

dc_relation

dc_rights

proxy_dc_rights

dc_source

proxy_dc_source

dc_subject

proxy_dc_subject

dc_title

proxy_dc_title

dc_type

proxy_dc_type

dcterms_alternative

proxy_dcterms_alternative

dcterms_created

proxy_dcterms_created

dcterms_conformsTo

proxy_dcterms_conformsTo

dcterms_extent

proxy_dcterms_extent

dcterms_hasFormat

proxy_dcterms_hasFormat

dcterms_hasVersion

proxy_dcterms_hasVersion

dcterms_isFormatOf

proxy_dcterms_isFormatOf

dcterms_isPartOf

proxy_dcterms_isPartOf

dcterms_isReferencedBy

proxy_dcterms_isReferencedBy

dcterms_isReplacedBy

proxy_dcterms_isReplacedBy

dcterms_isRequiredBy

proxy_dcterms_isRequiredBy

dcterms_issued

proxy_dcterms_issued

dcterms_isVersionOf

proxy_dcterms_isVersionOf

dcterms_medium

proxy_dcterms_medium

dcterms_provenance

proxy_dcterms_provenance

dcterms_references

proxy_dcterms_references

dcterms_replaces

proxy_dcterms_replaces

dcterms_requires

proxy_dcterms_requires

dcterms_spatial

proxy_dcterms_spatial

dcterms_tableOfContents

proxy_dcterms_tableOfContents

dcterms_temporal

proxy_dcterms_temporal

skos_prefLabel

cc_skos_prefLabel

skos_altLabel

cc_skos_altLabel

skos_broader

cc_skos_broader

period_begin

ts_edm_begin

period_end

ts_edm_end

wgs_lat

pl_wgs84_pos_lat

wgs_lon

pl_wgs84_pos_long

enrichment_place_term

edm_place

enrichment_place_label

pl_skos_prefLabel

enrichment_place_latitude

pl_wgs84_pos_lat

enrichment_place_longitude

pl_wgs84_pos_long

enrichment_period_term

edm_timespan

enrichment_period_label

ts_skos_prefLabel

enrichment_period_begin

ts_edm_begin

enrichment_period_end

ts_edm_end

enrichment_concept_term

skos_concept

enrichment_concept_label

cc_skos_prefLabel

enrichment_agent_term

edm_agent

enrichment_agent_label

ag_skos_prefLabel

enrichment_place_broader_term

pl_dcterms_isPartOf

enrichment_place_broader_label

pl_dcterms_isPartOf_label

enrichment_period_broader_term

ts_dcterms_isPartOf

enrichment_period_broader_label

ts_dcterms_isPartOf_label

enrichment_concept_broader_term

cc_skos_broader

enrichment_concept_broader_label

cc_skos_broaderLabel

europeana_year

proxy_edm_year

europeana_language

europeana_aggregation_edm_language

europeana_country

europeana_aggregation_edm_country

dcterms_hasPart

proxy_dcterms_hasPart

Swagger Console

The Console can be used to try out API calls for the Record and Search APIs. To perform a Search API query, select the ‘/record/v2/search.json’ method under the ‘Search’ header in the console. Once you’ve opened this API call method, don’t forget to click the ‘Try it Out’ button in the top right of the method to be able to edit the query parameters and execute an API call.

...