The Search API provides a way to search for metadata records and media on the Europeana repository. For example, you would use the Search API to get a response to the query give me all the results for the word "Vermeer". This API also Additionaly, it provides an auxiliary method for translating queries and support for alternative method using the OpenSearch.RSS protocol for easier integration with external services.
The Search API is the easiest API to use and understand. It interacts with Europeana's data in much the same way as the Europeana website does. You can search for keywords, and the API will return all records that match that keyword. You can refine your search with more advanced filters and advanced query syntax. You can choose to only return objects with certain copyright statements, or you can choose to return the results in a language of your choice. This means that with the search Search API, you can get a response to the query: 'Give me all objects by Vermeer that are openly licensed and have high-resolution images.'
...
api.europeana.eu/record/v2/search.json?wskeyquery=YOURAPIKEYHERE&q=Vermeer
Below you’ll find a table with the other standard parameters you can use in your API Search request:
...
Expand | ||
---|---|---|
| ||
Request: |
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 | ||
---|---|---|
| ||
Request:
|
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 | ||
---|---|---|
| ||
Request:
|
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.
...
Expand | ||
---|---|---|
| ||
Request:
Response:
|
...
Expand | ||
---|---|---|
| ||
Request: |
Expand | ||
---|---|---|
| ||
Request: |
Multiple Individual Facets
...
Expand | ||
---|---|---|
| ||
Request: |
Expand | ||
---|---|---|
| ||
Request: |
Offset and limit for Facets
...
Expand | ||
---|---|---|
| ||
Request: |
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query="Mona Lisa"
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.
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=who:("Leonardo da Vinci")
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=mona+AND+lisa
Boolean operators can also be combined with the search by fields. The following example searches for objects whose location is in Paris or in London:
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=where:(Paris+OR+London)
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=lisa+NOT+mona
Wildcard search
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=Nicolas~
Range search
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=[a TO 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!
...
...
...
...
...
...
...
...
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=Westminster&qf=where:London
...
...
https://api.europeana.eu/record/v2/search.json?wskey=YOURAPIKEY&query=mona+lisa&sort=YEAR+asc
...
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
...
Open Search
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:
https://api.europeana.eu/apirecord/v2/translateQueryopensearch.jsonrss?wskeysearchTerms=YOURAPIKEYTERMS&termcount=TERMCOUNT&languageCodesstartIndex=LANGUAGE_CODESSTART
The following parameters are supported by this method:
Expand | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
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 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
|
Expand | ||
---|---|---|
| ||
Request: |
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:
https://api.europeana.eu/record/v2/opensearch.rsssearchTerms=TERMS&count=COUNT&startIndex=START
The following parameters are supported by this method:
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | proxy_dcterms_hasPartdcterms_hasPart
|
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.
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.
...