Arthur Online Viewings API

The Viewings API from Arthur Online — 5 operation(s) for viewings.

Operations 10

GET /applicants/{applicant_id}/viewings List Viewings On Applicant #
POST /applicants/{applicant_id}/viewings Add Viewing On Applicant #
GET /units/{unit_id}/viewings List Viewings on Unit #
POST /units/{unit_id}/viewings Add Viewing on Unit #
GET /viewings List Viewings #
POST /viewings Add Viewing #
GET /viewings/{viewing_id} View Viewing #
PUT /viewings/{viewing_id} Update Viewing #
DELETE /viewings/{viewing_id} Delete Viewing #
PUT /viewings/{viewing_id}/status Update Viewing Status #

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/arthur-online-viewings-api"
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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

arthur-online-viewings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Arthur Online Viewings API
  version: 2.0.0
  contact:
    name: Arthur Online API Support
    url: https://support.arthuronline.co.uk/
  termsOfService: https://www.arthuronline.co.uk/terms-and-conditions/
  x-derived-by: API Evangelist enrichment pipeline
  x-derived-date: '2026-07-26'
  x-derived-from: collections/arthur-online.postman_collection.json
  description: 'Operations tagged Viewings across 3 of this provider''s published API definitions: arthur-online-applicants-openapi.yml, arthur-online-units-openapi.yml, arthur-online-viewings-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.arthuronline.co.uk/v2
  description: Arthur API v2 production
security:
- arthurOAuth: []
tags:
- name: Viewings
paths:
  /applicants/{applicant_id}/viewings:
    get:
      operationId: listViewingsOnApplicant
      summary: List Viewings On Applicant
      tags:
      - Viewings
      parameters:
      - name: applicant_id
        in: path
        required: true
        description: Arthur applicant id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - name: status
        in: query
        required: false
        schema:
          type: string
        description: Filter the viewings by status.
      - name: assignedTo
        in: query
        required: false
        schema:
          type: string
        description: Filter the viewings by assigned to ID.
      - name: viewingDate
        in: query
        required: false
        schema:
          type: string
        description: Filter the viewings by the date.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Direction'
      description: This endpoint retrieves a list of viewings associated with the given applicant ID.
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  data:
                    type: array
                    items:
                      type: object
                  pagination:
                    $ref: '#/components/schemas/Pagination'
              example:
                status: 200
                data:
                - unit_id: '1'
                  applicant_id: '11'
                  viewing_status: Confirmed
                  viewing_date: '2019-05-28'
                  viewing_time: '12:30'
                  offer_amount: '500.00'
                  offer_frequency: Weekly
                  move_in_date: '2019-07-01'
                  assigned_to_ids:
                  - '1234'
                  source: my website
                  notes: this is an applicant
                  modified: '2019-05-28T12:00:00+00:00'
                  created: '2019-05-28T12:00:00+00:00'
                pagination:
                  page: 1
                  current: 1
                  count: 1
                  pageCount: 1
                  limit: 20
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: addViewingOnApplicant
      summary: Add Viewing On Applicant
      tags:
      - Viewings
      parameters:
      - name: applicant_id
        in: path
        required: true
        description: Arthur applicant id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Strict'
      description: "Use this endpoint to create a new viewing record for the  applicant . The API will return the saved data and a unique applicant ID.\n\nSupported Fields \n The following fields are supported for the request body\n\nField \n Example \n Type \n Default \n Required? \n\nunit_id \n 123 \n Integer \n\nYes \n\nviewing_date \n 2019-05-28 \n Date \n\nNo \n\nviewing_time \n 00:00 \n Time \n\nNo \n\noffer_amount \n 250.00 \n Float \n\nNo \n\noffer_frequency \n Week \n Enum \n Month \n No \n\nmove_in_date \n 2019-07-01 \n Date \n\nNo \n\nassigned_to_ids \n [123,124] \n Array (Integer) \n\nNo \n\nsource \n My website \n Simple \n\nNo \n\nnotes \n Landlord will be present for this viewing. \n String \n\nNo"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                unit_id:
                  type: integer
                  example: 123
                viewing_date:
                  type: string
                  format: date
                  example: '2019-05-28'
                viewing_time:
                  type: string
                  example: 00:00
                offer_amount:
                  type: number
                  example: 250.0
                offer_frequency:
                  type: string
                  example: Week
                  default: Month
                  description: Enum - see the Types API for the allowed values
                move_in_date:
                  type: string
                  format: date
                  example: '2019-07-01'
                assigned_to_ids:
                  type: array
                  items:
                    type: integer
                  example: '[123,124]'
                source:
                  type: string
                  example: My website
                notes:
                  type: string
                  example: Landlord will be present for this viewing.
              required:
              - unit_id
            example:
              unit_id: '12'
              viewing_date: '2021-10-10'
              viewing_time: '14:23'
              offer_amount: '1512'
              offer_frequency: per week
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://api.arthuronline.co.uk/v2
      description: Arthur API v2 production
  /units/{unit_id}/viewings:
    get:
      operationId: listViewingsOnUnit
      summary: List Viewings on Unit
      tags:
      - Viewings
      parameters:
      - name: unit_id
        in: path
        required: true
        description: Arthur unit id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - name: status
        in: query
        required: false
        schema:
          type: string
        description: Filter the viewings by status.
      - name: assignedTo
        in: query
        required: false
        schema:
          type: string
        description: Filter the viewings by assigned to ID.
      - name: viewingDate
        in: query
        required: false
        schema:
          type: string
        description: Filter the viewings by the date.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Direction'
      description: This endpoint retrieves a list of viewings associated with the given unit ID.
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: addViewingOnUnit
      summary: Add Viewing on Unit
      tags:
      - Viewings
      parameters:
      - name: unit_id
        in: path
        required: true
        description: Arthur unit id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - name: strict
        in: query
        required: false
        schema:
          type: string
        description: Any simple fields that cannot be found will return a validation error, instead of creating a new value. E.g. source
        example: 'true'
      description: "Use this endpoint to create a new viewing record for the  unit . The API will return the saved data and a unique viewing ID.\n\nSupported Fields \n The following fields are supported for the request body\n\nField \n Example \n Type \n Default \n Required? \n\napplicant_id \n 123 \n Integer \n\nYes \n\nviewing_date \n 2019-05-28 \n Date \n\nNo \n\nviewing_time \n 00:00 \n Time \n\nNo \n\noffer_amount \n 250.00 \n Float \n\nNo \n\noffer_frequency \n Week \n Enum \n Month \n No \n\nmove_in_date \n 2019-07-01 \n Date \n\nNo \n\nassigned_to_ids \n [123,124] \n Array (Integer) \n\nNo \n\nsource \n My website \n Simple \n\nNo \n\nnotes \n Landlord will be present for this viewing. \n String \n\nNo"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                applicant_id:
                  type: integer
                  example: 123
                viewing_date:
                  type: string
                  format: date
                  example: '2019-05-28'
                viewing_time:
                  type: string
                  example: 00:00
                offer_amount:
                  type: number
                  example: 250.0
                offer_frequency:
                  type: string
                  example: Week
                  default: Month
                  description: Enum - see the Types API for the allowed values
                move_in_date:
                  type: string
                  format: date
                  example: '2019-07-01'
                assigned_to_ids:
                  type: array
                  items:
                    type: integer
                  example: '[123,124]'
                source:
                  type: string
                  example: My website
                notes:
                  type: string
                  example: Landlord will be present for this viewing.
              required:
              - applicant_id
            example:
              applicant_id: '12345'
              viewing_date: '2019-05-28'
              viewing_time: '12:30'
              offer_amount: '500.00'
              offer_frequency: Weekly
              move_in_date: '2019-07-01'
              assigned_to_ids:
              - '1234'
              source: my website
              notes: this is an applicant
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://api.arthuronline.co.uk/v2
      description: Arthur API v2 production
  /viewings:
    get:
      operationId: listViewings
      summary: List Viewings
      tags:
      - Viewings
      parameters:
      - $ref: '#/components/parameters/EntityId'
      - name: unit_id
        in: query
        required: false
        schema:
          type: string
        description: Filter by assigned unit
      - name: status
        in: query
        required: false
        schema:
          type: string
        description: Filter viewings by status.
      - name: assigned_to
        in: query
        required: false
        schema:
          type: string
        description: Filter the viewings by assigned to ID.
      - name: tags
        in: query
        required: false
        schema:
          type: string
        description: Filter viewings by tags
      - name: assigned_to_me
        in: query
        required: false
        schema:
          type: string
        description: To display only viewings assigned to you, set this to true
      - name: date_from
        in: query
        required: false
        schema:
          type: string
        description: Filters viewings by the date, starting from the specified date. Use the format yyyy-mm-dd to input the date
      - name: date_to
        in: query
        required: false
        schema:
          type: string
        description: Filters viewings by the date, up to the specified date. Use the format yyyy-mm-dd to input the date
      - name: viewing_date
        in: query
        required: false
        schema:
          type: string
        description: Filter by a viewing date. Use the format yyyy-mm-dd to input the date
      - name: offer_amount
        in: query
        required: false
        schema:
          type: string
        description: Filter by the amount offered
      - name: offer_frequency
        in: query
        required: false
        schema:
          type: string
        description: Filter by the amount offered frequency
      - name: _q
        in: query
        required: false
        schema:
          type: string
        description: Filter by a keyword
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Direction'
      description: 'This endpoint retrieves a list of viewings.


        See available filters below to customize the list of viewings returned.'
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: addViewing
      summary: Add Viewing
      tags:
      - Viewings
      parameters:
      - $ref: '#/components/parameters/EntityId'
      - name: strict
        in: query
        required: false
        schema:
          type: string
        description: Any simple fields that cannot be found will return a validation error, instead of creating a new value. E.g. source
        example: 'true'
      description: "Use this endpoint to create a new viewing record. The API will return the saved data and a unique viewing ID.\n\nSupported Fields \n The following fields are supported for the request body\n\nField \n Example \n Type \n Default \n Required? \n\napplicant_id \n 123 \n Integer \n\nYes if applicant_ids not provided. \n\napplicant_ids \n [\"123\"] \n Array(Strings) \n\nYes if applicant_id not provided. \n\nunit_id \n 1234 \n Integer \n\nYes \n\nviewing_date \n \"1999-12-12\" \n Date \n\nNo \n\nviewing_time \n \"14:31\" \n Time \n\nNo \n\nduration \n 15 \n Integer \n\nNo \n\noffer_amount \n 1250.00 \n Float \n\nNo \n\nmove_in_date \n \"1999-12-13\" \n Date \n\nNo \n\nassigned_to_ids \n [\"123\",\"321\"] \n Array(Strings) \n\nNo \n\ntags \n [\"cheap rent\"] \n Array(Strings) \n\nNo \n\nsource \n \"gumtree\" \n String \n\nNo \n\nviewing_notes \n \"3 month contract\" \n String \n\nNo \n\nviewing_status \n \"Confirmed\" \n String \n Confirmed \n No \n\nYou can use the \"new_applicants\" object to simultaneously create or update applicants. This will replace the \"applicant_id\" and \"applicant_ids\" fields. Here's an example of how to use it:\n\nTo create a new applicant, include the following information within the \"new_applicants\" object:\n\n\"new_applicants\": [\n {\n \"first_name\": \"Matej\",\n \"last_name\": \"Cubbit\",\n \"email\": \"matej123@gmail.com\"\n }\n]\n\nSupported Fields \n The following fields are supported for the request body\n\nField \n Example \n Type \n Required? \n\napplicant_id \n 123 \n Integer \n No \n\nfirst_name \n \"Michael\" \n String \n Yes / if applicant_id not provided \n\nlast_name \n \"Cubitt\" \n String \n Yes / if applicant_id not provided \n\nemail \n \" michael123@gmail.com \n String \n Yes / if applicant_id not provided \n\ndate_of_birth \n \"1999-12-12\" \n Date \n No \n\nmobile \n \"0201230201\" \n String \n No \n\nphone_home \n \"0201230201\" \n String \n No \n\nphone_work \n \"0201230201\" \n String \n No \n\nhas_guarantor \n true \n Boolean \n No \n\nguarantor_first_name \n \"Brian\" \n String \n No \n\nguarantor_last_name \n \"Oneil\" \n String \n No \n\nguarantor_mobile \n \"0201230201\" \n String \n No \n\nguarantor_email \n \" myguarantor@gmail.com \n String \n No"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                applicant_id:
                  type: integer
                  example: 123
                applicant_ids:
                  type: array
                  items:
                    type: string
                  example: '["123"]'
                unit_id:
                  type: integer
                  example: 1234
                viewing_date:
                  type: string
                  format: date
                  example: '"1999-12-12"'
                viewing_time:
                  type: string
                  example: '"14:31"'
                duration:
                  type: integer
                  example: 15
                offer_amount:
                  type: number
                  example: 1250.0
                move_in_date:
                  type: string
                  format: date
                  example: '"1999-12-13"'
                assigned_to_ids:
                  type: array
                  items:
                    type: string
                  example: '["123","321"]'
                tags:
                  type: array
                  items:
                    type: string
                  example: '["cheap rent"]'
                source:
                  type: string
                  example: '"gumtree"'
                viewing_notes:
                  type: string
                  example: '"3 month contract"'
                viewing_status:
                  type: string
                  example: '"Confirmed"'
                  default: Confirmed
                first_name:
                  type: string
                  example: '"Michael"'
                last_name:
                  type: string
                  example: '"Cubitt"'
                email:
                  type: string
                  example: '" michael123@gmail.com'
                date_of_birth:
                  type: string
                  format: date
                  example: '"1999-12-12"'
                mobile:
                  type: string
                  example: '"0201230201"'
                phone_home:
                  type: string
                  example: '"0201230201"'
                phone_work:
                  type: string
                  example: '"0201230201"'
                has_guarantor:
                  type: boolean
                  example: true
                guarantor_first_name:
                  type: string
                  example: '"Brian"'
                guarantor_last_name:
                  type: string
                  example: '"Oneil"'
                guarantor_mobile:
                  type: string
                  example: '"0201230201"'
                guarantor_email:
                  type: string
                  example: '" myguarantor@gmail.com'
              required:
              - unit_id
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://api.arthuronline.co.uk/v2
      description: Arthur API v2 production
  /viewings/{viewing_id}:
    get:
      operationId: viewViewing
      summary: View Viewing
      tags:
      - Viewings
      parameters:
      - name: viewing_id
        in: path
        required: true
        description: Arthur viewing id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      description: 'This API endpoint retrieves the details of a single viewing, identified by its unique  viewing_id .


        Use this endpoint to view the specific details of a viewing.'
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateViewing
      summary: Update Viewing
      tags:
      - Viewings
      parameters:
      - name: viewing_id
        in: path
        required: true
        description: Arthur viewing id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - name: strict
        in: query
        required: false
        schema:
          type: string
        description: Any simple fields that cannot be found will return a validation error, instead of creating a new value. E.g. source
        example: 'true'
      description: "This endpoint updates an existing viewing using the same fields as the 'Add Viewing' endpoint, excluding unit_id and applicant_id . Any fields that are not provided will not be changed.\n\nThe API will return the updated data for the viewing in the response.\n\nSupported Fields \n The following fields are supported for the request body\n\nField \n Example \n Type \n Required? \n\nviewing_date \n \"2020-10-10\" \n Date \n No \n\nviewing_time \n \"15:30\" \n Time \n No \n\nduration \n 15 \n Integer \n No \n\noffer_amount \n 1050.30 \n float \n No \n\noffer_frequency \n \"per week\" \n string \n No \n\nmove_in_date \n \"2020-10-10\" \n Date \n No \n\nassigned_to_ids \n [\"12\"] \n Array(Strings) \n No \n\ntags \n [\"tag1\"] \n Array(Strings) \n No \n\nsource \n facebook \n String \n No \n\nviewing_notes \n \"lorem ipsum\" \n String \n No \n\nviewing_status \n \"Confirmed\" \n String \n No"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                viewing_date:
                  type: string
                  format: date
                  example: '"2020-10-10"'
                viewing_time:
                  type: string
                  example: '"15:30"'
                duration:
                  type: integer
                  example: 15
                offer_amount:
                  type: number
                  example: 1050.3
                offer_frequency:
                  type: string
                  example: '"per week"'
                move_in_date:
                  type: string
                  format: date
                  example: '"2020-10-10"'
                assigned_to_ids:
                  type: array
                  items:
                    type: string
                  example: '["12"]'
                tags:
                  type: array
                  items:
                    type: string
                  example: '["tag1"]'
                source:
                  type: string
                  example: facebook
                viewing_notes:
                  type: string
                  example: '"lorem ipsum"'
                viewing_status:
                  type: string
                  example: '"Confirmed"'
            example:
              viewing_date: '2020-10-21'
              viewing_time: '14:21'
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteViewing
      summary: Delete Viewing
      tags:
      - Viewings
      parameters:
      - name: viewing_id
        in: path
        required: true
        description: Arthur viewing id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      description: This endpoint deletes an existing viewing record using the viewing id .
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://api.arthuronline.co.uk/v2
      description: Arthur API v2 production
  /viewings/{viewing_id}/status:
    put:
      operationId: updateViewingStatus
      summary: Update Viewing Status
      tags:
      - Viewings
      parameters:
      - name: viewing_id
        in: path
        required: true
        description: Arthur viewing id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - name: strict
        in: query
        required: false
        schema:
          type: string
        description: Any simple fields that cannot be found will return a validation error, instead of creating a new value. E.g. source
        example: 'true'
      description: "This endpoint updates an existing viewing status. The API will return the updated data for the viewing in the response.\n\nSupported Fields \n The following fields are supported for the request body\n\nField \n Example \n Type \n Required? \n\nstatus \n \"Confirmed\" \n String \n Yes"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  example: '"Confirmed"'
              required:
              - status
            example:
              status: Confitmed
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://api.arthuronline.co.uk/v2
      description: Arthur API v2 production
components:
  parameters:
    Direction:
      name: direction
      in: query
      required: false
      description: Sort direction.
      schema:
        type: string
        enum:
        - ASC
        - DESC
    Sort:
      name: sort
      in: query
      required: false
      description: Field to sort the collection by.
      schema:
        type: string
    Strict:
      name: strict
      in: query
      required: false
      description: When true, abort the request instead of auto-creating an unknown Simple type. POST and PUT only.
      schema:
        type: boolean
    EntityId:
      name: X-EntityID
      in: header
      required: true
      description: The Arthur entity (account) the request is scoped to. Mandatory on every API call.
      schema:
        type: string
    Page:
      name: page
      in: query
      required: false
      description: Page number, between 1 and the total number of pages.
      schema:
        type: integer
        minimum: 1
    Limit:
      name: limit
      in: query
      required: false
      description: Items per page, between 1 and 100.
      schema:
        type: integer
        minimum: 1
        maximum: 100
  responses:
    BadRequest:
      description: The request was invalid or malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The request was sent to a location that does not exist in the API.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing, invalid or expired access token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: expired_token
            message: This token has expired.
  schemas:
    Pagination:
      type: object
      description: Pagination block returned on every list response.
      properties:
        page:
          type: integer
        current:
          type: integer
        count:
          type: integer
        pageCount:
          type: integer
        limit:
          type: integer
    Error:
      type: object
      description: Arthur error envelope.
      properties:
        status:
          type: integer
        error:
          type: string
          description: Machine-readable error code, e.g. expired_token.
        message:
          type: string
  securitySchemes:
    arthurOAuth:
      type: oauth2
      description: OAuth 2.0 Authorization Code flow. Access tokens are valid for 14 days; refresh tokens for 21 days. Register an application in Arthur Settings > OAuth Applications to obtain a client_id and client_secret.
      flows:
        authorizationCode:
          authorizationUrl: https://auth.arthuronline.co.uk/oauth/authorize
          tokenUrl: https://auth.arthuronline.co.uk/oauth/token
          refreshUrl: https://auth.arthuronline.co.uk/oauth/token
          scopes: {}
x-refined-from:
- arthur-online-applicants-openapi.yml
- arthur-online-units-openapi.yml
- arthur-online-viewings-openapi.yml