University of Oxford IIIF API

IIIF Image, Presentation and Change Discovery endpoints.

Operations 7

GET / IIIF service description #
GET /iiif/collection/{collectionId} Retrieve a IIIF Presentation collection #
GET /iiif/manifest/{objectId}.json Retrieve a IIIF Presentation manifest #
GET /iiif/image/{imageId}/info.json IIIF Image API information document #
GET /iiif/image/{imageId}/{region}/{size}/{rotation}/{quality}.{format} IIIF Image API request #
GET /iiif/activity/all-changes IIIF Change Discovery activity stream #
GET /iiif/activity/page-{page} One page of the change activity stream #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/university-of-oxford-iiif-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-oxford-iiif-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Digital Bodleian IIIF API
  version: '2026-08-19'
  summary: IIIF Image API 2.1 (level 2), Presentation API 2.1 and Change Discovery API 1.0 for the Bodleian Libraries and Oxford college libraries.
  description: "The strongest institution-operated API surface in Oxford's estate, and one no vendor is\ninvolved in. iiif.bodleian.ox.ac.uk resolves to digital92-prd-public.bodleian.ox.ac.uk on\n129.67.247.151 — the University of Oxford's own address space — and serves three\nconformant IIIF specifications:\n\n  * Image API 2.1 at level 2, advertising jpg/png/tif/webp/avif, native/color/gray/bitonal,\n    regionByPct, regionSquare, sizeByConfinedWh, sizeByForcedWh, sizeByWh, sizeAboveFull,\n    rotationBy90s and mirroring, with maxWidth/maxHeight of 4000 and a physical-dimensions\n    service annex.\n  * Presentation API 2.1 manifests for every Digital Bodleian object, with per-object\n    attribution and rights statements that vary by holding institution (many Oxford\n    colleges publish through this shared infrastructure).\n  * Change Discovery API 1.0 — an OrderedCollection ActivityStream reporting 21,843 items\n    across 219 pages at the time of probing. This is a genuine event surface: a harvester\n    can synchronise incrementally rather than re-crawl.\n\nThe service root itself is machine-readable: GET https://iiif.bodleian.ox.ac.uk/ returns a\ndiscovery document listing the top-level collection, the all-manifests collection and the\nactivity stream.\n\nDERIVED, not published: Oxford explains IIIF in prose at https://digital.bodleian.ox.ac.uk/faq/\nbut publishes no OpenAPI. This document was derived from live responses captured\n2026-08-19 and stored verbatim in ../examples/. The normative contracts are the IIIF\nspecifications themselves.\n"
  contact:
    name: Digital Bodleian — Bodleian Libraries, University of Oxford
    url: https://digital.bodleian.ox.ac.uk/help/
  termsOfService: https://digital.bodleian.ox.ac.uk/terms/
  x-operator: institution
  x-operator-evidence: iiif.bodleian.ox.ac.uk CNAMEs to digital92-prd-public.bodleian.ox.ac.uk (129.67.247.151), University of Oxford address space. No vendor host, account or platform is involved.
  x-provenance:
    generated: '2026-08-19'
    method: derived
    source: Derived from live unauthenticated GETs of https://iiif.bodleian.ox.ac.uk/, /iiif/collection/top, /iiif/manifest/{id}.json, /iiif/image/{id}/info.json and /iiif/activity/all-changes captured 2026-08-19; payloads stored in ../examples/.
  x-standards:
  - https://iiif.io/api/image/2.1/
  - https://iiif.io/api/presentation/2.1/
  - https://iiif.io/api/discovery/1.0/
servers:
- url: https://iiif.bodleian.ox.ac.uk
  description: Digital Bodleian IIIF production
tags:
- name: IIIF
  description: IIIF Image, Presentation and Change Discovery endpoints.
paths:
  /:
    get:
      operationId: getServiceDescription
      summary: IIIF service description
      description: Lists the collections and activity streams this service exposes.
      tags:
      - IIIF
      responses:
        '200':
          description: Change Discovery service description.
          content:
            application/json:
              schema:
                type: object
              examples:
                root:
                  externalValue: ../examples/university-of-oxford-bodleian-iiif-service-description.json
  /iiif/collection/{collectionId}:
    get:
      operationId: getCollection
      summary: Retrieve a IIIF Presentation collection
      description: '`top` is the root collection; `all` is every manifest; `institutions` groups items by holding institution. Other collection ids exist per curated collection.'
      tags:
      - IIIF
      parameters:
      - name: collectionId
        in: path
        required: true
        schema:
          type: string
        example: top
      responses:
        '200':
          description: A sc:Collection document.
          content:
            application/ld+json:
              schema:
                type: object
              examples:
                top:
                  externalValue: ../examples/university-of-oxford-bodleian-iiif-collection-top.json
        '404':
          description: Unknown collection. Returns text/plain with a body of the form "An object of ID {id} was not found." — a plain-text error, not a structured one.
          content:
            text/plain:
              schema:
                type: string
  /iiif/manifest/{objectId}.json:
    get:
      operationId: getManifest
      summary: Retrieve a IIIF Presentation manifest
      tags:
      - IIIF
      parameters:
      - name: objectId
        in: path
        required: true
        description: Digital Bodleian object UUID, the same id used in /objects/{uuid}/ on the website.
        schema:
          type: string
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        example: 064e049b-bef1-4973-a752-d1b5d026d4a4
      responses:
        '200':
          description: A sc:Manifest document.
          content:
            application/json:
              schema:
                type: object
              examples:
                manifest:
                  externalValue: ../examples/university-of-oxford-bodleian-iiif-manifest.json
        '404':
          description: Unknown object.
  /iiif/image/{imageId}/info.json:
    get:
      operationId: getImageInfo
      summary: IIIF Image API information document
      tags:
      - IIIF
      parameters:
      - name: imageId
        in: path
        required: true
        schema:
          type: string
        example: 020bcaa4-29c9-48a7-8701-e2cfaaba84d0
      responses:
        '200':
          description: Image API 2.1 info.json, level 2 profile.
          content:
            application/json:
              schema:
                type: object
              examples:
                info:
                  externalValue: ../examples/university-of-oxford-bodleian-iiif-image-info.json
  /iiif/image/{imageId}/{region}/{size}/{rotation}/{quality}.{format}:
    get:
      operationId: getImage
      summary: IIIF Image API request
      description: 'Standard IIIF Image API 2.1 request syntax. Observed constraints from info.json: maxWidth 4000, maxHeight 4000, tile size 256 with scaleFactors 1-64.'
      tags:
      - IIIF
      parameters:
      - name: imageId
        in: path
        required: true
        schema:
          type: string
      - name: region
        in: path
        required: true
        description: full | square | x,y,w,h | pct:x,y,w,h
        schema:
          type: string
        example: full
      - name: size
        in: path
        required: true
        description: max | w, | ,h | pct:n | w,h | !w,h
        schema:
          type: string
        example: 256,
      - name: rotation
        in: path
        required: true
        description: 0 | 90 | 180 | 270, optionally prefixed with ! to mirror.
        schema:
          type: string
        example: '0'
      - name: quality
        in: path
        required: true
        schema:
          type: string
          enum:
          - native
          - color
          - gray
          - bitonal
      - name: format
        in: path
        required: true
        schema:
          type: string
          enum:
          - jpg
          - png
          - tif
          - webp
          - avif
      responses:
        '200':
          description: The requested image derivative.
          content:
            image/jpeg:
              schema:
                type: string
                format: binary
            image/png:
              schema:
                type: string
                format: binary
        '400':
          description: Malformed IIIF request. Observed as an HTML body from the fronting web server for a bare /iiif/ path — no structured error document.
  /iiif/activity/all-changes:
    get:
      operationId: getActivityStream
      summary: IIIF Change Discovery activity stream
      description: An OrderedCollection with `first` and `last` OrderedCollectionPage links, letting a harvester synchronise incrementally instead of re-crawling the whole repository.
      tags:
      - IIIF
      responses:
        '200':
          description: OrderedCollection.
          content:
            application/json:
              schema:
                type: object
              examples:
                stream:
                  externalValue: ../examples/university-of-oxford-bodleian-iiif-activity-stream.json
  /iiif/activity/page-{page}:
    get:
      operationId: getActivityStreamPage
      summary: One page of the change activity stream
      tags:
      - IIIF
      parameters:
      - name: page
        in: path
        required: true
        schema:
          type: integer
          minimum: 0
      responses:
        '200':
          description: OrderedCollectionPage.
          content:
            application/json:
              schema:
                type: object