openapi: 3.1.0
info:
  title: Content
  description: Search our non-catalogue content
  version: v0
  contact: {}
servers:
  - url: https://api.wellcomecollection.org/content/v0
tags:
  - name: Articles
  - name: Events
  - name: All
components:
  schemas:
    Error:
      type: object
      properties:
        errorType:
          type: string
          enum:
            - http
          description: The type of error
        httpStatus:
          type: integer
          description: The HTTP response status code
          format: int32
        label:
          type: string
          description: The title or other short name of the error
        description:
          type: string
          description: The specific error
        type:
          type: string
          enum:
            - Error
      required:
        - errorType
        - httpStatus
        - label
        - type
      title: Error
    Dimensions:
      type: object
      properties:
        width:
          type: integer
        height:
          type: integer
      required:
        - width
        - height
    Image:
      type: object
      properties:
        type:
          type: string
          enum:
            - PrismicImage
        dimensions:
          type: object
          properties:
            width:
              type: integer
            height:
              type: integer
          required:
            - width
            - height
        alt:
          type:
            - string
            - 'null'
        copyright:
          type:
            - string
            - 'null'
        url:
          type: string
        '32:15':
          type: object
          properties:
            dimensions:
              type: object
              properties:
                width:
                  type: integer
                height:
                  type: integer
              required:
                - width
                - height
            alt:
              type:
                - string
                - 'null'
            copyright:
              type:
                - string
                - 'null'
            url:
              type: string
          required:
            - dimensions
            - url
        '16:9':
          type: object
          properties:
            dimensions:
              type: object
              properties:
                width:
                  type: integer
                height:
                  type: integer
              required:
                - width
                - height
            alt:
              type:
                - string
                - 'null'
            copyright:
              type:
                - string
                - 'null'
            url:
              type: string
          required:
            - dimensions
            - url
        square:
          type: object
          properties:
            dimensions:
              type: object
              properties:
                width:
                  type: integer
                height:
                  type: integer
              required:
                - width
                - height
            alt:
              type:
                - string
                - 'null'
            copyright:
              type:
                - string
                - 'null'
            url:
              type: string
          required:
            - dimensions
            - url
      required:
        - type
        - dimensions
        - url
      title: Image
      description: >-
        Information regarding the location, dimensions, alt-text, and copyright
        of an image
    ArticleFormat:
      type: object
      properties:
        type:
          type: string
          enum:
            - ArticleFormat
        id:
          type: string
        label:
          type: string
      required:
        - type
        - id
        - label
      title: ArticleFormat
      description: The format of an article (eg article, comic)
    ContributorRole:
      type: object
      properties:
        id:
          type: string
        label:
          type: string
        type:
          type: string
          enum:
            - EditorialContributorRole
      required:
        - id
        - type
      title: ContributorRole
      description: A role of a contributor (eg. author, editor)
    ContributorAgent:
      type: object
      properties:
        id:
          type: string
        label:
          type: string
        type:
          type: string
          enum:
            - Person
            - Organisation
      required:
        - id
        - type
      title: Contributor
      description: A contributor
    Contributor:
      type: object
      properties:
        type:
          type: string
          enum:
            - Contributor
        contributor:
          type: object
          properties:
            id:
              type: string
            label:
              type: string
            type:
              type: string
              enum:
                - Person
                - Organisation
          required:
            - id
            - type
        role:
          type: object
          properties:
            id:
              type: string
            label:
              type: string
            type:
              type: string
              enum:
                - EditorialContributorRole
          required:
            - id
            - type
      required:
        - type
    Article:
      type: object
      properties:
        type:
          type: string
          enum:
            - Article
        id:
          type: string
        uid:
          type: string
        title:
          type: string
        publicationDate:
          type: string
        contributors:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - Contributor
              contributor:
                type: object
                properties:
                  id:
                    type: string
                  label:
                    type: string
                  type:
                    type: string
                    enum:
                      - Person
                      - Organisation
                required:
                  - id
                  - type
              role:
                type: object
                properties:
                  id:
                    type: string
                  label:
                    type: string
                  type:
                    type: string
                    enum:
                      - EditorialContributorRole
                required:
                  - id
                  - type
            required:
              - type
        format:
          type: object
          properties:
            type:
              type: string
              enum:
                - ArticleFormat
            id:
              type: string
            label:
              type: string
          required:
            - type
            - id
            - label
        image:
          type: object
          properties:
            type:
              type: string
              enum:
                - PrismicImage
            dimensions:
              type: object
              properties:
                width:
                  type: integer
                height:
                  type: integer
              required:
                - width
                - height
            alt:
              type:
                - string
                - 'null'
            copyright:
              type:
                - string
                - 'null'
            url:
              type: string
            '32:15':
              type: object
              properties:
                dimensions:
                  type: object
                  properties:
                    width:
                      type: integer
                    height:
                      type: integer
                  required:
                    - width
                    - height
                alt:
                  type:
                    - string
                    - 'null'
                copyright:
                  type:
                    - string
                    - 'null'
                url:
                  type: string
              required:
                - dimensions
                - url
            '16:9':
              type: object
              properties:
                dimensions:
                  type: object
                  properties:
                    width:
                      type: integer
                    height:
                      type: integer
                  required:
                    - width
                    - height
                alt:
                  type:
                    - string
                    - 'null'
                copyright:
                  type:
                    - string
                    - 'null'
                url:
                  type: string
              required:
                - dimensions
                - url
            square:
              type: object
              properties:
                dimensions:
                  type: object
                  properties:
                    width:
                      type: integer
                    height:
                      type: integer
                  required:
                    - width
                    - height
                alt:
                  type:
                    - string
                    - 'null'
                copyright:
                  type:
                    - string
                    - 'null'
                url:
                  type: string
              required:
                - dimensions
                - url
          required:
            - type
            - dimensions
            - url
        caption:
          type: string
        seriesTitle:
          type: string
      required:
        - type
        - id
        - title
        - publicationDate
        - contributors
        - format
      title: Article
      description: A piece of editorial content
    LinkedWork:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        type:
          type: string
        workType:
          type: string
        thumbnailUrl:
          type: string
        date:
          type: string
        mainContributor:
          type: string
      required:
        - id
        - title
        - type
      title: LinkedWork
      description: A Catalogue Work linked to from the content
    EventLocations:
      type: object
      properties:
        isOnline:
          type: boolean
        places:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - EventPlace
              id:
                type: string
              label:
                type: string
            required:
              - type
              - id
        attendance:
          type: array
          items:
            anyOf:
              - type: object
                properties:
                  id:
                    type: string
                    enum:
                      - online
                  label:
                    type: string
                    enum:
                      - Online
                  type:
                    type: string
                    enum:
                      - EventAttendance
                required:
                  - id
                  - label
                  - type
              - type: object
                properties:
                  id:
                    type: string
                    enum:
                      - in-our-building
                  label:
                    type: string
                    enum:
                      - In our building
                  type:
                    type: string
                    enum:
                      - EventAttendance
                required:
                  - id
                  - label
                  - type
        type:
          type: string
          enum:
            - EventLocations
      required:
        - isOnline
        - attendance
        - type
      description: Where the event takes place
    Event:
      type: object
      properties:
        type:
          type: string
          enum:
            - Event
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        image:
          type: object
          properties:
            type:
              type: string
              enum:
                - PrismicImage
            dimensions:
              type: object
              properties:
                width:
                  type: integer
                height:
                  type: integer
              required:
                - width
                - height
            alt:
              type:
                - string
                - 'null'
            copyright:
              type:
                - string
                - 'null'
            url:
              type: string
            '32:15':
              type: object
              properties:
                dimensions:
                  type: object
                  properties:
                    width:
                      type: integer
                    height:
                      type: integer
                  required:
                    - width
                    - height
                alt:
                  type:
                    - string
                    - 'null'
                copyright:
                  type:
                    - string
                    - 'null'
                url:
                  type: string
              required:
                - dimensions
                - url
            '16:9':
              type: object
              properties:
                dimensions:
                  type: object
                  properties:
                    width:
                      type: integer
                    height:
                      type: integer
                  required:
                    - width
                    - height
                alt:
                  type:
                    - string
                    - 'null'
                copyright:
                  type:
                    - string
                    - 'null'
                url:
                  type: string
              required:
                - dimensions
                - url
            square:
              type: object
              properties:
                dimensions:
                  type: object
                  properties:
                    width:
                      type: integer
                    height:
                      type: integer
                  required:
                    - width
                    - height
                alt:
                  type:
                    - string
                    - 'null'
                copyright:
                  type:
                    - string
                    - 'null'
                url:
                  type: string
              required:
                - dimensions
                - url
          required:
            - type
            - dimensions
            - url
        times:
          type: array
          items:
            type: object
            properties:
              startDateTime:
                type: string
                format: date-time
              endDateTime:
                type: string
                format: date-time
              isFullyBooked:
                type: object
                properties:
                  inVenue:
                    type: boolean
                  online:
                    type: boolean
                required:
                  - inVenue
                  - online
            required:
              - isFullyBooked
        isExhibition:
          type: boolean
        format:
          type: object
          properties:
            type:
              type: string
              enum:
                - EventFormat
                - ExhibitionFormat
            id:
              type: string
            label:
              type: string
          required:
            - type
            - id
        locations:
          type: object
          properties:
            isOnline:
              type: boolean
            places:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - EventPlace
                  id:
                    type: string
                  label:
                    type: string
                required:
                  - type
                  - id
            attendance:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        enum:
                          - online
                      label:
                        type: string
                        enum:
                          - Online
                      type:
                        type: string
                        enum:
                          - EventAttendance
                    required:
                      - id
                      - label
                      - type
                  - type: object
                    properties:
                      id:
                        type: string
                        enum:
                          - in-our-building
                      label:
                        type: string
                        enum:
                          - In our building
                      type:
                        type: string
                        enum:
                          - EventAttendance
                    required:
                      - id
                      - label
                      - type
            type:
              type: string
              enum:
                - EventLocations
          required:
            - isOnline
            - attendance
            - type
        interpretations:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - EventInterpretation
              id:
                type: string
              label:
                type: string
            required:
              - type
              - id
        audiences:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - EventAudience
              id:
                type: string
              label:
                type: string
            required:
              - type
              - id
        series:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              contributors:
                type: array
                items:
                  type: string
            required:
              - id
        isAvailableOnline:
          type: boolean
      required:
        - type
        - id
        - uid
        - title
        - times
        - isExhibition
        - format
        - locations
        - interpretations
        - audiences
        - series
        - isAvailableOnline
      title: Event
      description: A Wellcome Collection event (on location or online)
    AggregationBucket:
      type: object
      properties:
        data:
          anyOf:
            - $ref: '#/components/schemas/ContributorAgent'
            - $ref: '#/components/schemas/ArticleFormat'
          discriminator:
            propertyName: type
        count:
          type: integer
          description: The count of how often this data occurs in this set of results.
          format: int32
        type:
          type: string
      required:
        - data
        - count
        - type
      title: AggregationBucket
      description: An individual bucket within an aggregation.
    Aggregation:
      type: object
      properties:
        buckets:
          type: array
          items:
            $ref: '#/components/schemas/AggregationBucket'
        type:
          type: string
      required:
        - buckets
        - type
      title: Aggregation
      description: An aggregation over the results.
    ArticleAggregations:
      type: object
      properties:
        format:
          $ref: '#/components/schemas/Aggregation'
        contributors.contributor:
          $ref: '#/components/schemas/Aggregation'
        type:
          type: string
      required:
        - type
      title: ArticleAggregations
      description: A map containing the requested aggregations.
    ArticleResultList:
      type: object
      properties:
        type:
          type: string
        pageSize:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalResults:
          type: integer
          format: int32
        results:
          type: array
          items:
            $ref: '#/components/schemas/Article'
        prevPage:
          type: string
        nextPage:
          type: string
        aggregations:
          $ref: '#/components/schemas/ArticleAggregations'
      required:
        - type
        - pageSize
        - totalPages
        - totalResults
        - results
      title: ArticleResultList
      description: A paginated list of articles.
    EventAggregations:
      type: object
      properties:
        audience:
          $ref: '#/components/schemas/Aggregation'
        interpretation:
          $ref: '#/components/schemas/Aggregation'
        format:
          $ref: '#/components/schemas/Aggregation'
        isAvailableOnline:
          $ref: '#/components/schemas/Aggregation'
        location:
          $ref: '#/components/schemas/Aggregation'
        type:
          type: string
      required:
        - type
      title: EventAggregations
      description: A map containing the requested aggregations.
    EventResultList:
      type: object
      properties:
        type:
          type: string
        pageSize:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalResults:
          type: integer
          format: int32
        results:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        prevPage:
          type: string
        nextPage:
          type: string
        aggregations:
          $ref: '#/components/schemas/EventAggregations'
      required:
        - type
        - pageSize
        - totalPages
        - totalResults
        - results
      title: EventResultList
      description: A paginated list of events.
    AddressablesArticle:
      type: object
      properties:
        type:
          type: string
          enum:
            - Article
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Article
    AddressablesBook:
      type: object
      properties:
        type:
          type: string
          enum:
            - Book
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
        contributors:
          type: string
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Book
    AddressablesEvent:
      type: object
      properties:
        type:
          type: string
          enum:
            - Event
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
        format:
          type: string
        times:
          type: object
          properties:
            start:
              type: string
              format: date-time
            end:
              type: string
              format: date-time
          required:
            - start
            - end
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Event
    AddressablesExhibition:
      type: object
      properties:
        type:
          type: string
          enum:
            - Exhibition
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
        format:
          type: string
        dates:
          type: object
          properties:
            start:
              type:
                - string
                - 'null'
            end:
              type:
                - string
                - 'null'
          required:
            - start
            - end
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Exhibition
    AddressablesExhibitionText:
      type: object
      properties:
        type:
          type: string
          enum:
            - Exhibition text
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Exhibition text
    AddressablesExhibitionHighlightTourBSL:
      type: object
      properties:
        type:
          type: string
          enum:
            - Exhibition highlight tour
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
        highlightTourType:
          type: string
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Exhibition highlight tour
    AddressablesExhibitionHighlightTourAudio:
      type: object
      properties:
        type:
          type: string
          enum:
            - Exhibition highlight tour
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
        highlightTourType:
          type: string
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Exhibition highlight tour
    AddressablesPage:
      type: object
      properties:
        type:
          type: string
          enum:
            - Page
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
        tags:
          type: array
          items:
            type: string
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Page
    AddressablesProject:
      type: object
      properties:
        type:
          type: string
          enum:
            - Project
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
        format:
          type: string
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Project
    AddressablesSeason:
      type: object
      properties:
        type:
          type: string
          enum:
            - Season
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Season
    AddressablesVisualStory:
      type: object
      properties:
        type:
          type: string
          enum:
            - Visual story
        id:
          type: string
        uid:
          type:
            - string
            - 'null'
        title:
          type: string
        description:
          type: string
        linkedWorks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              title:
                type: string
              type:
                type: string
              workType:
                type: string
              thumbnailUrl:
                type: string
              date:
                type: string
              mainContributor:
                type: string
            required:
              - id
              - title
              - type
      required:
        - type
        - id
        - uid
        - title
        - linkedWorks
      title: Visual story
    AllResultsList:
      type: object
      properties:
        type:
          type: string
        pageSize:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalResults:
          type: integer
          format: int32
        prevPage:
          type: string
        nextPage:
          type: string
        results:
          type: array
          items:
            oneOf: &ref_0
              - $ref: '#/components/schemas/AddressablesArticle'
              - $ref: '#/components/schemas/AddressablesBook'
              - $ref: '#/components/schemas/AddressablesEvent'
              - $ref: '#/components/schemas/AddressablesExhibition'
              - $ref: '#/components/schemas/AddressablesExhibitionText'
              - $ref: '#/components/schemas/AddressablesExhibitionHighlightTourBSL'
              - $ref: '#/components/schemas/AddressablesExhibitionHighlightTourAudio'
              - $ref: '#/components/schemas/AddressablesPage'
              - $ref: '#/components/schemas/AddressablesProject'
              - $ref: '#/components/schemas/AddressablesSeason'
              - $ref: '#/components/schemas/AddressablesVisualStory'
      required:
        - type
        - pageSize
        - totalPages
        - totalResults
        - results
      title: AllResultList
      description: A paginated list of various types of editorial content
  parameters: {}
paths:
  /articles:
    get:
      operationId: getArticles
      tags:
        - Articles
      summary: /articles
      description: Returns a paginated list of articles
      parameters:
        - schema:
            type: string
            description: Full-text search query
          required: false
          description: Full-text search query
          name: query
          in: query
        - schema:
            type: string
            description: Which field to sort the results on
            enum:
              - relevance
              - publicationDate
          required: false
          description: Which field to sort the results on
          name: sort
          in: query
        - schema:
            type: string
            description: The order that the results should be returned in
            enum:
              - asc
              - desc
          required: false
          description: The order that the results should be returned in
          name: sortOrder
          in: query
        - schema:
            type: string
            description: What aggregated data in relation to the results should we return
            enum:
              - contributors.contributor
              - format
          required: false
          description: What aggregated data in relation to the results should we return
          name: aggregations
          in: query
        - schema:
            type: string
            description: Filter the articles by contributor
          required: false
          description: Filter the articles by contributor
          name: contributors.contributor
          in: query
        - schema:
            type: string
            description: Filter the articles by format
          required: false
          description: Filter the articles by format
          name: format
          in: query
        - schema:
            type: string
            format: date
            description: >-
              Return all articles with a publication date after and including
              this date.


              Can be used in conjunction with `publicationDate.to` to create a
              range.
          required: false
          description: >-
            Return all articles with a publication date after and including this
            date.


            Can be used in conjunction with `publicationDate.to` to create a
            range.
          name: publicationDate.from
          in: query
        - schema:
            type: string
            format: date
            description: >-
              Return all articles with a publication date before and including
              this date.


              Can be used in conjunction with `publicationDate.from` to create a
              range.
          required: false
          description: >-
            Return all articles with a publication date before and including
            this date.


            Can be used in conjunction with `publicationDate.from` to create a
            range.
          name: publicationDate.to
          in: query
        - schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
            description: >-
              Filter by linked catalogue work IDs. Accepts multiple work IDs via
              comma-separated values or repeated parameters.
          required: false
          description: >-
            Filter by linked catalogue work IDs. Accepts multiple work IDs via
            comma-separated values or repeated parameters.
          name: linkedWork
          in: query
        - schema:
            type: integer
            minimum: 1
            default: 1
            description: The page to return from the result list
          required: false
          description: The page to return from the result list
          name: page
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
            description: The number of results to return per page
          required: false
          description: The number of results to return per page
          name: pageSize
          in: query
      responses:
        '200':
          description: The articles
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ArticleResultList'
        '400':
          description: Bad Request Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: Gone Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
  /articles/{id}:
    get:
      operationId: getArticle
      tags:
        - Articles
      summary: /articles/{id}
      description: Returns a single article
      parameters:
        - schema:
            type: string
            description: The article to return
          required: true
          description: The article to return
          name: id
          in: path
      responses:
        '200':
          description: The article
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Article'
        '400':
          description: Bad Request Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: Gone Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
  /events:
    get:
      operationId: getEvents
      tags:
        - Events
      summary: /events
      description: Returns a paginated list of events
      parameters:
        - schema:
            type: string
            description: Full-text search query
          required: false
          description: Full-text search query
          name: query
          in: query
        - schema:
            type: string
            description: Which field to sort the results on
            enum:
              - relevance
              - times.startDateTime
          required: false
          description: Which field to sort the results on
          name: sort
          in: query
        - schema:
            type: string
            description: The order that the results should be returned in
            enum:
              - asc
              - desc
          required: false
          description: The order that the results should be returned in
          name: sortOrder
          in: query
        - schema:
            type: string
            description: What aggregated data in relation to the results should we return
            enum:
              - format
              - audience
              - interpretation
              - location
              - isAvailableOnline
              - timespan
          required: false
          description: What aggregated data in relation to the results should we return
          name: aggregations
          in: query
        - schema:
            type: string
            description: >-
              Filter events by format. Supports both inclusion and exclusion.


              - To include: `?format=workshop` or `?format=WcKmiysAACx_A8NR`

              - To exclude: `?format=!exhibitions`

              - Multiple values: `?format=workshop,screening`


              Supported aliases: exhibitions, workshop, gallery-tour, screening,
              performance, discussion, festival, late, shopping, walking-tour,
              study-day, send-workshop, seminar, symposium, chill-out,
              installation, game, session, relaxed-opening
          required: false
          description: >-
            Filter events by format. Supports both inclusion and exclusion.


            - To include: `?format=workshop` or `?format=WcKmiysAACx_A8NR`

            - To exclude: `?format=!exhibitions`

            - Multiple values: `?format=workshop,screening`


            Supported aliases: exhibitions, workshop, gallery-tour, screening,
            performance, discussion, festival, late, shopping, walking-tour,
            study-day, send-workshop, seminar, symposium, chill-out,
            installation, game, session, relaxed-opening
          name: format
          in: query
        - schema:
            type: string
            description: Filter the events by audience
          required: false
          description: Filter the events by audience
          name: audience
          in: query
        - schema:
            type: string
            description: Filter the events by interpretation
          required: false
          description: Filter the events by interpretation
          name: interpretation
          in: query
        - schema:
            type: string
            description: Filter the events by location
            enum:
              - online
              - in-our-building
          required: false
          description: Filter the events by location
          name: location
          in: query
        - schema:
            type: string
            enum:
              - 'true'
            description: Filter to catch-up events only
          required: false
          description: Filter to catch-up events only
          name: isAvailableOnline
          in: query
        - schema:
            type: string
            description: Filter events by timespan
            enum:
              - today
              - this-week
              - this-weekend
              - this-month
              - future
              - past
              - january
              - february
              - march
              - april
              - may
              - june
              - july
              - august
              - september
              - october
              - november
              - december
          required: false
          description: Filter events by timespan
          name: timespan
          in: query
        - schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
            description: >-
              Filter by linked catalogue work IDs. Accepts multiple work IDs via
              comma-separated values or repeated parameters.
          required: false
          description: >-
            Filter by linked catalogue work IDs. Accepts multiple work IDs via
            comma-separated values or repeated parameters.
          name: linkedWork
          in: query
        - schema:
            type: integer
            minimum: 1
            default: 1
            description: The page to return from the result list
          required: false
          description: The page to return from the result list
          name: page
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
            description: The number of results to return per page
          required: false
          description: The number of results to return per page
          name: pageSize
          in: query
      responses:
        '200':
          description: The events
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EventResultList'
        '400':
          description: Bad Request Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: Gone Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
  /events/{id}:
    get:
      operationId: getEvent
      tags:
        - Events
      summary: /events/{id}
      description: Returns a single event
      parameters:
        - schema:
            type: string
            description: The event to return
          required: true
          description: The event to return
          name: id
          in: path
      responses:
        '200':
          description: The event
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Event'
        '400':
          description: Bad Request Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: Gone Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
  /all:
    get:
      operationId: getAll
      tags:
        - All
      summary: /all
      description: >-
        Returns a paginated list of our non-catalogue content, i.e. (articles,
        books, events, exhibitions, exhibition texts, exhibition highlight tours
        (BSL), exhibition highlight tours (audio), pages, projects, seasons, and
        visual stories)
      parameters:
        - schema:
            type: string
            description: Full-text search query
          required: false
          description: Full-text search query
          name: query
          in: query
        - schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
            description: >-
              Filter by linked catalogue work IDs. Accepts multiple work IDs via
              comma-separated values or repeated parameters.
          required: false
          description: >-
            Filter by linked catalogue work IDs. Accepts multiple work IDs via
            comma-separated values or repeated parameters.
          name: linkedWork
          in: query
        - schema:
            type: integer
            minimum: 1
            default: 1
            description: The page to return from the result list
          required: false
          description: The page to return from the result list
          name: page
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
            description: The number of results to return per page
          required: false
          description: The number of results to return per page
          name: pageSize
          in: query
      responses:
        '200':
          description: The editorial content
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AllResultsList'
        '400':
          description: Bad Request Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: Gone Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
  /all/{id}:
    get:
      operationId: getAllById
      tags:
        - All
      summary: /all/{id}
      description: Returns a single piece of our non-catalogue content
      parameters:
        - schema:
            type: string
            description: The id of the content to return
          required: true
          description: The id of the content to return
          name: id
          in: path
      responses:
        '200':
          description: The content
          content:
            '*/*':
              schema:
                oneOf: *ref_0
        '400':
          description: Bad Request Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '410':
          description: Gone Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error'
webhooks: {}
