openapi: 3.2.0 info: title: Arthur Online Conversations 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 Conversations across 6 of this provider''s published API definitions: arthur-online-applicants-openapi.yml, arthur-online-conversations-openapi.yml, arthur-online-properties-openapi.yml, arthur-online-tenancies-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: Conversations paths: /applicants/{applicant_id}/conversation_recipients: get: operationId: getRecipientsForApplicant summary: Get Recipients for Applicant tags: - Conversations parameters: - name: applicant_id in: path required: true description: Arthur applicant id. schema: type: integer - $ref: '#/components/parameters/EntityId' description: This endpoint retrieves a list of conversation recipients associated with the given applicant 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 /applicants/{applicant_id}/conversations: get: operationId: listConversationsOnApplicant summary: List Conversations On Applicant tags: - Conversations parameters: - name: applicant_id in: path required: true description: Arthur applicant 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 applicant 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: createConversationOnApplicant summary: Create Conversation On Applicant tags: - Conversations 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 conversation related to a  applicant . 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\nsubject \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' servers: - url: https://api.arthuronline.co.uk/v2 description: Arthur API v2 production /conversations/{conversation_id}: get: operationId: listConversations summary: List Conversations tags: - Conversations parameters: - name: conversation_id in: path required: true description: Arthur conversation 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. 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 title: Subject 1 message_count: 1 model: '' model_id: null created_by: id: 123 full_name: Ronnie Wilson recipients: - id: 123 full_name: Kevin Wilson last_comment: message: Sure! created: '2020-04-22T12:03:28+01:00' full_name: Ronnie Wilson created: '2020-04-22T12:03:28+01:00' modified: '2020-04-22T12:03:28+01:00' - id: 123 title: Subject 2 message_count: 1 model: Property model_id: 1 created_by: id: 123 full_name: Ronnie Wilson recipients: - id: 123 full_name: Kevin Wilson last_comment: message: Remember to clean on friday. created: '2020-04-23T11:49:54+01:00' full_name: Ronnie Wilson created: '2020-04-23T11:49:54+01:00' modified: '2020-04-30T11:49:54+01:00' pagination: page: 1 current: 3 count: 2 pageCount: 1 limit: 20 '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 /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' servers: - url: https://api.arthuronline.co.uk/v2 description: Arthur API v2 production /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\nsubject \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' servers: - url: https://api.arthuronline.co.uk/v2 description: Arthur API v2 production /tenancies/{tenancy_id}/conversation_recipients: get: operationId: getRecipientsForTenancy summary: Get Recipients for Tenancy tags: - Conversations parameters: - name: tenancy_id in: path required: true description: Arthur tenancy id. schema: type: integer - $ref: '#/components/parameters/EntityId' description: This endpoint retrieves a list of conversation recipients on a tenancy record, identified by its unique  tenancy_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 /tenancies/{tenancy_id}/conversations: get: operationId: listConversationOnTenancy summary: List Conversation On Tenancy tags: - Conversations parameters: - name: tenancy_id in: path required: true description: Arthur tenancy 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 on a tenancy, identified by its unique  tenancy_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}/conversations: post: operationId: createConversationOnTenancy summary: Create Conversation On Tenancy tags: - Conversations parameters: - name: viewing_id in: path required: true description: Arthur viewing id. schema: type: integer - $ref: '#/components/parameters/EntityId' - $ref: '#/components/parameters/Strict' description: "Use this endpoint to create a new conversation on a tenancy record. The API will return the saved data and a unique Conversation ID.\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\nsubject \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' get: operationId: listConversationsOnViewing summary: List Conversations On Viewing tags: - Conversations parameters: - name: viewing_id in: path required: true description: Arthur viewing 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 on a viewing, identified by its unique  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 /units/{unit_id}/conversation_recipients: get: operationId: getRecipientsForUnit summary: Get Recipients for Unit tags: - Conversations parameters: - name: unit_id in: path required: true description: Arthur unit id. schema: type: integer - $ref: '#/components/parameters/EntityId' description: This endpoint retrieves a list of conversation recipients on a unit record, identified by its unique  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 /units/{unit_id}/conversations: get: operationId: listConversationOnUnit summary: List Conversation On Unit tags: - Conversations parameters: - name: unit_id in: path required: true description: Arthur unit 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 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: createConversationOnUnit summary: Create Conversation On Unit tags: - Conversations parameters: - name: unit_id in: path required: true description: Arthur unit id. schema: type: integer - $ref: '#/components/parameters/EntityId' - $ref: '#/components/parameters/Strict' description: "Use this endpoint to create a new conversation related to a unit . 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\nsubject \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' servers: - url: https://api.arthuronline.co.uk/v2 description: Arthur API v2 production /viewings/{viewing_id}/conversation_recipients: get: operationId: getRecipientsForViewing summary: Get Recipients for Viewing tags: - Conversations parameters: - name: viewing_id in: path required: true description: Arthur viewing id. schema: type: integer - $ref: '#/components/parameters/EntityId' description: This endpoint retrieves a list of conversation recipients on a viewing record, identified by its unique 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 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: 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 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 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-conversations-openapi.yml - arthur-online-properties-openapi.yml - arthur-online-tenancies-openapi.yml - arthur-online-units-openapi.yml - arthur-online-viewings-openapi.yml