---
title: IIIF
description: Load a public artifact's images, audio, video, multi-page documents, and 3D models in any IIIF-compatible viewer.
section: protocols
order: 2
updated: 2026-07-16
verified: 2026-07-16
related: [protocols/linked-data, formats/media-formats]
features: [3d-model-assets, georeferenced-maps]
---

# IIIF

Public artifacts are viewable through the [IIIF](https://iiif.io/) (International Image Interoperability Framework) Presentation and Image APIs, so you can drop a museum's material into Mirador, OpenSeadragon, Universal Viewer, or any other IIIF-conformant client without writing custom viewer code.

## Presentation manifest

Every public artifact has a IIIF Presentation API 3.0 manifest:

```
https://{your-domain}/api/iiif/manifest/{artifactId}
```

The manifest is generated from the artifact's current metadata each time it's requested, so it always reflects the latest title, description, creators, dates, subjects, places, and rights information — there's nothing to regenerate or invalidate. It's served as `application/ld+json` with permissive CORS, so browser-based viewers can fetch it cross-origin.

The manifest contains one canvas per presentable file attached to the artifact:

- **Images** get a canvas backed by a IIIF Image API service (see below).
- **Audio and video** get a canvas with a temporal extent (duration) and, for video, spatial dimensions, plus a poster frame where available.
- **PDF and other paginated documents** get one canvas per rendered page.
- **3D models (GLB)** get a canvas whose painting body is a Presentation 3.0 `Model` resource with `format: "model/gltf-binary"` and a same-origin URL you can fetch directly. The canvas carries a rendered poster image as its `thumbnail`, and its `width`/`height` are the poster's nominal pixel box (a 3D model has no intrinsic canvas extent). Where the institution's download policy allows it, the canvas also lists the GLB as a `rendering` download. Viewers without 3D support should fall back to the thumbnail and metadata — no experimental IIIF 3D vocabulary is used.

When an artifact has associated place data, the manifest (and/or its canvases) may carry a [navPlace](https://github.com/iiif/geo/) extension — a GeoJSON feature collection describing where the depicted subject or the capture itself is located.

### Georeference extension (georeferenced maps)

An image canvas backing a successfully georeferenced map additionally carries an [IIIF Georeference Extension](https://iiif.io/api/extension/georef/) AnnotationPage in the canvas's `annotations`. Where `navPlace` says where the depicted subject is, the Georeference extension's ground control points say how pixel coordinates on the canvas correspond to WGS84 geographic coordinates — the two extensions coexist on the same canvas without conflict.

Preservated's normalized copy of the AnnotationPage for a given asset is also available on its own, independent of the manifest:

```
https://{your-domain}/api/assets/{assetId}/georeference/annotation
```

This route follows the same visibility rules as the asset itself and supports the same download affordance visitors see on the artifact page. Not every image asset has a georeference — an absent or unauthorized asset returns "not found", the same non-distinguishing response the manifest endpoint uses.

## Image API (deep zoom)

Image canvases reference a IIIF Image API level 0 service — static, pre-tiled images good for pan-and-zoom without downloading the full-resolution master. As with any IIIF client, don't construct image-service URLs yourself: read the service's `id` off the canvas in the manifest and follow the standard Image API request shape (`{service-id}/{region}/{size}/{rotation}/{quality}.{format}`) from there, exactly as a generic IIIF viewer would.

## Access and visibility

A manifest request follows the same visibility rules as the rest of the public site: it's served anonymously for a public artifact and returns "not found" for anything that either doesn't exist or isn't publicly visible — the response deliberately doesn't distinguish between the two, so a viewer without access can't learn that a restricted record exists.

## Related surface

For a non-visual, structured representation of the same artifact's descriptive metadata, see [Linked Data](/developers/en-US/protocols/linked-data).
