Skip to content

Endpoints

Every path below is relative to /api/v1 and deployment-agnostic — prefix it with your instance host (e.g. https://archetype.example.org/api/v1/… or http://localhost:8000/api/v1/…). The public read API needs no authentication; management/* routes are superuser-gated and out of scope here. For the machine-readable contract, load the OpenAPI schema and Swagger UI:

GET /api/v1/schema/
GET /api/v1/docs/

For the standards these endpoints implement (W3C Web Annotation, IIIF Presentation & Content Search, TEI), see Export, reuse & cite. For an overview of the API surface, see The API.

Mounted under /api/v1/manuscripts/.

MethodPathPurpose
GETmanuscripts/item-parts/List manuscript parts (the primary browsable unit).
GETmanuscripts/item-parts/{id}/Retrieve one part with its images.
GETmanuscripts/item-parts/{id}/tei/Download the part’s published manuscript description (msDesc) as TEI XML.
GETmanuscripts/item-images/List page/folio images; filter with ?item_part=.
GETmanuscripts/item-images/{id}/Retrieve one image.
GETmanuscripts/image-texts/List transcriptions/translations; filter with ?item_image=, ?type=.
GETmanuscripts/image-texts/{id}/Retrieve one transcription.
GETmanuscripts/image-texts/{id}/tei/Download the transcription as TEI XML (application/tei+xml).

Anonymous callers only see texts whose status is Live or Reviewed; drafts return 404.

Scribes/hands are mounted at /api/v1/; the symbol structure lives under /api/v1/symbols_structure/.

MethodPathPurpose
GETscribes/, scribes/{id}/Scribe records.
GEThands/, hands/{id}/Hand records; filter with ?item_part=, ?item_part_images=, ?scribe=.
GETsymbols_structure/allographs/Allograph list (script model).

Mounted at /api/v1/.

MethodPathPurpose
GETmanuscripts/graphs/Read-only list of graphs (annotated glyph instances); unpaginated, filter with ?item_image=, ?annotation_type=, ?hand=, ?allograph=, ?id__in=.
GETmanuscripts/graphs/{id}/Retrieve one graph with its region geometry.
POST/PATCH/DELETEannotations/graphs/Annotator write surface (auth required; no GET).

Anonymous callers do not see editorial annotations.

Mounted under /api/v1/search/. {index} is a hyphenated index segment; the registered indexes are item-parts, item-images, scribes, hands, graphs, texts, clauses, people, places.

MethodPathPurpose
GETsearch/{index}/Faceted search over an index (query, filters, paging).
GETsearch/{index}/{id}/Retrieve a single indexed document.
GETsearch/{index}/facets/Facet buckets/counts for the index.
GETsearch/{index}/export/Export results; ?export_format=csv (default), json, or bibtex (item parts, scribes and hands only).
GETsearch/suggest/Autocomplete suggestions.
MethodPathPurpose
GETversion/The running build’s version and commit.
GETsite-labels/Customisable UI labels, as {"labels": {key: {en, fr}}}.
GETapp-settings/Public site-feature settings.
GETpages/, pages/{slug}/Editable site pages.
GETmedia/publications/, media/events/ (by slug)Publications and events.
GETmedia/carousel-items/, media/partners/Home-page carousel and partner lists.
GETworksets/{public_id}/A public lightbox workset (listing and editing your own needs auth).

These superuser-only routes back the backoffice; the schema documents them in full.

  • manuscripts/management/item-images/ — create, edit and delete images. Changing item_part moves the image to another manuscript part; this is refused while the image has hand attributions (annotations with a hand, or linked hands). The list also accepts ?has_text=, ?has_transcription=, ?has_translation=.
  • uploads/sessions/ — chunked image upload: POST a session (item_part, filename, size, optional locus, tags, subfolder), PUT each chunk to sessions/{id}/chunks/{n}/, then POST sessions/{id}/finalize/ and poll GET sessions/{id}/. Accepts .tif, .tiff, .jpg, .jpeg, .png, .jp2.
  • site-labels/ and app-settings/ accept PUT from a superuser.

These three route groups emit standards-compliant documents you can hand to external viewers and annotation clients.

W3C Web Annotation (JSON-LD) — under /api/v1/annotations-w3c/:

MethodPathPurpose
GETannotations-w3c/graphs/{id}/One region as a W3C Web Annotation.
GETannotations-w3c/image-texts/{id}/A transcription’s linked regions as an AnnotationPage.
GETannotations-w3c/context/Pointer to the W3C annotation @context.

IIIF — under /api/v1/iiif/ (note: the manifest path has no trailing slash):

MethodPathPurpose
GETiiif/item-parts/{id}/manifestIIIF Presentation 3.0 Manifest for a manuscript part.
GETiiif/item-parts/{id}/search?q=IIIF Content Search 2.0 over the part’s linked transcription regions.
Terminal window
# Fetch a manifest and a TEI transcription from a local instance
curl http://localhost:8000/api/v1/iiif/item-parts/1/manifest
curl http://localhost:8000/api/v1/manuscripts/image-texts/1/tei/

TEI XML is served per transcription at manuscripts/image-texts/{id}/tei/, and per manuscript part (its msDesc description) at manuscripts/item-parts/{id}/tei/ (see the Manuscripts table above).

Where the live OpenAPI schema covers a route, its response shape there is authoritative — check /api/v1/schema/ against your instance’s version rather than hard-coding fields. The search list/detail/export/suggest routes and the standards routes are not in the schema.