Manchester Digital Collections — IIIF Image API

IIIF Image API 2.0 at compliance level 1, serving regions, scaled derivatives, rotations and quality variants of the Library's digitised page images. Self-describes through info.json: formats [jpg]; qualities [native, color, gray, bitonal]; supports regionByPct, regionSquare, sizeByForcedWh, sizeByWh, sizeAboveFull, rotationBy90s and mirroring; maxWidth and maxHeight 2000; 256x256 tiles at scale factors 1-32. Verified live on 2026-08-19 with both a simple and a compound request, plus a negative probe returning a genuine 404. Host resolves to 130.88.101.75, adjacent to the Presentation API host in the University's own address space.

OpenAPI Specification

university-of-manchester-iiif-image-api-openapi.yml Raw ↑
# generated: '2026-08-19'
# method: derived
# source: >-
#   Derived from live probes of the University of Manchester's own IIIF Image API server on
#   2026-08-19, including its self-describing info.json. No vendor specification was copied.
#     https://image.digitalcollections.manchester.ac.uk/iiif/MS-LATIN-00006-000-00001.jp2/info.json                 -> 200 application/ld+json
#     https://image.digitalcollections.manchester.ac.uk/iiif/MS-LATIN-00006-000-00001.jp2/full/200,/0/default.jpg   -> 200 image/jpeg
#     https://image.digitalcollections.manchester.ac.uk/iiif/MS-LATIN-00006-000-00001.jp2/0,0,500,500/200,/90/gray.jpg -> 200 image/jpeg
#     https://image.digitalcollections.manchester.ac.uk/iiif/NOT-REAL.jp2/info.json                                 -> 404 (negative probe)
# x-operator: institution
openapi: 3.1.0
info:
  title: University of Manchester Digital Collections — IIIF Image API
  version: '2.0'
  summary: Institution-operated IIIF Image API 2.0 level 1 tile and derivative service.
  description: >-
    The image server behind Manchester Digital Collections, implementing IIIF Image API 2.0 at
    compliance level 1. It serves regions, scaled derivatives, rotations and quality variants of the
    University of Manchester Library's digitised page images, and is the service every canvas in the
    companion Presentation API manifests points at.

    The host image.digitalcollections.manchester.ac.uk resolves to 130.88.101.75, adjacent to the
    Presentation API host inside the University's own JANET address space — it is not a vendor
    CNAME. The server advertises its own capabilities in the standard info.json profile, which is
    the authority for what this document records: formats [jpg]; qualities [native, color, gray,
    bitonal]; supports [regionByPct, regionSquare, sizeByForcedWh, sizeByWh, sizeAboveFull,
    rotationBy90s, mirroring]; maxWidth 2000; maxHeight 2000; tile size 256x256 with scale factors
    1, 2, 4, 8, 16, 32.

    The specification implemented is the IIIF Image API 2.0, authored by the IIIF Consortium. This
    document describes the University's deployment of it, not the standard itself.
  contact:
    name: The University of Manchester Library
    url: https://www.digitalcollections.manchester.ac.uk/about/
  termsOfService: https://www.digitalcollections.manchester.ac.uk/terms/
servers:
- url: https://image.digitalcollections.manchester.ac.uk
  description: Manchester Digital Collections image server (University of Manchester Library)
tags:
- name: image
  description: IIIF Image API 2.0 level 1 endpoints.
paths:
  /iiif/{identifier}/info.json:
    get:
      tags: [ image ]
      operationId: getImageInfo
      summary: Retrieve the image information document
      description: >-
        Returns the IIIF Image API 2.0 information document describing one image's dimensions,
        available pre-generated sizes, tile geometry and compliance profile. Verified live on
        2026-08-19; returns application/ld+json.
      parameters:
      - $ref: '#/components/parameters/identifier'
      responses:
        '200':
          description: IIIF Image API 2.0 information document.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/ImageInformation'
              examples:
                msLatin6Page1:
                  externalValue: examples/university-of-manchester-iiif-image-info-example.json
        '404':
          description: >-
            No such image. Verified with a negative probe against /iiif/NOT-REAL.jp2/info.json,
            which returned a genuine 404 (196 bytes) rather than a soft-404 body.
  /iiif/{identifier}/{region}/{size}/{rotation}/{quality}.{format}:
    get:
      tags: [ image ]
      operationId: getImage
      summary: Retrieve a derivative of an image
      description: >-
        The IIIF Image API request. Verified live on 2026-08-19 for both a simple scaled request
        (full/200,/0/default.jpg) and a compound request exercising region, size, 90-degree rotation
        and the gray quality (0,0,500,500/200,/90/gray.jpg); both returned 200 image/jpeg. Requests
        beyond maxWidth/maxHeight 2000 are constrained by the server profile.
      parameters:
      - $ref: '#/components/parameters/identifier'
      - name: region
        in: path
        required: true
        description: full, square, x,y,w,h, or pct:x,y,w,h.
        schema:
          type: string
          examples: [ full, '0,0,500,500' ]
      - name: size
        in: path
        required: true
        description: full, max, w,, ,h, pct:n, !w,h or w,h. Bounded by maxWidth/maxHeight 2000.
        schema:
          type: string
          examples: [ '200,', 'full' ]
      - name: rotation
        in: path
        required: true
        description: Degrees clockwise. Level 1 with rotationBy90s supports 0, 90, 180, 270, optionally mirrored with a leading '!'.
        schema:
          type: string
          examples: [ '0', '90' ]
      - name: quality
        in: path
        required: true
        schema:
          type: string
          enum: [ native, color, gray, bitonal, default ]
      - name: format
        in: path
        required: true
        schema:
          type: string
          enum: [ jpg ]
      responses:
        '200':
          description: The requested image derivative.
          content:
            image/jpeg:
              schema:
                type: string
                format: binary
        '400':
          description: Malformed IIIF Image API request.
        '404':
          description: No such image identifier.
components:
  parameters:
    identifier:
      name: identifier
      in: path
      required: true
      description: >-
        Image identifier. On this deployment it is the source filename, formed as
        <documentId>-<sequence>-<page>.jp2, e.g. MS-LATIN-00006-000-00001.jp2. Identifiers are
        discovered from the Presentation API manifest rather than enumerated.
      schema:
        type: string
        examples: [ MS-LATIN-00006-000-00001.jp2 ]
  schemas:
    ImageInformation:
      type: object
      description: IIIF Image API 2.0 information document, as returned by this deployment.
      required: [ '@context', '@id', protocol, width, height, profile ]
      properties:
        '@context':
          type: string
          const: http://iiif.io/api/image/2/context.json
        '@id':
          type: string
          format: uri
        protocol:
          type: string
          const: http://iiif.io/api/image
        width:
          type: integer
          description: Full pixel width of the source image.
        height:
          type: integer
          description: Full pixel height of the source image.
        sizes:
          type: array
          description: Pre-generated derivative sizes.
          items:
            type: object
            properties:
              width: { type: integer }
              height: { type: integer }
        tiles:
          type: array
          items:
            type: object
            properties:
              width: { type: integer }
              height: { type: integer }
              scaleFactors:
                type: array
                items: { type: integer }
        profile:
          type: array
          description: >-
            Compliance level URI followed by a capability object. This deployment reports
            level1 plus formats, qualities, supports, maxWidth and maxHeight.
          items:
            anyOf:
            - type: string
            - type: object
              properties:
                formats:
                  type: array
                  items: { type: string }
                qualities:
                  type: array
                  items: { type: string }
                supports:
                  type: array
                  items: { type: string }
                maxWidth: { type: integer }
                maxHeight: { type: integer }