IIIF APIs Documentation

The Europeana APIs offer for IIIF covers the Presentation API (versions 2.1 & 3), the Content Search API (version 1) and make use of the IIIF Image API when made available by content providers. Additionally, Europeana’s IIIF offer also includes support for fulltext (such as transcriptions, translations of transcriptions, captions and subtitles) via the IIIF Fulltext API using an EDM extension for fulltext. These APIs follow the specifications defined by the IIIF consortium.

You don’t need an API key for this API!

Introduction

The International Image Interoperability Framework (IIIF) is a range of standards that were initially designed to offer a standardized and scallable way to describe how digital objects composed of one or more images can be displayed to an end-user. This offers the flexibility to developers and users to respectively develop and use different IIIF compatible viewers according to their needs and preferences. Since its first release, it has grown to cover other types of media such as sound and video, and soon also 3D.

 

 

IIIF datasets in Europeana: A Scholar’s delight

The recently launched Europeana Media player brings Europeana into a new era of International Image Interoperability Framework (IIIF) compatible, interoperable and unified playout of audiovisual heritage material online. 

IIIF & Europeana Working Group

This dedicated IIIF & Europeana Working Group follows the first of the proposals from the Task Force 'Preparing Europeana for IIIF involvement.'

Impact Assessment report: EuropeanaTech and IIIF

This assessment looked at the impact of EuropeanaTech’s members, steering group and the Europeana Initiative’s work on IIIF - read a summary of the research and download the full report. 

Retrieving a manifest

A manifest describes the information needed for a viewer to display a digital object to the end-user, such as basic metadata such as a title and description, and the content that makes part of the digital object. The manifest is not meant to present all the descriptive metadata associated to a given digital object but just the bare minimum for a user to grasp what it is about. If you wish to access the full metadata for an item, see the Record API. The manifest also offers links to the Record API using the “seeAlso“ field.

The manifests are generated on-the-fly by converting the metadata records represented in EDM into the IIIF Presentation API specification. Presently, both version IIIF Presentation API 2.1 & 3 are supported. The novelty of version 3 is that it also covers audio and video besides images.

Request

https://iiif.europeana.eu/presentation/[RECORD_ID]/manifest Accept: [ACCEPT]

Parameter

Location

Description

Parameter

Location

Description

RECORD_ID

path

The identifier of the record which is composed of the dataset identifier plus a local identifier within the dataset in the form of "/DATASET_ID/LOCAL_ID", for more detail see Europeana ID.

Accept

header

Used to indicate the mimetype of the format and IIIF version. The following indicate the Accept header to be used for version 2.1 and 3 respectively:

application/ld+json;profile="http://iiif.io/api/presentation/2/context.json"

application/ld+json;profile="http://iiif.io/api/presentation/3/context.json"

format

(optional)

query

A convenience parameter used to indicate the version of the IIIF Presentation API. Indicating the format within the Accept header is the preferred way to request a specific version. This parameter should not be used if a profile is indicated in the Accept header.

Response v3:

Field

Datatype

Description

Field

Datatype

Description

Manifest

@context

String (URL)

The JSON-LD context corresponding to the version of the Manifest.

Always with the value "http://iiif.io/api/presentation/3/context.json" for v3 Manifests.

id

String (URI)

The unique identifier of the Manifest

type

String

The type of the resource. Always set to "Manifest" for Manifests.

label

Object (LangMap)

The title of the Item in multiple languages when available.

summary

Object (LangObject)

A longer-form prose description of the item in multiple languages when available.

metadata

Array (Metadata)

A section dedicated to present a portion of the metadata for this Item for display purposes.

thumbnail

Array (Thumbnail)

The thumbnail for this Item.

navDate

String (Datetime)

A date that can be used for navigation purposes when presenting the resource to the user in a time-based user interface, such as a calendar or timeline.

homepage

Array (Homepage)

The URL of this item in the Europeana Website.

requiredStatement

Object (Attribution Statement)

A text that must be shown when the item is displayed or used, presenting the copyright or ownership statements and an acknowledgement of the owning and/or publishing institution.

rights

Object (Rights)

One of the rights statements defined for use in Europeana. A rights statement that indicates the copyright, usage and access rights that apply to the content resource.

provider

Array (Provider)

The information about the provider of this Manifest. For Europeana, the Provider will always be ‘Europeana’.

seeAlso

Array (Dataset)

A list of datasets that this item is linked to. An item will most likely always link to 1 dataset.

service

Array (Search Service)

A list of services that are available for this Manifest. Only the search service is available.

start

Object (Reference)

Refers to the first Canvas to be displayed to the user.

items

Array (Canvas)

A ordered list of canvases that make up this Manifest. A canvas is a view (or individual page) of an item.

Canvas

id

String (URI)

The unique identifier of the Canvas.

type

String

The type of the resource. Always set to "Canvas" for Canvases.

label

Object (Language Map)

A label for the Canvas in multiple languages if available.

height

Integer

The height of the canvas which corresponds to the height of the content resource.

width

Integer

The width of the canvas which corresponds to the width of the content resource.

duration

Number

The duration (measured in seconds) of the canvas which corresponds to the duration of the content resource (only applies to Audio or Video).

requiredStatement

Object (Attribution Statement)

A text that must be shown when the content resource is displayed or used, presenting the copyright or ownership statements and an acknowledgement of the owning and/or publishing institution.

rights

Object (Rights)

One of the rights statements defined for use in Europeana. A rights statement that indicates the copyright, usage and access rights that apply to the content resource.

thumbnail

Array (Thumbnail)

The thumbnail, a smaller image that pictorially represents this content resource.

items

Array (Content Page)

A list representing the content that makes up the Canvas. For Europeana every canvas always will have 1 item, represented by 1 image, and thus 1 content page.

annotations

Array (Full-text Page)

A list representing the textual annotations to this canvas. For Europeana, there will always be 1 item here, being the full-text textual representation of what the image on the canvas shows.

Content Page

type

String

The type of the resource. Always set to "AnnotationPage" for content pages.

items

Array (Painting Annotation)

A list of painting annotations that represent the content that is display in the canvas. Only one painting annotation is present per canvas.

Painting Annotation

type

String

The type of the resource. Always set to "Annotation" for painting annotations.

motivation

String

A motivation for the annotation, in this case declaring that the image will be “painted“ on to the canvas.

timeMode

String

Indicates that a content resource with duration must be trimmed to the duration of the Canvas.

body

Object (Content Resource)

The content resource to be displayed in the Canvas.

target

String (URI)

The identifier of the Canvas on which the content resource will be displayed.

Content Resource

id

String

The URL of the content resource.

type

String

The type of the resource. One of “Image“, “Video“, “Sound“, “Text“.

height

Integer

The height of the content resource.

width

Integer

The width of the content resource.

duration

Number

The duration of the content resource.

language

String

The language of the content resource represented as a two letter ISO639 code.

service

Object (Image Service)

The IIIF Image service endpoint. It allows for the image to be progressively retrieved via tiles with varying resolutions.

Full-text Page

id

String (URL)

A reference to a page containing all full-text annotations available for this content resource.

type

String

The type of the resource. Always set to "AnnotationPage" for full-text pages.

language

String

The language of the full-text represented as a two letter ISO639 code and match the languages that are supported by Europeana.

textGranularity

Array (String)

The several levels of granularity represented on this page.

Image Service

id

String (URL)

The URL of the IIIF service hosting/serving the image.

type

String

Type of the resource. Always set to "ImageService3" for a image service.

profile

String (URI)

The compliance level profile of the IIIF image service endpoint. It defines the operations that are accepted by the server to be applied on the image being retrieval.

Search Service

@context

String (URI)

The JSON-LD context for the search service. Always with the value "http://iiif.io/api/search/1/context.json".

id

String

The URL of the Content Search service for this item.

profile

String

The version of the content search service. Always with the value “http://iiif.io/api/search/1/search“.

Metadata Property

label

Object (Language Map)

The name of a metadata property. One of: date, format, relation, type, language, source.

value

Object (Language Map)

The value of the metadata property in the available languages.

Provider

id

String (URI)

The URL of the about us page in the Europeana Website.

type

String

The type of the resource. Always set to “Agent“.

homepage

Array (Homepage)

A reference to the Europeana Website landing page.

logo

Array (Logo)

The URL of the Europeana logo to be used for display.

Attribution Statement

label

Object (Language Map)

Always with the value “Attribution“

value

Object (Language Map)

An attribution snippet to be used for display.

Rights

id

String (URI)

The URL of one of the rights statements defined for use in Europeana.

type

String

The type of the resource. Always set to “Text“.

format

String

The mimetype of the resouce being linked to.

Thumbnail

id

String (URI)

The URL of the thumbnail.

type

String

The type of the resource. Always set to “Image“.

width

Integer

The width of the thumbnail.

height

Integer

The height of the thumbnail.

Dataset

id

String (URI)

The URL for accessing the metadata record using the Record API.

type

String

The type of the resource. Always set to “Dataset“.

format

String

The format in which to access the metadata of the record represented as a media-type following the RFC 6838 specification.

profile

String (URL)

The model used to represent the metadata. Only EDM is supported.

Homepage

id

String (URI)

The URL to the webpage.

type

String

The type of the resource. Always set to “Text“.

label

Object (Language Map)

A label to be used for display.

format

String

The mimetype of the resouce being linked to.

Logo

id

String (URI)

The URL of the logo.

type

String

The type of the resource. Always set to “Image“.

Language Map

{LANG}

Array (String)

An object containing several pairs of language and values. The language is represented using the ISO639 code.

Response v2.1:

Field

Datatype

Description

Field

Datatype

Description

Manifest

@context

String (URL)

The JSON-LD context corresponding to the version of the Manifest.

Always with the value "http://iiif.io/api/presentation/2/context.json" for v3 Manifests.

@id

String (URI)

The unique identifier of the Manifest.

@type

String

The type of the resource. Always set to "sc:Manifest".

label

Array (Language Value)

The title of the item in multiple languages when available.

description

Array (Language Value)

A longer-form prose description of the item in multiple languages when available.

metadata

Array (Metadata Property)

A section dedicated to present a portion of the metadata for this item for display purposes.

thumbnail

Object (Thumbnail)

The thumbnail as defined in the edm:preview of the record.

navDate

String (Datetime)

A date that can be used for navigation purposes when presenting the resource to the user in a time-based user interface, such as a calendar or timeline.

attribution

String

A text that must be shown when this item is displayed or used. It includes the title, date of issue or publication, copyright statement and acknowledgement to the owning and/or publishing institution.

license

String (URI)

One of the rights statements defined for use in Europeana. It indicates the copyright, usage and access rights that apply to the digital object.

logo

String (URL)

The URL of the Europeana logo to be used for display.

seeAlso

Array (Dataset)

References for accessing the metadata for this item in various metadata formats.

sequences

Array (Sequence)

A list of sequences for this Manifest. Only one sequence is made available.

Sequence

@type

String

The type of the resource. Always set to "sc:Sequence".

label

String

A displayable label for this sequence. Always set to "Current Page Order".

startCanvas

String (URI)

Refers to the first Canvas to be displayed to the user.

canvases

Array (Canvas)

An ordered list of Canvases. A Canvas is a view (or individual page) of an item. It acts as a central point for assembling the different content resources that make up the display of the item.

Canvas

@id

String (URI)

The unique identifier of the Canvas.

@type

String

The type of the resource. Always set to "sc:Canvas".

label

String

A displayable label for this Canvas.

height

Number

The height of this Canvas which corresponds to the height of the image.

width

Number

The width of this Canvas which corresponds to the width of the image.

attribution

String

A text that must be shown when the content resources for this item are displayed or used. It includes the title, date of issue or publication, copyright statement and acknowledgement to the owning and/or publishing institution.

license

String (URI)

One of the rights statements defined for use in Europeana. It defines the copyright, usage and access rights that apply to this digital object.

images

Array (Painting Annotation)

A list of painting annotations that represent the content that is display in the canvas. Only one painting annotation is present per Canvas.

otherContent

Array (String)

A list of references to pages containing all full-text annotations available for this content resource.

Painting Annotation

@type

String

The type of the resource. Always set to "oa:Annotation".

motivation

String

A motivation for the annotation, in this case declaring that the image will be “painted“ on to the canvas.

resource

Object (Image Resource)

The image resource to be displayed in the Canvas.

on

String (URI)

The identifier of the Canvas on which the image will be displayed.

Image Resource

@id

String (URL)

The URL of the image resource.

@type

String

The type of the media resource. Only 'dctypes:Image' type is supported in v2 of the Presentation API.

format

String

The format of the content resource represented as a media-type following the RFC 6838 specification.

height

Integer

The height of the image resource.

width

Integer

The width of the image resource.

language

(optional)

String

The language of the text that is visible in the image resource represented as a two letter ISO639 code.

service (optional)

Object (Service)

The IIIF Image service endpoint. It allows for the image to be progressively retrieved via tiles with varying resolutions.

Image Service

@context

String (URL)

The JSON-LD context for the Image service. Always with the value "http://iiif.io/api/image/2/context.json".

@id

String (URL)

The URL of the IIIF service hosting/serving the image.

profile

String (URI)

The compliance level profile of the IIIF Image service endpoint. It defines the operations that are accepted by the server to be applied on the image being retrieval.

Search Service

@context

String (URL)

The JSON-LD context for the search service. Always with the value "http://iiif.io/api/search/1/context.json".

@id

String (URL)

The URL of the Content Search endpoint for this item.

profile

String (URI)

The version of the content search service. Always with the value “http://iiif.io/api/search/1/search“.

Metadata Property

label

String

The name of a metadata property, namely one of: “date”, “format”, “relation”, “type”, “language”, “source”.

value

Array (Language Value)

The value of the metadata property.

Thumbnail

@id

String

The URL of the thumbnail.

@type

String

The type of the resource. Always set to "dctypes:Image".

width

Integer

The width of the thumbnail.

height

Integer

The height of the thumbnail.

Dataset

@id

String (URL)

The URL for accessing the metadata record using the Record API.

format

String

The format in which to access the metadata of the record represented as a media-type following the RFC 6838 specification.

profile

String (URL)

The model used to represent the metadata. Only EDM is supported.

Language Value

@language

String

The language of the value represented as a two letter ISO639 code.

@value

String

A value which can either be a textual or a reference, ie. URL.

Retrieving images or portions of the image

The IIIF Image API specification offers the ability to request portions of the image in different resolutions allowing the image to be served progressively to a web client. Providers that have implemented the IIIF Image API for their content may indicate the availability of the image service using a dedicated profile. When this is the case, the Manifest will refer to the image service so that web clients can make use of it. Europeana also has available high resolution scans that were produced under the Europeana Newspapers project that are served using IIIF Image API.

Image service

Retrieves an image by applying the operations indicated in the path. The image endpoint used is from the Europeana Newspapers project.

Request

https://iiif.europeana.eu/image/[IMAGE_ID]/[REGION]/[SIZE]/[ROTAION]/[QUALITY].[FORMAT]

Parameter

Location

Description

Parameter

Location

Description

IMAGE_ID

path

The identifier of the image.

REGION

path

The region parameter defines the rectangular portion of the underlying image content to be returned. Region can be specified by pixel coordinates, percentage or by the value full, which specifies that the full image should be returned.

SIZE

path

The size parameter specifies the dimensions to which the extracted region, which might be the full image, is to be scaled.

ROTATION

path

The rotation parameter specifies mirroring and rotation. A leading exclamation mark (\"!\") indicates that the image should be mirrored by reflection on the vertical axis before any rotation is applied. The numerical value represents the number of degrees of clockwise rotation, and may be any floating point number from 0 to 360.

QUALITY

path

The quality parameter determines whether the image is delivered in color, grayscale or black and white.

FORMAT

path

The format of the returned image is expressed as a suffix, mirroring common filename extensions, at the end of the URI.

Image service details

Retrieves information about the image and the available operations that can be done on the image. The image endpoint used is from the Europeana Newspapers project.

Request

https://iiif.europeana.eu/image/[IMAGE_ID]/info.json

Parameter

Location

Description

Parameter

Location

Description

IMAGE_ID

path

The identifier of the image.

Retrieving full-text content

The term full-text is meant to refer to the correlation between the content resource (e.g. image, audio or video) and its textual representation (ie. transcription, subtitle, caption). In the EDM profile, the textual representation of the content resource is referred to as Full-Text Resource while the relations between the segments of the text and the coordinates in the image are referred to as Annotations.

Annotation Pages

An Annotation Page contains all the annotations that make up the full-text of a content resource (ie. image, audio or video). It is referred to by the Manifest and can be accessed via the following request.

Request

Parameter

Location

Description

Parameter

Location

Description

RECORD_ID

path

The identifier of the record which is composed of the dataset identifier plus a local identifier within the dataset in the form of "/DATASET_ID/LOCAL_ID", for more detail see Europeana ID.

PAGE_ID

path

The identifier of the annotation page.

Accept

header

Used to indicate the mimetype of the format and IIIF version. The following indicate the Accept header to be used for version 2.1 and 3 respectively:

application/ld+json;profile="http://iiif.io/api/presentation/2/context.json"

application/ld+json;profile="http://iiif.io/api/presentation/3/context.json"

textGranularity

(optional)

query

Filters the annotations based on their granularity.

Available values : page, block, line, word, media, caption

lang

(optional)

query

 

A parameter used to request full-text in a specific language, if available. The value must be a two letter ISO639 code and match the languages that are supported by Europeana.

Available values : en, nl, fr, de, es, sv, it, fi, da, el, cs, sk, sl, pt, hu, lt, pl, ro, bg, hr, lv, ga, mt, et, no, ca, ru, eu

profile

(optional)

query

A parameter used to define the extent of the response. The only value supported is 'text' which is used to request the response to be extended with the content of the text resource.

Available values : text

format

(optional)

query

A convenience parameter used to indicate the version of the IIIF Presentation API. Indicating the format within the Accept header is the preferred way to request a specific version. This parameter should not be used if a profile is indicated in the Accept header.

Response v3:

Field

Datatype

Description

Field

Datatype

Description

Annotation Page

@context

Array (String)

The JSON-LD context(s). Always with the values "http://iiif.io/api/presentation/2/context.json", “http://iiif.io/api/extension/text-granularity/context.json“ and "https://www.europeana.eu/schemas/context/edm.jsonld".

id

String (URI)

The unique identifier of the Annotation Page.

type

String

The type of the resource. Always set to "AnnotationPage".

language

String

The language of the full-text represented as a two letter ISO639 code and match the languages that are supported by Europeana.

textGranularity

Array (String)

The several levels of granularity represented on this page.

items

Array (Annotation)

The list of annotations that are part of this page.

Response v2.1:

Field

Datatype

Description

Field

Datatype

Description

Annotation Page

@context

Array (String)

The JSON-LD context(s). Always with the values "http://iiif.io/api/presentation/2/context.json", “http://iiif.io/api/extension/text-granularity/context.json“ and "https://www.europeana.eu/schemas/context/edm.jsonld".

@id

String (URI)

The unique identifier of the Annotation Page.

@type

String

The type of the resource. Always set to "sc:AnnotationList".

language

String

The language of the full-text represented as a two letter ISO639 code and match the languages that are supported by Europeana.

textGranularity

Array (String)

The several levels of granularity represented on this page.

resources

Array (Annotation)

The list of annotations that are part of this page.

Annotation

An Annotation specifies a single relation between the full-text resource and the content resource (ie. image, audio or video). It is referred to by the Annotation Page and can be accessed via the following request.

Request

Parameter

Location

Description

Parameter

Location

Description

RECORD_ID

path

The identifier of the record which is composed of the dataset identifier plus a local identifier within the dataset in the form of "/DATASET_ID/LOCAL_ID", for more detail see Europeana ID.

ANNO_ID

path

The identifier of the annotation.

profile

(query)

query

A parameter used to define the extent of the response. The only value supported is 'text' which is used to request the response to be extended with the content of the text resource.

Available values : text

Response v3

Field

Datatype

Description

Field

Datatype

Description

Annotation

@context

Array (String)

The JSON-LD context(s). Always with the values "http://iiif.io/api/presentation/3/context.json", “http://iiif.io/api/extension/text-granularity/context.json“ and "https://www.europeana.eu/schemas/context/edm.jsonld".

id

String (URI)

The unique identifier of the Annotation.

type

String

The type of the resource. Always set to "Annotation".

motivation

String

The motivation of the annotation, see reference for more information. Always set to "transcribing".

textGranularity

String

The granularity level of this Annotation. One of: "page", "block", "line", "word", "media", "caption".

body

Object (Reference or FulltextResource)

The reference to the transcribed text. When the “text“profile is requested, the full-text resource will be returned in the response.

target

Array (String)

The target(s) of the annotation. Always refers to the content resource (or a section of it) that this textual representation correspond to. For annotations that are at a granularity level lower than page, it will point to the specific coordinates on the image where the text is found, using the Media Fragments specification.

Response v2.1

Fulltext Resource

The full-text resource represents the (image or audio) transcription of a single content resource (e.g. a page of a newspaper or manuscript). A full-text resource can be accessed separately from an annotation or annotation page using the following method.

Request

Parameter

Location

Description

RECORD_ID

path

The identifier of the record which is composed of the dataset identifier plus a local identifier within the dataset in the form of "/DATASET_ID/LOCAL_ID", for more detail see Europeana ID.

FULLTEXT_ID

path

The identifier of the full-text resource.

lang

(optional)

query

A parameter used to request full-text in a specific language, if available. The value must be a two letter ISO639 code and match the languages that are supported by Europeana.

Available values : en, nl, fr, de, es, sv, it, fi, da, el, cs, sk, sl, pt, hu, lt, pl, ro, bg, hr, lv, ga, mt, et, no, ca, ru, eu

Response v3

Response v2.1 (not supported)

Searching on full-text

There are two methods for searching on full-text, one for searching across all items where fulltext is available and a second to search within the fulltext of a single item.

Search accross all items with full-text

This method adopts the same API structure and functionality as the Search API with the addition of two search fields and one profile as described below. For more information on the other methods, see the Search API documentation.

Request

Parameter

Location

Description

Parameter

Location

Description

query

query

The text or search criteria to be used for searching.

Two additional fields are supported:

  • “fulltext”: Allows searching on the content text (ie. full-text) of the item.

  • “issued“: A date field reflecting the date of the Newspapers Issue.

profile

query

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. Most profiles can be combined with the exception of the metadata based profiles or combined profiles such as rich.

An additional profile is supported named “hits“ that displays the mentions in the transcribed text where the search keyword was found.

Available values : minimal, standard, rich, facets, hits, breadcrums, params, portal, translate

hit.fl (optional)

query

Fields for which hit highlighting is generated. A wildcard “* (asterisk) can be used to match multiple fields, such as “fulltext.*” or even “*” to highlight on all fields where highlighting is possible. If omitted default to “*”. Multiple fields can be indicated using a comma or space.

hit.selectors (optional)

query

The maximum number of highlighted selectors to generate per item. If omitted defaults to 3. It is possible for any number of selectors from 1 to this value to be generated, up to a limit of 10.

Search within full-text of a single item

For a Newspapers item, this will mean searching in the text of all the pages that make up the Newspaper.

Request

Parameter

Location

Description

Parameter

Location

Description

RECORD_ID

path

The identifier of the record which is composed of the dataset identifier plus a local identifier within the dataset in the form of "/DATASET_ID/LOCAL_ID", for more detail see Europeana ID.

Accept

header

Used to indicate the mimetype of the format and IIIF version. The following indicate the Accept header to be used for version 2.1 and 3 respectively:

application/ld+json;profile="http://iiif.io/api/presentation/2/context.json"

application/ld+json;profile="http://iiif.io/api/presentation/3/context.json"

q

query

query

The text to be used for searching.

qf

query

A search query filter, ie. a filter is applied on the result list to remove unwanted results and therefore has no effect on ranking. This parameter can be used multiple types if more than one query filter is needed.

textGranularity

query

Filters the annotations based on their granularity.

Available values : page, block, line, word, media, caption

lang

query

A parameter used to request full-text in a specific language, if available. The value must be a two letter ISO639 code and match the languages that are supported by Europeana.

Available values : en, nl, fr, de, es, sv, it, fi, da, el, cs, sk, sl, pt, hu, lt, pl, ro, bg, hr, lv, ga, mt, et, no, ca, ru, eu

Response v3

Response v2.1

Source code and changelog

As mentioned in the introduction, the IIIF APIs are made up of several distinct APIs, each one with its own source code project in GitHub and changelog as listed below.

API

Last version

Description

API

Last version

Description

IIIF Manifest API

v0.X

Supports only the retrieval of manifests.

IIIF Full-Text API

v0.X

Supports the retrieval of full-text which inludes full-text resources, annotation and annotation pages, and search within full-text.

Search API (see documentation)

Supports the search accross items with full-text.