> For the complete documentation index, see [llms.txt](https://docs.fylr.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fylr.io/for-developers/api/endpoints/eas/iiif.md).

# /iiif

Serve the [IIIF Image Information](https://iiif.io/api/image/2.0/#image-information) (`info.json`) for a file `version`, per the [IIIF Image API 2.0](https://iiif.io/api/image/2.0/). Reading the image requires `RIGHT_ASSET_SHOW`. Tiles and image derivatives are served from the sibling `.../{region}/{size}/{rotation}/{quality}.{format}` paths.

### `GET /eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{x-fylr-signature}/{version}/info.json`

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/obj\_uuid/{obj\_uuid}/{x-fylr-signature}/{version}/info.json" method="get" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `HEAD /eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{x-fylr-signature}/{version}/info.json`

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/obj\_uuid/{obj\_uuid}/{x-fylr-signature}/{version}/info.json" method="head" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `GET /eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{version}/info.json`

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/obj\_uuid/{obj\_uuid}/{version}/info.json" method="get" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `HEAD /eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{version}/info.json`

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/obj\_uuid/{obj\_uuid}/{version}/info.json" method="head" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `GET /eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}/info.json`

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}/info.json" method="get" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `HEAD /eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}/info.json`

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}/info.json" method="head" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `GET /eas/iiif/{fileId}/{hash}/{version}/info.json`

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/{version}/info.json" method="get" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `HEAD /eas/iiif/{fileId}/{hash}/{version}/info.json`

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/{version}/info.json" method="head" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `GET /eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{x-fylr-signature}/{version}` — Redirect to the IIIF `info.json`.

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/obj\_uuid/{obj\_uuid}/{x-fylr-signature}/{version}" method="get" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `HEAD /eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{x-fylr-signature}/{version}` — Redirect to the IIIF `info.json`.

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/obj\_uuid/{obj\_uuid}/{x-fylr-signature}/{version}" method="head" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `GET /eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{version}` — Redirect to the IIIF `info.json`.

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/obj\_uuid/{obj\_uuid}/{version}" method="get" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `HEAD /eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{version}` — Redirect to the IIIF `info.json`.

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/obj\_uuid/{obj\_uuid}/{version}" method="head" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `GET /eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}` — Redirect to the IIIF `info.json`.

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}" method="get" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `HEAD /eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}` — Redirect to the IIIF `info.json`.

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}" method="head" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `GET /eas/iiif/{fileId}/{hash}/{version}` — Redirect to the IIIF `info.json`.

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/{version}" method="get" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### `HEAD /eas/iiif/{fileId}/{hash}/{version}` — Redirect to the IIIF `info.json`.

{% openapi src="/files/kfiDjhyZfEICNBmt5f49" path="/eas/iiif/{fileId}/{hash}/{version}" method="head" %}
[fylr-openapi.yml](https://4100607288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAdRFzQASDY2Elfdm3wXW%2Fuploads%2Fgit-blob-050645483a006e5537fee4cbfbd32be0bf2a9a23%2Ffylr-openapi.yml?alt=media)
{% endopenapi %}

### URL templates

These GET, HEAD endpoints embed parameters inside a path segment (e.g. `{quality}.{format}`), which the interactive API panel can't render — they are listed here as URL templates instead. All live under the `/api/v1` base path.

```
/eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{x-fylr-signature}/{version}/{region}/{size}/{rotation}/{quality}.{format}
/eas/iiif/{fileId}/{hash}/obj_uuid/{obj_uuid}/{version}/{region}/{size}/{rotation}/{quality}.{format}
/eas/iiif/{fileId}/{hash}/{x-fylr-signature}/{version}/{region}/{size}/{rotation}/{quality}.{format}
/eas/iiif/{fileId}/{hash}/{version}/{region}/{size}/{rotation}/{quality}.{format}
```

**Path parameters**

* `fileId` — The ID of the file.
* `hash` — The `hash` is the `file.hash` as described [here](https://docs.fylr.io/for-developers/system-data-types/file#hash).
* `obj_uuid` — The `_uuid` of the object the file is linked into. This is used for the permission check.
* `x-fylr-signature` — The signature to omit file permission checks. It will be added to the URL when retrieved through `/api/db`, `/api/search` or other endpoints which deliver fylr URLs.
* `version` — The `file.class_extension` as described [here](https://docs.fylr.io/for-developers/system-data-types/file#hash).
* `region` — The [IIIF region](https://iiif.io/api/image/2.0/#region) is a string with `x,y,w,h` and other format. Check the link for more information.
* `size` — The [IIIF size](https://iiif.io/api/image/2.0/#size) parameter determines the dimensions to which the extracted region is to be scaled. Check the link for more information.
* `rotation` — The [IIIF rotation](https://iiif.io/api/image/2.0/#rotation) 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 number from 0 to 360. **fylr** only supports integer numbers for rotation. More information can be found in the link.
* `quality` — The [IIIF format](https://iiif.io/api/image/2.0/#quality) parameter determines whether the image is delivered in color, grayscale or black and white. Click on the link for more information.
* `format` — The [IIIF size](https://iiif.io/api/image/2.0/#size) parameter determines the dimensions to which the extracted region is to be scaled. Check the link for more information. Formats `jpg` and `png` are delivered with fast code if the quality is set to `color` or `default` and no `rotation` is requested.
