Skip to main content

Public API

Read-only public API for browsing published archival records, collections, entities, exhibits, and archivist-ready exports (EAD3, EAC-CPF, finding-aid PDF). Tenant resolution is via Host header; no API key required.

Tenant resolution

X-Forwarded-Host header → organizations.custom_domain or subdomain-of-BASE_DOMAIN. Every response is scoped to the resolved tenant.

Rate limit

200 requests/minute per IP

Endpoints

  • GET /api/public/records

    Paginated list of published records.

    Query params
    page
    int, default 1
    limit
    int, max 100
    collection
    slug — recursive descendants
    language
    ISO code
  • GET /api/public/records/:slug

    Full record detail including entities, ancestors, siblings, prev/next.

  • GET /api/public/collections

    Top-level fonds and collections with cover images and date aggregates.

  • GET /api/public/collections/:slug

    Collection detail with immediate children, descendants count, ancestor breadcrumbs.

  • GET /api/public/collections/:slug/ead.xml

    EAD3 XML finding aid download for a published collection.

  • GET /api/public/collections/:slug/finding-aid.pdf

    PDF finding aid for a published collection.

  • GET /api/public/entities

    Authority entities (people, places, subjects, organizations, families).

    Query params
    page
    int
    limit
    int
    entity_type
    person|corporate_body|place|subject|family
    search
    text
    letter
    char
  • GET /api/public/entities/:slugOrId

    Entity detail with biographical notes and linked records.

  • GET /api/public/entities/:slugOrId/records

    Published records linked to a given entity, ordered by confidence.

    Query params
    limit
    int
    exclude
    record UUID to hide from results
  • GET /api/public/entities/:slug/eac.xml

    EAC-CPF XML authority export for a single entity.

  • GET /api/public/search

    Meilisearch proxy. Supports field-prefix syntax (person:X, place:Y).

    Query params
    q
    query text
    collection
    slug — recursive-descendant filter
    person
    entity name
    place
    entity name
    subject
    entity name
    date_start
    int year
    date_end
    int year
    language
    ISO code
    sort
    relevance|date|date_desc|title|quality
    page
    int
    limit
    int
  • GET /api/public/cite/:slug

    Citation strings in Chicago 17, APA 7, MLA 9 formats, enriched with archive name, permalink, access date.

  • GET /api/public/images/:orgId/:recordId/thumb

    400px max-edge JPEG thumbnail (sharp-resized from R2 original).

  • GET /api/public/images/:orgId/:recordId/original

    Original uploaded file (no resize). Respects suppress_from_aggregators flag.

  • GET /api/public/iiif/:orgId/:recordId/manifest.json

    IIIF Presentation API 3.0 manifest.

  • GET /api/public/oai

    OAI-PMH 2.0 endpoint. Supports all 6 verbs: Identify, ListMetadataFormats, ListSets, ListIdentifiers, ListRecords, GetRecord. Metadata prefixes: oai_dc, ead, mods, qdc.

  • GET /api/public/exhibits

    Published curated exhibits.

  • GET /api/public/health

    Simple health probe. Returns { status: 'ok', services: {...} }.

Raw JSON

The machine-readable version of this page is available at:

/api/public/docs