Arthur Properties API

Property records and everything hung off a property in Arthur - assets, certificates, conversations, general information, notes, units, tenancies, tasks, work orders, utilities, transactions and tags. 20 documented paths across GET, POST, PUT and DELETE.

Documentation

Specifications

Other Resources

OpenAPI Specification

arthur-online-properties-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Arthur Properties API
  version: 2.0.0
  description: Arthur Properties API - the properties surface of the Arthur API v2, the UK property management
    platform from Arthur Online (an Aareon company). Derived operation-for-operation from the provider's
    public Postman Documenter collection at https://developer.arthuronline.co.uk/. Every request is scoped
    to an Arthur entity via the mandatory X-EntityID header and authorised with an OAuth 2.0 Authorization
    Code access token.
  contact:
    name: Arthur Online API Support
    url: https://support.arthuronline.co.uk/
  termsOfService: https://www.arthuronline.co.uk/terms-and-conditions/
  x-derived-from: collections/arthur-online.postman_collection.json
  x-derived-by: API Evangelist enrichment pipeline
  x-derived-date: '2026-07-26'
servers:
- url: https://api.arthuronline.co.uk/v2
  description: Arthur API v2 production
security:
- arthurOAuth: []
tags:
- name: Assets
- name: Certificates
- name: Conversations
- name: General Information
- name: Notes
- name: Units
- name: Tenancies
- name: Tasks
- name: Workorders
- name: Utilities
- name: Transactions
- name: Tags
- name: Properties
paths:
  /properties/{property_id}/assets:
    get:
      operationId: listAssetsOnProperty
      summary: List Assets On Property
      tags:
      - Assets
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Direction'
      description: This endpoint retrieves a list of assets associated with the given property 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:
                - id: 123
                  name: ' Inventory'
                  description: ' Inventory'
                  created_by:
                    full_name: Brian Williams
                    company: Superfarm
                  file_type: PDF
                  mime_type: application/pdf
                  is_image: false
                  main_image: false
                  asset_type: Inventory
                  share_manager: true
                  share_owner: false
                  share_tenant: false
                  share_contractor: false
                  download_url: https://api.arthuronline.co.uk/public/assets/download/123123
                  view_url: https://api.arthuronline.co.uk/public/assets/view/123123
                  attachments:
                  - id: 123
                    model: Inventory
                    model_id: 123
                  - id: 123
                    model: Property
                    model_id: 123
                  created: '2020-06-23T11:13:02+01:00'
                  modified: '2020-06-23T11:13:02+01: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: createAssetOnProperty
      summary: Create Asset On Property
      tags:
      - Assets
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Strict'
      description: "Use this endpoint to create a new asset related to a property . The API will return\
        \ the saved data.\n\nSupported Fields \n The following fields are supported for the request body\n\
        \nField \n Example \n Type \n Required? \n\nasset_type \n image \n String \n No \n\nname \n inventory\
        \ \n String \n No \n\nshare_manager \n true \n Boolean \n No \n\nshare_tenant \n false \n Boolean\
        \ \n No \n\nshare_contractor \n true \n Boolean \n No \n\nshare_owner \n true \n Boolean \n No\
        \ \n\nfile \n base64 \n String (base64) \n Yes \n\nmime_type \n application/pdf \n String \n Yes\
        \ \n\nfile_name \n inventory \n String \n Yes"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                asset_type:
                  type: string
                  example: image
                name:
                  type: string
                  example: inventory
                share_manager:
                  type: boolean
                  example: true
                share_tenant:
                  type: boolean
                  example: false
                share_contractor:
                  type: boolean
                  example: true
                share_owner:
                  type: boolean
                  example: true
                file:
                  type: string
                  example: base64
                mime_type:
                  type: string
                  example: application/pdf
                file_name:
                  type: string
                  example: inventory
              required:
              - file
              - mime_type
              - file_name
            example:
              asset_type: image
              name: name of asset
              share_manager: true
              share_tenant: true
              share_owner: true
              share_contractor: true
              file: pdf file converted to base64 string
              mime_type: application/pdf
              file_name: inventory
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  data:
                    type: object
              example:
                status: 200
                data:
                  id: 123
                  name: name of asset
                  description: null
                  created_by:
                    full_name: API Documentation
                    company: API
                  file_type: PDF
                  mime_type: application/pdf
                  is_image: false
                  main_image: false
                  asset_type: Image
                  share_manager: true
                  share_owner: true
                  share_tenant: true
                  share_contractor: true
                  download_url: https://api.arthuronline.co.uk/public/assets/download/123123
                  view_url: https://api.arthuronline.co.uk/public/assets/view/123123
                  attachments:
                  - id: 123
                    model: Property
                    model_id: 123
                  created: '2020-07-03T09:25:52+01:00'
                  modified: '2020-07-03T09:25:52+01:00'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /properties/{property_id}/certificates:
    get:
      operationId: listCertificatesOnProperty
      summary: List Certificates On Property
      tags:
      - Certificates
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Direction'
      description: This endpoint retrieves a list of certificates associated with the given property 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:
                - id: 12345
                  type: Gas Safety
                  expiry_date: '2021-06-06'
                  status: Expired
                  missing: false
                  file:
                    id: 12345
                    download_url: https://asset.arthuronline.co.uk/download/{uuid}
                    mime_type: image/jpeg
                  property:
                    id: 1234
                    address: Multiple Unit Property, test, ABC 123
                  unit:
                    id: 123
                    address: Unit 1, test, ABC 123
                  tenancy:
                    id: 123456
                    ref: TE1000
                    address: Unit 1, test, ABC 123
                  notes: My Certificate Notes
                  share_manager: true
                  share_tenant: false
                  share_contractor: true
                  share_owner: false
                  created: '2021-01-01T12:00:00'
                  modified: '2021-01-01T12: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: addCertificateOnProperty
      summary: Add Certificate on Property
      tags:
      - Certificates
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Strict'
      description: "Use this endpoint to create a new certificate related to a  property . The API will\
        \ return the saved data.\n\nSupported Fields \n The following fields are supported for the request\
        \ body\n\nField \n Example \n Type \n Required? \n\ntype \n Boiler Service \n String \n Yes \n\
        \nexpiry_date \n 2023-12-05 \n String \n No \n\nnotes \n Fully assessed \n String \n No \n\nfile\
        \ \n Base64 \n String \n No \n\nmime_type \n application/pdf \n String \n No (Required if File\
        \ field is present) \n\nfile_name \n Certificate Document \n string \n No (Required if File field\
        \ is present)"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  example: Boiler Service
                expiry_date:
                  type: string
                  example: '2023-12-05'
                notes:
                  type: string
                  example: Fully assessed
                file:
                  type: string
                  example: Base64
                mime_type:
                  type: string
                  example: application/pdf
                file_name:
                  type: string
                  example: Certificate Document
              required:
              - type
            example:
              type: Boiler Service
              expiry_date: '2022-02-28'
              notes: Fully assessed
              file: JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==
              mime_type: application/pdf
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  data:
                    type: object
              example:
                status: 200
                data:
                  id: 875729
                  type: 'Boiler Service '
                  expiry_date: '2022-02-28'
                  status: Expired
                  missing: false
                  file:
                    id: 5740763
                    download_url: https://asset.arthuronline.co.uk/download/e62146f5-53a0-41df-a31b-b0f7b99644b9
                    mime_type: application/pdf
                  property:
                    id: 282789
                    address: My big property, Arthur House, 123 Property Street, Stevenage, Hertfordshire,
                      AB1 2CD
                  unit:
                    id: 0
                    address: ''
                  tenancy:
                    id: null
                    ref: null
                    address: null
                  notes: Fully assessed
                  share_manager: true
                  share_tenant: false
                  share_contractor: false
                  share_owner: false
                  created: '2023-02-28T14:50:47'
                  modified: '2023-02-28T14:50:47'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /properties/{property_id}/conversation_recipients:
    get:
      operationId: getRecipientsForProperty
      summary: Get Recipients for Property
      tags:
      - Conversations
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      description: This endpoint retrieves a list of conversation recipients on a property record, identified
        by its unique property_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'
  /properties/{property_id}/conversations:
    get:
      operationId: listConversationsOnProperty
      summary: List Conversations On Property
      tags:
      - Conversations
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Direction'
      description: This endpoint retrieves a list of conversations associated with the given property
        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: createConversationOnProperty
      summary: Create Conversation On Property
      tags:
      - Conversations
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Strict'
      description: "Use this endpoint to create a new conversation related to a  property . The API will\
        \ return the saved data.\n\nSupported Fields \n The following fields are supported for the request\
        \ body\n\nField \n Example \n Type \n Required? \n\nmessage \n It's done \n String \n Yes \n\n\
        subject \n Meeting tomorrow \n String \n Yes \n\nperson_ids \n ['1','2'] \n Array(String) \n Yes"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  type: string
                  example: It's done
                subject:
                  type: string
                  example: Meeting tomorrow
                person_ids:
                  type: array
                  items:
                    type: string
                  example: '[''1'',''2'']'
              required:
              - message
              - subject
              - person_ids
            example:
              message: Please clean the house on friday.
              subject: House duties
              person_ids:
              - '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'
  /properties/{property_id}/faqs:
    get:
      operationId: listGeneralInfoForProperty
      summary: List General Info for Property
      tags:
      - General Information
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Direction'
      description: This endpoint retrieves a list of general information records associated with the given
        property 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: addGeneralInfoForProperty
      summary: Add General Info for Property
      tags:
      - General Information
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Strict'
      description: "Use this endpoint to create a new general information record for the property . The\
        \ API will return the saved data and a unique general information ID.\n\nSupported Fields \n The\
        \ following fields are supported for the request body\n\nField \n Example \n Type \n\ntitle \n\
        \ Maintenance \n String \n\ndescription \n Weekly clean \n String \n\nfaq_type \n General \n String\
        \ \n\nshare_owner \n true \n Boolean \n\nshare_tenant \n true \n Boolean \n\nshare_contractor\
        \ \n false \n Boolean"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  example: Maintenance
                description:
                  type: string
                  example: Weekly clean
                faq_type:
                  type: string
                  example: General
                share_owner:
                  type: boolean
                  example: true
                share_tenant:
                  type: boolean
                  example: true
                share_contractor:
                  type: boolean
                  example: false
            example:
              title: Maintenance - Weekly Clean
              description: Once a week the main hall will be cleaned
              faq_type: General
              share_owner: true
              share_tenant: true
              share_contractor: true
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                  data:
                    type: object
              example:
                status: 200
                data:
                  id: 35767
                  property_id: 282789
                  unit_id: null
                  title: Maintenance - Weekly Clean
                  faq_type: General
                  description: Once a week the main hall will be cleaned
                  created_by:
                    id: 1817080
                    full_name: API Documentation
                  share_owner: true
                  share_contractor: true
                  share_tenant: true
                  modified: '2023-02-28T13:33:14'
                  created: '2023-02-28T13:33:14'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /properties/{property_id}/notes:
    get:
      operationId: listNotesOnProperty
      summary: List Notes On Property
      tags:
      - Notes
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Direction'
      description: This endpoint retrieves a list of notes associated with the given property 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: addNoteOnProperty
      summary: Add Note On Property
      tags:
      - Notes
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Strict'
      description: "Use this endpoint to create a new note record for the property . The API will return\
        \ the saved data and a unique note ID.\n\nSupported Fields \n The following fields are supported\
        \ for the request body\n\nField \n Example \n Type \n Required? \n\ncontent \n Moving away \n\
        \ String \n Yes"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                  example: Moving away
              required:
              - content
            example:
              content: Remember this note
      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'
  /properties/{property_id}/notes/{note_id}:
    get:
      operationId: viewNoteOnProperty
      summary: View Note On Property
      tags:
      - Notes
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - name: note_id
        in: path
        required: true
        description: Arthur note id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      description: This API endpoint retrieves the details of a single note , identified by its unique 
        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'
    put:
      operationId: updateNoteOnProperty
      summary: Update Note On Property
      tags:
      - Notes
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - name: note_id
        in: path
        required: true
        description: Arthur note id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      - $ref: '#/components/parameters/Strict'
      description: "This endpoint updates an existing note using the same fields as the 'Add Note' endpoint.\
        \ The API will return the updated data for the property 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\ncontent \n Moving away \n String \n No"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                  example: Moving away
            example:
              content: Updated Note
      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: deleteNoteOnProperty
      summary: Delete Note On Property
      tags:
      - Notes
      parameters:
      - name: property_id
        in: path
        required: true
        description: Arthur property id.
        schema:
          type: integer
      - name: note_id
        in: path
        required: true
        description: Arthur note id.
        schema:
          type: integer
      - $ref: '#/components/parameters/EntityId'
      description: This endpoint deletes an existing note using the note id .
      responses:
        '200':
          description: The request was completed successfully without errors.
          content:
            application/json:
              schema:
                type: object
        '4

# --- truncated at 32 KB (91 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/arthur-online/refs/heads/main/openapi/arthur-online-properties-openapi.yml