The digilib IIIF API


The Scaler servlet provides not only its native Scaler API but also an API compliant to the standards of the International Image Interoperability Framework

As of version 2.3.7 digilib supports the IIIF Image API version 2 at compliance level 2. You can switch between API version 1.1 and 2.0 support with the iiif-api-version parameter in digilib-config,

IIIF Image API URLs for an image request have the form:


where digilib-webapp is the name of the digilib web application in the servlet container.

The value of iiif-prefix is defined by the iiif-prefix parameter in digilib-config. The default value is “IIIF”.

The identifier part of the URL must not contain slashes. Since the identifier is mapped to the digilib fn-parameter, which is a filesystem path that likely contains slashes separating subdirectories, all occurrences of a slash have to be replaced by the value of the iiif-slash-replacement parameter in digilib-config. The default value of the replacement string is “!”, so the fn-path “books/book1/page0002” becomes the identifier “books!book1!page0002”.

For a definition of the other parameters region, size, rotation, quality, and format please see the IIIF Image API docs.

A IIIF Image API image request URL could look like:!book1!page0002/full/!150,75/0/default.jpg

An info request URL for the same image looks like:!book1!page0002/info.json

IIIF Presentation API

As of version 2.5.3 digilib provides the optional Manifester servlet that generates simple IIIF Presentation API version 2 manifests that can be used with any IIIF viewer to navigate a directory full of images with the functions of a book-reader or light-table.

To build digilib with the Manifester servlet you need to add the iiif-presentation profile to your Maven build:

mvn -Piiif-presentation package

(or use the digilib-webapp-X.X.X-srv3p.war file from the website)

The Manifester servlet URLs have the form:


So you can get a manifest for all images in the directory /books/book1 with a URL like:!book1

To try out a viewer on your manifest you can go to the website of the Universal Viewer and enter the URL of your manifest in the “view a manifest” box on the page. This will work even with a local digilib installation since the Javascript in your Browser reads and interprets the manifest.

The minimal information in the manifest can be enhanced with additional metadata or the replaced by a custom manifest. If the servlet finds a file with the name


in a directory then the contents of that file are sent instead of an auto-generated manifest. This works also in directories with no images so you could put a file with collection information in a higher-level directory.

If the servlet finds a file with the name


in a directory with images then the contents of that file are added to the top-level manifest (@context, @type, @id, sequences are ignored). You can use this to add real bibliographical information to the manifest.

The configuration parameter iiif-manifest-page-label determines the format of the label of each image: filename uses the image file name (default, sans extension), index uses the index (counting from 1).