Every API here is available over the APIs.io API and to AI agents over MCP.
# authorship: generated by API Evangelist from live probes of the operator's own endpoints.
# The document is ours; the facts in it were measured, not claimed. `method: probed` below
# records HOW it was obtained; this header records WHO wrote it. An unmarked artifact would
# be credited to the institution as though they published it, and they did not.
openapi: 3.1.0
info:
title: University of York Digital Collections IIIF APIs
version: '3.0'
summary: IIIF Image API 3.0 (level 2) and IIIF Presentation API 3.0 served by the University of York over its digitised collections.
description: >-
The University of York serves its digitised archive, library and cultural-heritage material
through two IIIF specifications on its own registrable domain (york.ac.uk), keyless and
CORS-open:
* IIIF Image API 3.0, compliance level 2, at /iiif/3/{identifier} — the identifier is an
ARK path under the University's NAAN 36941.
* IIIF Presentation API 3.0, at /ark:/{naan}/{objectId}/presentation/3/manifest and
.../canvas/{canvasId}.
This description was written from LIVE PROBES on 2026-08-30. The Image API surface below is not
an assumption from the specification: the served info.json declares
`"profile": "level2"`, `"type": "ImageService3"` and its own extraFeatures, extraFormats and
extraQualities, and those are what is recorded here. The University publishes no OpenAPI and no
developer documentation for these endpoints.
OPERATOR: institution. IIIF is an open specification, the deployment is on the University's own
host, and the content, identifiers and manifests are the University's own. What is NOT recorded
here is any vendor product contract.
KNOWN LIMITS, observed: an unknown Image API identifier returns HTTP 403 with an S3
`<Error><Code>AccessDenied</Code>` XML body rather than a IIIF 404; a malformed image request
returns 400 text/plain; the IIIF Collection endpoint (/presentation/3/collection) returns 403
and appears not to be deployed. An /api/annotations/{manifest}/{canvas} route referenced by the
site's JavaScript returns the site's HTML 404 shell and is NOT deployed — it is deliberately
excluded from this document.
contact:
name: University of York Digital Collections
url: https://discover.york.ac.uk/about/
license:
name: Not stated by the operator
x-operator: institution
x-provenance:
method: probed
generated: '2026-08-30'
source:
- https://discover.york.ac.uk/iiif/3/ark:/36941/common/objects/uoy-logo/info.json
- https://discover.york.ac.uk/iiif/3/ark:/36941/13192/objects/13309/info.json
- https://discover.york.ac.uk/iiif/3/ark:/36941/common/objects/uoy-logo/full/max/0/default.jpg
- https://discover.york.ac.uk/ark:/36941/9952973300001381/presentation/3/manifest
- https://discover.york.ac.uk/ark:/36941/796351/presentation/3/canvas/802563
servers:
- url: https://discover.york.ac.uk
description: University of York Digital Collections (production)
tags:
- name: IIIF Image
description: IIIF Image API 3.0, compliance level 2.
- name: IIIF Presentation
description: IIIF Presentation API 3.0 manifests and canvases.
paths:
'/iiif/3/ark:/{naan}/{collectionId}/objects/{objectId}/info.json':
get:
summary: IIIF Image API 3.0 image information
description: >-
Returns the ImageService3 description for one image. Confirmed live with
naan=36941, collectionId=common, objectId=uoy-logo and with
collectionId=13192, objectId=13309.
operationId: getImageInfo
tags: [IIIF Image]
security: []
parameters:
- { $ref: '#/components/parameters/Naan' }
- { $ref: '#/components/parameters/CollectionId' }
- { $ref: '#/components/parameters/ObjectId' }
responses:
'200':
description: IIIF Image API 3.0 image information document.
content:
application/ld+json:
schema: { $ref: '#/components/schemas/ImageService3' }
'403':
description: Unknown identifier. Returns an S3 AccessDenied XML body, not a IIIF error.
content:
application/xml:
schema: { $ref: '#/components/schemas/S3Error' }
'/iiif/3/ark:/{naan}/{collectionId}/objects/{objectId}/{region}/{size}/{rotation}/{quality}.{format}':
get:
summary: IIIF Image API 3.0 image request
description: >-
Standard IIIF Image API 3.0 image request. Confirmed live with
region=full, size=max, rotation=0, quality=default, format=jpg.
operationId: getImage
tags: [IIIF Image]
security: []
parameters:
- { $ref: '#/components/parameters/Naan' }
- { $ref: '#/components/parameters/CollectionId' }
- { $ref: '#/components/parameters/ObjectId' }
- name: region
in: path
required: true
description: 'IIIF region: full | square | x,y,w,h | pct:x,y,w,h.'
schema: { type: string }
example: full
- name: size
in: path
required: true
description: 'IIIF size: max | w, | ,h | pct:n | w,h | ^ and ! variants (sizeUpscaling and sizeByDistortedWh are declared as extraFeatures).'
schema: { type: string }
example: max
- name: rotation
in: path
required: true
description: Degrees clockwise, optionally prefixed with ! for mirroring. rotationArbitrary and mirroring are declared as extraFeatures.
schema: { type: string }
example: '0'
- name: quality
in: path
required: true
schema: { type: string, enum: [default, color, gray, bitonal] }
example: default
- name: format
in: path
required: true
schema: { type: string, enum: [jpg, png, gif, tif, webp] }
example: jpg
responses:
'200':
description: The requested image.
content:
image/jpeg: { schema: { type: string, format: binary } }
image/png: { schema: { type: string, format: binary } }
image/webp: { schema: { type: string, format: binary } }
'400':
description: Malformed image request parameters. Returns text/plain.
content:
text/plain: { schema: { type: string } }
'403':
description: Unknown identifier.
content:
application/xml:
schema: { $ref: '#/components/schemas/S3Error' }
'/ark:/{naan}/{objectId}/presentation/3/manifest':
get:
summary: IIIF Presentation API 3.0 Manifest
description: >-
Returns a IIIF Presentation 3.0 Manifest for one object. Confirmed live with
naan=36941, objectId=9952973300001381 ("Little Red Riding Hood", 7 canvases) and
objectId=796351.
operationId: getManifest
tags: [IIIF Presentation]
security: []
parameters:
- { $ref: '#/components/parameters/Naan' }
- { $ref: '#/components/parameters/ObjectId' }
responses:
'200':
description: IIIF Presentation API 3.0 Manifest.
content:
application/json:
schema: { $ref: '#/components/schemas/Manifest' }
'302':
description: >-
Observed when the manifest path is requested under /iiif/3/. The Location header is a
relative value that is not a resolvable URL; use the /ark:/ form above.
'/ark:/{naan}/{objectId}/presentation/3/canvas/{canvasId}':
get:
summary: IIIF Presentation API 3.0 Canvas
description: Returns a single Canvas from an object's manifest. Confirmed live with objectId=796351, canvasId=802563.
operationId: getCanvas
tags: [IIIF Presentation]
security: []
parameters:
- { $ref: '#/components/parameters/Naan' }
- { $ref: '#/components/parameters/ObjectId' }
- name: canvasId
in: path
required: true
schema: { type: string }
example: '802563'
responses:
'200':
description: IIIF Presentation API 3.0 Canvas.
content:
application/json:
schema: { $ref: '#/components/schemas/Canvas' }
components:
securitySchemes: {}
parameters:
Naan:
name: naan
in: path
required: true
description: ARK Name Assigning Authority Number. The University of York's is 36941.
schema: { type: string, default: '36941' }
example: '36941'
CollectionId:
name: collectionId
in: path
required: true
description: 'ARK collection segment. Observed values include numeric object-group ids and the literal "common" for site assets.'
schema: { type: string }
example: common
ObjectId:
name: objectId
in: path
required: true
schema: { type: string }
example: uoy-logo
schemas:
S3Error:
type: object
description: Object-store error surfaced verbatim for unknown identifiers.
properties:
Code: { type: string, example: AccessDenied }
Message: { type: string, example: Access Denied }
ImageService3:
type: object
description: IIIF Image API 3.0 image information document, as served.
required: ['@context', id, type, protocol, profile, width, height]
properties:
'@context': { type: string, const: 'http://iiif.io/api/image/3/context.json' }
id: { type: string, format: uri }
type: { type: string, const: ImageService3 }
protocol: { type: string, const: 'http://iiif.io/api/image' }
profile: { type: string, example: level2 }
width: { type: integer, example: 500 }
height: { type: integer, example: 164 }
sizes:
type: array
items:
type: object
properties:
width: { type: integer }
height: { type: integer }
tiles:
type: array
items:
type: object
properties:
width: { type: integer, example: 256 }
height: { type: integer, example: 256 }
scaleFactors: { type: array, items: { type: integer } }
extraFeatures:
type: array
items: { type: string }
example: [canonicalLinkHeader, mirroring, profileLinkHeader, rotationArbitrary, sizeByDistortedWh, sizeByForcedWh, sizeByWhListed, sizeUpscaling]
extraFormats:
type: array
items: { type: string }
example: [gif, tif, webp]
extraQualities:
type: array
items: { type: string }
example: [color, gray, bitonal]
Manifest:
type: object
description: IIIF Presentation API 3.0 Manifest, with the properties observed on this deployment.
required: ['@context', id, type, label, items]
properties:
'@context': { type: string, const: 'http://iiif.io/api/presentation/3/context.json' }
id: { type: string, format: uri }
type: { type: string, const: Manifest }
label: { $ref: '#/components/schemas/LanguageMap' }
summary: { $ref: '#/components/schemas/LanguageMap' }
behavior: { type: array, items: { type: string } }
thumbnail: { type: array, items: { type: object } }
items:
type: array
description: Canvases.
items: { $ref: '#/components/schemas/Canvas' }
Canvas:
type: object
description: IIIF Presentation API 3.0 Canvas.
properties:
id: { type: string, format: uri }
type: { type: string, const: Canvas }
label: { $ref: '#/components/schemas/LanguageMap' }
height: { type: integer }
width: { type: integer }
items: { type: array, items: { type: object } }
LanguageMap:
type: object
description: IIIF language map — BCP 47 language tag (or "none") to an array of strings.
additionalProperties:
type: array
items: { type: string }
example:
en: [Little Red Riding Hood]
security: []