Digitised Objects Repository Search and Data API

A single point-of-truth interface for searching, browsing and displaying the digitised objects held in Newcastle University Library's Special Collections. Eighteen operations across collections, digitised objects, items, search, autocomplete, transcripts, IIIF image delivery, TEI content and CONTENTdm identifier resolution. Open, unauthenticated, HATEOAS-linked, and it publishes its own OpenAPI and build number from a machine-readable /info endpoint. Verified live 2026-08-30 serving 15,482 digitised objects.

Operations 6

GET /iiif/{id} IIIF permalink #
GET /v1/digitised-objects List of digitised objects #
GET /v1/digitised-objects/search Search digitised objects #
GET /v1/digitised-objects/search/autocomplete Search digitised objects autocompletion #
GET /v1/digitised-objects/{id} Digitised object definition #
GET /v1/digitised-objects/{id}/transcript/content Digitised object's transcript #

Documentation

Specifications

Schemas & Data

Other Resources

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/newcastle:digitised-objects"
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

newcastle-digitised-objects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Newcastle University | Repository | Search and Data…
  version: 1.27.0
  description: 'The *Search and Data API* provides a single point of truth interface for searching, browsing and displaying digitised objects held in Newcastle University Library''s Special Collections.


    Data curators: Special Collections and Archives\

    Administrators: Digital Library Services'
servers:
- url: https://api-dor.ncl.ac.uk
tags:
- name: Digitised Objects
  description: A set of endpoints describing the digitised objects present in the repository.
paths:
  /iiif/{id}:
    get:
      operationId: getIIIF
      summary: IIIF permalink
      description: Signpost to to a service responsible for IIIF manifests generation for the given digitised object.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        example: UkLWZg9D
        required: true
        description: Digitised object's identifier.
      tags:
      - Digitised Objects
      responses:
        '302':
          description: Redirects to a IIIF manifest.
          headers:
            Location:
              description: URL where the IIIF manifest will be created.
              schema:
                type: string
                format: uri
              required: true
        '400':
          description: The server could not finalise the response due to the malformed, invalid or missing request parameters.
        '404':
          description: A digitised object with the specified ID was not found.
        5XX:
          description: Indicates that the server encountered an unexpected exception preventing it from fulfilling the request.
  /v1/digitised-objects:
    get:
      operationId: getV1DigitisedObjectsIndex
      summary: List of digitised objects
      description: Returns summary of digitised objects present in the system.
      tags:
      - Digitised Objects
      parameters:
      - in: query
        name: page
        schema:
          type: number
        description: The pagination index, starting from 1 for the first page.
      - in: query
        name: page.size
        schema:
          type: number
        description: The number of digitised objects matching returned per page, between 1 and 100.
      - in: query
        name: page.start
        schema:
          type: number
        description: The pagination starting offset starting from 0.
      responses:
        '200':
          description: The list of digitised objects matching a query.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type:
                      - object
                      - 'null'
                      properties:
                        id:
                          type: string
                          example: UkLWZg9D
                        refCode:
                          type:
                          - string
                          - 'null'
                          example: NUA/005671/01
                        title:
                          type:
                          - string
                          - 'null'
                          example: Aerial view of King's College
                        description:
                          type:
                          - string
                          - 'null'
                        _links:
                          type: object
                          properties:
                            definition:
                              $ref: '#/components/schemas/HateoasLink'
                          required:
                          - definition
                      required:
                      - id
                      - refCode
                      - title
                      - description
                      - _links
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                  _links:
                    allOf:
                    - $ref: '#/components/schemas/HomeLinks'
                    - type: object
                      properties:
                        search:
                          $ref: '#/components/schemas/HateoasLink'
                      required:
                      - search
                required:
                - items
                - pagination
                - _links
        '400':
          description: The server could not finalise the response due to the malformed, invalid or missing request parameters.
        5XX:
          description: Indicates that the server encountered an unexpected exception preventing it from fulfilling the request.
  /v1/digitised-objects/search:
    get:
      operationId: getV1DigitisedObjectsSearch
      summary: Search digitised objects
      description: Performs a keyword search with filters on the digitised objects present in the system.
      tags:
      - Digitised Objects
      parameters:
      - $ref: '#/components/parameters/SearchPage'
      - $ref: '#/components/parameters/SearchPageSize'
      - $ref: '#/components/parameters/SearchPageStart'
      - $ref: '#/components/parameters/SearchQ'
      - $ref: '#/components/parameters/SearchQAdvanced'
      - $ref: '#/components/parameters/SearchSort'
      - $ref: '#/components/parameters/SearchFilterCollection'
      - $ref: '#/components/parameters/SearchFilterCollectionId'
      - $ref: '#/components/parameters/SearchFilterSubject'
      - $ref: '#/components/parameters/SearchFilterThematicCategory'
      - $ref: '#/components/parameters/SearchFilterDateFrom'
      - $ref: '#/components/parameters/SearchFilterDateTo'
      - $ref: '#/components/parameters/SearchFilterHasTEI'
      - $ref: '#/components/parameters/SearchFilterHasTranscript'
      - $ref: '#/components/parameters/SearchFilterScope'
      responses:
        '200':
          description: The list of items matching the given search query.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type:
                    - array
                    - 'null'
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: UkLWZg9D
                        refCode:
                          type:
                          - string
                          - 'null'
                          example: NUA/028944/02
                        title:
                          type:
                          - string
                          - 'null'
                          example: Aerial view of main University campus and Newcastle city centre
                        description:
                          type:
                          - string
                          - 'null'
                          example: Aerial view of university campus from the west including the Armstrong Building, Bedson Building, King George VI Building and Agriculture Building
                        format:
                          type:
                          - string
                          - 'null'
                          example: Photograph
                        language:
                          type:
                          - string
                          - 'null'
                        creators:
                          type:
                          - array
                          - 'null'
                          items:
                            type: string
                        subjects:
                          type:
                          - array
                          - 'null'
                          items:
                            type: string
                        dates:
                          type:
                          - array
                          - 'null'
                          items:
                            type: string
                        places:
                          type:
                          - array
                          - 'null'
                          items:
                            type: string
                        canvas:
                          type: string
                        highlights:
                          type: object
                          description: The list of all matches for the given query per searched field.
                          properties:
                            title:
                              type: array
                              items:
                                type: string
                            description:
                              type: array
                              items:
                                type: string
                            content:
                              type: array
                              items:
                                type: string
                          required:
                          - title
                          - description
                          - content
                        _links:
                          type: object
                          properties:
                            definition:
                              $ref: '#/components/schemas/HateoasLink'
                          required:
                          - definition
                      required:
                      - id
                      - refCode
                      - title
                      - description
                      - format
                      - language
                      - creators
                      - subjects
                      - dates
                      - places
                      - canvas
                      - highlights
                      - _links
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                  sort:
                    $ref: '#/components/schemas/Sort'
                  query:
                    $ref: '#/components/schemas/CancellableQuery'
                  filters:
                    $ref: '#/components/schemas/Filters'
                  _links:
                    allOf:
                    - $ref: '#/components/schemas/HomeLinks'
                    - type: object
                      properties:
                        index:
                          $ref: '#/components/schemas/HateoasLink'
                        home:
                          $ref: '#/components/schemas/HateoasLink'
                      required:
                      - index
                      - home
                required:
                - items
                - pagination
                - sort
                - query
                - filters
                - _links
        '400':
          description: The server could not finalise the response due to the malformed, invalid or missing request parameters.
        '404':
          description: Digitised objects matching the given criteria were not found.
        5XX:
          description: Indicates that the server encountered an unexpected exception preventing it from fulfilling the request.
  /v1/digitised-objects/search/autocomplete:
    get:
      operationId: getV1DigitisedObjectsSearchAutocomplete
      summary: Search digitised objects autocompletion
      description: Provides search box autocompletion for the given phrase.
      tags:
      - Digitised Objects
      parameters:
      - $ref: '#/components/parameters/AutocompleteQ'
      - $ref: '#/components/parameters/AutocompletePageSize'
      - $ref: '#/components/parameters/SearchFilterScope'
      responses:
        '200':
          description: The list of terms/phrases matching the given query.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutocompleteResponse'
        '400':
          description: The server could not finalise the response due to the malformed, invalid or missing request parameters.
        '404':
          description: No suggestions were available for the given query.
        5XX:
          description: Indicates that the server encountered an unexpected exception preventing it from fulfilling the request.
  /v1/digitised-objects/{id}:
    get:
      operationId: getV1DigitisedObjectsShow
      summary: Digitised object definition
      description: Returns all the metadata and signposts to the related resources for the given digitised object.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        example: UkLWZg9D
        required: true
        description: Digitised object's identifier.
      tags:
      - Digitised Objects
      responses:
        '200':
          description: The complete definition of the identified digitised object.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: UkLWZg9D
                  refCode:
                    type:
                    - string
                    - 'null'
                    example: NUA/005671/01
                  title:
                    type:
                    - string
                    - 'null'
                    example: Aerial view of King's College
                  description:
                    type:
                    - string
                    - 'null'
                  format:
                    type:
                    - string
                    - 'null'
                    example: Photograph
                  language:
                    type:
                    - string
                    - 'null'
                  creators:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  subjects:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  dates:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  places:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  publishers:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  provenances:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  contributors:
                    type:
                    - array
                    - 'null'
                    items:
                      type: string
                  copyright:
                    type:
                    - string
                    - 'null'
                  license:
                    type:
                    - string
                    - 'null'
                  manifest:
                    type: string
                  collection:
                    type: object
                    properties:
                      id:
                        type: string
                        example: ngQRYFju
                      title:
                        type:
                        - string
                        - 'null'
                        example: Newcastle University Archives
                      _links:
                        type: object
                        properties:
                          definition:
                            $ref: '#/components/schemas/HateoasLink'
                        required:
                        - definition
                    required:
                    - id
                    - title
                    - _links
                  items:
                    type: object
                    properties:
                      totalElements:
                        type: number
                      _links:
                        type: object
                        properties:
                          search:
                            $ref: '#/components/schemas/HateoasLink'
                        required:
                        - search
                    required:
                    - totalElements
                    - _links
                  transcript:
                    type:
                    - object
                    - 'null'
                    properties:
                      _links:
                        type: object
                        properties:
                          content:
                            $ref: '#/components/schemas/HateoasLink'
                        required:
                        - content
                    required:
                    - _links
                  teis:
                    type:
                    - array
                    - 'null'
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: UkLWZg9D
                        type:
                          type:
                          - string
                          - 'null'
                          enum:
                          - primary
                        _links:
                          type: object
                          properties:
                            content:
                              $ref: '#/components/schemas/HateoasLink'
                          required:
                          - content
                      required:
                      - id
                      - type
                      - _links
                  createdAt:
                    type: string
                    format: date-time
                  updatedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                  _links:
                    type: object
                    properties:
                      index:
                        $ref: '#/components/schemas/HateoasLink'
                      search:
                        $ref: '#/components/schemas/HateoasLink'
                    required:
                    - index
                    - search
                required:
                - id
                - refCode
                - title
                - description
                - format
                - language
                - creators
                - subjects
                - dates
                - places
                - publishers
                - provenances
                - contributors
                - copyright
                - license
                - manifest
                - collection
                - items
                - transcript
                - teis
                - createdAt
                - updatedAt
                - _links
        '400':
          description: The server could not finalise the response due to the malformed, invalid or missing request parameters.
        '404':
          description: A digitised object with the specified ID was not found.
        5XX:
          description: Indicates that the server encountered an unexpected exception preventing it from fulfilling the request.
  /v1/digitised-objects/{id}/transcript/content:
    get:
      operationId: getV1DigitisedObjectsTranscriptContent
      summary: Digitised object's transcript
      description: Returns a transcript of the given digitised object.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        example: UkLWZg9D
        required: true
        description: Digitised object's identifier.
      tags:
      - Digitised Objects
      responses:
        '200':
          description: The transcript of the digitised object in a plain text form.
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: The server could not finalise the response due to the malformed, invalid or missing request parameters.
        '404':
          description: A digitised object with the specified ID or its transcript was not found.
        5XX:
          description: Indicates that the server encountered an unexpected exception preventing it from fulfilling the request.
components:
  parameters:
    SearchFilterDateFrom:
      in: query
      name: filter.date.from
      schema:
        type: number
      description: The start of the date range query.
    SearchFilterThematicCategory:
      in: query
      name: filter.thematicCategory
      schema:
        $ref: '#/components/schemas/StringOrArrayOfStrings'
      description: List of thematic category terms that the items should belong to.
    SearchFilterHasTEI:
      in: query
      name: filter.hasTEI
      schema:
        $ref: '#/components/schemas/StringOrArrayOfStrings'
      description: Determines whether returned items should have a TEI file related or not.
    SearchFilterDateTo:
      in: query
      name: filter.date.to
      schema:
        type: number
      description: The end of the date range query.
    SearchFilterCollectionId:
      in: query
      name: filter.collection.id
      schema:
        $ref: '#/components/schemas/StringOrArrayOfStrings'
      description: List of collection ids that the items should belong to.
    SearchQ:
      in: query
      name: q
      schema:
        type: string
      description: The main search phrase.
    SearchPageSize:
      in: query
      name: page.size
      schema:
        type: number
      description: The number of items matching returned per page, between 1 and 100.
    SearchFilterCollection:
      in: query
      name: filter.collection
      schema:
        $ref: '#/components/schemas/StringOrArrayOfStrings'
      description: List of collection titles that the items should belong to.
    AutocompleteQ:
      in: query
      name: q
      schema:
        type: string
      required: true
      description: The search phrase that should be autocompleted.
    SearchSort:
      in: query
      name: sort
      schema:
        type: string
        enum:
        - relevance
        - title.asc
        - title.desc
        - date.asc
        - date.desc
        - createdAt.desc
      description: Determines the sorting method.
    SearchPage:
      in: query
      name: page
      schema:
        type: number
      description: The pagination index, starting from 1 for the first page.
    SearchFilterHasTranscript:
      in: query
      name: filter.hasTranscript
      schema:
        $ref: '#/components/schemas/StringOrArrayOfStrings'
      description: Determines whether returned items should have a raw transcript file related or not.
    SearchFilterScope:
      in: query
      name: scope
      schema:
        type: string
        example: digital.showcase
      description: Scopes query to return items assigned to the given system.
    SearchQAdvanced:
      in: query
      name: q.advanced
      schema:
        type: string
      description: Query string dedicated to advanced searches, written in restricted [Elasticsearch\'s query syntax](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax).
    SearchFilterSubject:
      in: query
      name: filter.subject
      schema:
        $ref: '#/components/schemas/StringOrArrayOfStrings'
      description: List of subject terms that the items should belong to.
    SearchPageStart:
      in: query
      name: page.start
      schema:
        type: number
      description: The pagination starting offset starting from 0.
    AutocompletePageSize:
      in: query
      name: page.size
      schema:
        type: number
      description: The maximum number of items returned, between 1 and 25 (by default it is 10).
  schemas:
    HateoasParameters:
      type: object
      additionalProperties: true
      description: Any relevant parameters that should be appended to the URL (for GET method) or passed as a payload for other HTTP methods.
      example:
        '?': '...'
    ReadonlyQuery:
      type: object
      properties:
        value:
          type:
          - string
          - 'null'
      required:
      - value
    Facet:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        count:
          type: number
        _links:
          type: object
          properties:
            activate:
              $ref: '#/components/schemas/HateoasLink'
            deactivate:
              $ref: '#/components/schemas/HateoasLink'
      required:
      - id
      - name
      - count
    HateoasLink:
      type: object
      properties:
        href:
          type: string
        type:
          type: string
          enum:
          - GET
          - POST
          - PUT
          - DELETE
        parameters:
          $ref: '#/components/schemas/HateoasParameters'
      required:
      - href
      - type
    StringOrArrayOfStrings:
      oneOf:
      - type: string
      - type: array
        items:
          type: string
    SortOption:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        _links:
          type: object
          properties:
            activate:
              $ref: '#/components/schemas/HateoasLink'
            deactivate:
              $ref: '#/components/schemas/HateoasLink'
          required:
          - activate
      required:
      - id
      - name
      - _links
    FilterOption:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        active:
          type:
          - array
          - 'null'
          items:
            allOf:
            - $ref: '#/components/schemas/FilterValue'
            - type: object
              properties:
                _links:
                  type: object
                  properties:
                    deactivate:
                      $ref: '#/components/schemas/HateoasLink'
                  required:
                  - deactivate
              required:
              - _links
            $ref: '#/components/schemas/FilterValue'
        facets:
          type:
          - array
          - 'null'
          items:
            allOf:
            - $ref: '#/components/schemas/Facet'
        _links:
          type: object
          properties:
            reset:
              $ref: '#/components/schemas/HateoasLink'
      required:
      - id
      - name
      - active
      - facets
      - _links
    FilterValue:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        _links:
          type: object
          properties:
            activate:
              $ref: '#/components/schemas/HateoasLink'
            deactivate:
              $ref: '#/components/schemas/HateoasLink'
      required:
      - id
      - name
      - _links
    CancellableQuery:
      type: object
      allOf:
      - $ref: '#/components/schemas/ReadonlyQuery'
      - type: object
        properties:
          _links:
            type: object
            properties:
              deactivate:
                $ref: '#/components/schemas/HateoasLink'
        required:
        - _links
    AutocompleteResponse:
      type: object
      properties:
        items:
          type:
          - array
          - 'null'
          items:
            type: object
            properties:
              title:
                type: string
                example: Photograph taken by Gertrude Bell showing Delhi, India
              highlight:
                type: string
                example: Photograph taken by <mark>Gertrude Bell</mark> showing Delhi, India
            required:
            - title
            - highlight
        query:
          $ref: '#/components/schemas/ReadonlyQuery'
        _links:
          allOf:
          - type: object
            properties:
              search:
                $ref: '#/components/schemas/HateoasLink'
            required:
            - search
      required:
      - items
      - query
      - _links
    Pagination:
      type: object
      description: Defines the metadata for the pagination used for providing the data on the given endpoint.
      properties:
        size:
          type: number
          description: Represents how many items can be presented on one page.
        totalPages:
          type: number
          description: Represents how many pages are in total to fetch.
        totalElements:
          type: number
          description: Represents how many items are in total to fetch.
        number:
          type: number
          description: Represents the current page's number.
        _links:
          type: object
          description: Standard set of links related to pagination.
          properties:
            first:
              $ref: '#/components/schemas/HateoasLink'
            previous:
              $ref: '#/components/schemas/HateoasLink'
            next:
              $ref: '#/components/schemas/HateoasLink'
            last:
              $ref: '#/components/schemas/HateoasLink'
          required:
          - first
          - last
      required:
      - size
      - totalPages
      - totalElements
      - number
      - _links
    Filters:
      type: object
      properties:
        options:
          type: array
          items:
            $ref: '#/components/schemas/FilterOption'
        _links:
          type: object
          properties:
            reset:
              $ref: '#/components/schemas/HateoasLink'
      required:
      - options
      - _links
    HomeLinks:
      type: object
      description: Standard set of links related to the homepage.
      properties:
        home:
          $ref: '#/components/schemas/HateoasLink'
      required:
      - home
    Sort:
      type: object
      properties:
        options:
          type: array
          items:
            $ref: '#/components/schemas/SortOption'
        active:
          allOf:
          - $ref: '#/components/schemas/SortOption'
          - type: object
            properties:
              _links:
                type: object
                properties:
                  deactivate:
                    $ref: '#/components/schemas/HateoasLink'
                required:
                - deactivate
            required:
            - _links
        _links:
          type: object
          description: Standard set of links related to sorting.
          properties:
            reset:
              $ref: '#/components/schemas/HateoasLink'
      required:
      - options
      - active
      - _links