openapi: 3.1.0 info: title: Arthur Tenants API version: 2.0.0 description: Arthur Tenants API - the tenants 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: Invite - name: Tenants paths: /tenants/{tenant_id}/invite: put: operationId: inviteTenant summary: Invite Tenant tags: - Invite parameters: - $ref: '#/components/parameters/EntityId' - $ref: '#/components/parameters/Strict' description: 'This API endpoint can be used to initiate an automated process for inviting a tenant who is identified by their unique tenant_id . Once the API call is made, the response will contain the tenant''s details as well as an "invite_code".' 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' /tenants: get: operationId: listTenants summary: List Tenants tags: - Tenants parameters: - $ref: '#/components/parameters/EntityId' - name: property_id in: query required: false schema: type: string description: Filter by the property - name: unit_id in: query required: false schema: type: string description: Filter by the unit - name: tenancy_id in: query required: false schema: type: string description: Filter by the tenancy - name: email in: query required: false schema: type: string description: Filter by tenant email - name: phone_home in: query required: false schema: type: string description: Filter by phone home number - name: phone_work in: query required: false schema: type: string description: Filter by phone work number - name: mobile in: query required: false schema: type: string description: Fily by mobile number - name: full_address in: query required: false schema: type: string description: Filter by the full address of the property - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Sort' - $ref: '#/components/parameters/Direction' description: 'This retrieves a list of tenants. See available filters below to customize the list of tenants 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: addTenant summary: Add Tenant tags: - Tenants 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 tenant. The API will return the saved data and a\ \ unique tenant ID.\n\nSupported Fields \n The following fields are supported for the request\ \ body\n\nField \n Example \n Type \n Required? \n\ntenancy_id \n 123 \n Integer \n Yes \n\nmain_tenant\ \ \n True \n Boolean \n No \n\nmove_in_date \n 2019-05-28 \n Date \n No \n\nmove_out_date \n 2019-06-28\ \ \n Time \n No \n\ntitle \n Mr \n Enum \n No \n\nfirst_name \n Ryan \n String \n No \n\nlast_name\ \ \n Cullen \n String \n No \n\ndate_of_birth \n 1995-01-21 \n Date \n No \n\ngender \n Male \n\ \ Enum \n No \n\ncitizen_type \n 1 \n Enum \n No \n\nemail \n email@gmail.com \n String \n No\ \ \n\ncompany_name \n MyCompany \n Strong \n No \n\ncompant_address_name \n Address \n String\ \ \n No \n\ncompany_address1 \n Boundry Road \n String \n No \n\ncompany_address2 \n Wren Court\ \ \n String \n No \n\ncompany_city \n London \n String \n No \n\ncompany_postcode \n SW94DA \n\ \ String \n No \n\ncompany_county \n City of London \n String \n No \n\ncompany_country \n England\ \ \n String \n No \n\nphone_home \n 029302932 \n String \n No \n\nphone_work \n 029382928 \n String\ \ \n No \n\nmobile \n 020192029 \n String \n No \n\nresidential_number \n 201 \n String \n No\ \ \n\nvisa_number \n 120-123 \n String \n No \n\nvisa_years \n 3 \n String \n No \n\nvisa_type\ \ \n Tier 2 \n Enum \n No \n\ncountry_of_origin \n Wales \n String \n No \n\nni_number \n KS 01\ \ AK 11 F \n String \n No \n\nkin_mobile \n 029302991 \n String \n No \n\nkin_last_name \n Cullen\ \ \n String \n No \n\nkin_first_name \n Monica \n String \n No \n\nkin_phone_work \n 029320191\ \ \n String \n No \n\nstudent_status \n Full-time \n String \n No \n\nuniversity \n Oxford \n\ \ String \n No \n\ncourse_name \n Doe Studies \n String \n No \n\ncourse_id \n 1 \n String \n\ \ No \n\ncourse_year \n 2 \n String \n No \n\nemployment_company_name \n Lorem \n String \n No\ \ \n\nemployment_address1 \n Address First Line \n String \n No \n\nemployment_address2 \n Address\ \ Second Line \n String \n No \n\nemployment_city \n Liverpool \n String \n No \n\nemployment_postcode\ \ \n LN91LS \n String \n No \n\nemployment_county \n Norfolk \n String \n No \n\nemployment_contact_name\ \ \n Grace \n String \n No \n\nemployment_contact_number \n 0239203900 \n String \n No \n\nemployment_salary\ \ \n 90000 \n String \n No \n\nemployment_length \n 5 years \n String \n No \n\nhousing_benefit_council\ \ \n Borought \n String \n No \n\nhousing_benefit_number \n 19203 \n String \n No \n\nguarantor_first_name\ \ \n Nicolas \n String \n No \n\nguarantor_last_name \n Cage \n String \n No \n\nguarantor_date_of_birth\ \ \n 1911-02-12 \n String \n No \n\nguarantor_address1 \n Address first line \n String \n No \n\ \nguarantor_address2 \n Address second line \n String \n No \n\nguarantor_city \n London \n String\ \ \n No \n\nguarantor_postcode \n XP91AP \n String \n No \n\nguarantor_county \n Suffolk \n String\ \ \n No \n\nguarantor_country \n England \n String \n No \n\nguarantor_phone_home \n 028392871\ \ \n String \n No \n\nguarantor_phone_work \n 028191282 \n String \n No \n\nguarantor_mobile \n\ \ 029384383 \n String \n No \n\nguarantor_email \n guarantor@email.com \n String \n No \n\nguarantor_relation\ \ \n Brother \n String \n No \n\nguarantor_home_owner \n Home owner outright, Home owner with\ \ mortgage, Rented accommodation \n String \n No \n\nguarantor_profession \n Teacher \n String\ \ \n No \n\nbank_name \n Barclays \n String \n No \n\nbank_address1 \n Address first line \n String\ \ \n No \n\nbank_address2 \n Address second line \n String \n No \n\nbank_city \n Romford \n String\ \ \n No \n\nbank_county \n Essex \n String \n No \n\nbank_postcode \n FS18LA \n String \n No \n\ \nref_name \n Ref Name \n String \n No \n\nref_address1 \n Ref First Line \n String \n No \n\n\ ref_address2 \n Ref Second Line \n String \n No \n\nref_county \n Ref Hertfordshire \n String\ \ \n No \n\nref_city \n Ref City \n String \n No \n\nref_postcode \n Ref Postcode \n String \n\ \ No \n\nref_contact_number \n 029392832 \n String \n No \n\nref_relation \n Mother \n String\ \ \n No \n\napplicant_note \n Note to remember \n String \n No \n\nmanager_note \n Manager note\ \ \n String \n No" requestBody: required: true content: application/json: schema: type: object properties: tenancy_id: type: integer example: 123 main_tenant: type: boolean example: true move_in_date: type: string format: date example: '2019-05-28' move_out_date: type: string example: '2019-06-28' title: type: string example: Mr description: Enum - see the Types API for the allowed values first_name: type: string example: Ryan last_name: type: string example: Cullen date_of_birth: type: string format: date example: '1995-01-21' gender: type: string example: Male description: Enum - see the Types API for the allowed values citizen_type: type: string example: '1' description: Enum - see the Types API for the allowed values email: type: string example: email@gmail.com company_name: type: string example: MyCompany compant_address_name: type: string example: Address company_address1: type: string example: Boundry Road company_address2: type: string example: Wren Court company_city: type: string example: London company_postcode: type: string example: SW94DA company_county: type: string example: City of London company_country: type: string example: England phone_home: type: string example: 029302932 phone_work: type: string example: 029382928 mobile: type: string example: 020192029 residential_number: type: string example: '201' visa_number: type: string example: 120-123 visa_years: type: string example: '3' visa_type: type: string example: Tier 2 description: Enum - see the Types API for the allowed values country_of_origin: type: string example: Wales ni_number: type: string example: KS 01 AK 11 F kin_mobile: type: string example: 029302991 kin_last_name: type: string example: Cullen kin_first_name: type: string example: Monica kin_phone_work: type: string example: 029320191 student_status: type: string example: Full-time university: type: string example: Oxford course_name: type: string example: Doe Studies course_id: type: string example: '1' course_year: type: string example: '2' employment_company_name: type: string example: Lorem employment_address1: type: string example: Address First Line employment_address2: type: string example: Address Second Line employment_city: type: string example: Liverpool employment_postcode: type: string example: LN91LS employment_county: type: string example: Norfolk employment_contact_name: type: string example: Grace employment_contact_number: type: string example: 0239203900 employment_salary: type: string example: '90000' employment_length: type: string example: 5 years housing_benefit_council: type: string example: Borought housing_benefit_number: type: string example: '19203' guarantor_first_name: type: string example: Nicolas guarantor_last_name: type: string example: Cage guarantor_date_of_birth: type: string example: '1911-02-12' guarantor_address1: type: string example: Address first line guarantor_address2: type: string example: Address second line guarantor_city: type: string example: London guarantor_postcode: type: string example: XP91AP guarantor_county: type: string example: Suffolk guarantor_country: type: string example: England guarantor_phone_home: type: string example: 028392871 guarantor_phone_work: type: string example: 028191282 guarantor_mobile: type: string example: 029384383 guarantor_email: type: string example: guarantor@email.com guarantor_relation: type: string example: Brother guarantor_home_owner: type: string example: Home owner outright, Home owner with mortgage, Rented accommodation guarantor_profession: type: string example: Teacher bank_name: type: string example: Barclays bank_address1: type: string example: Address first line bank_address2: type: string example: Address second line bank_city: type: string example: Romford bank_county: type: string example: Essex bank_postcode: type: string example: FS18LA ref_name: type: string example: Ref Name ref_address1: type: string example: Ref First Line ref_address2: type: string example: Ref Second Line ref_county: type: string example: Ref Hertfordshire ref_city: type: string example: Ref City ref_postcode: type: string example: Ref Postcode ref_contact_number: type: string example: 029392832 ref_relation: type: string example: Mother applicant_note: type: string example: Note to remember manager_note: type: string example: Manager note required: - 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' /tenants/{tenant_id}: get: operationId: viewTenant summary: View Tenant tags: - Tenants parameters: - name: tenant_id in: path required: true description: Arthur tenant id. schema: type: integer - $ref: '#/components/parameters/EntityId' description: 'This API endpoint retrieves the details of a single tenant, identified by its unique  tenant_id . Use this endpoint to view the specific details of a renter.' 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: updateTenant summary: Update Tenant tags: - Tenants parameters: - name: tenant_id in: path required: true description: Arthur tenant id. schema: type: integer - $ref: '#/components/parameters/EntityId' - $ref: '#/components/parameters/Strict' description: "This endpoint updates an existing tenant using the same fields as the 'Add Tenant'\ \ endpoint. Any fields that are not provided will not be changed. The API will return the updated\ \ data for the tenant 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\ntenancy_id \n 123 \n Integer\ \ \n No \n\nmain_tenant \n True \n Boolean \n No \n\nmove_in_date \n 2019-05-28 \n Date \n No\ \ \n\nmove_out_date \n 2019-06-28 \n Time \n No \n\ntitle \n Mr \n Enum \n No \n\nfirst_name \n\ \ Ryan \n String \n No \n\nlast_name \n Cullen \n String \n No \n\ndate_of_birth \n 1995-01-21\ \ \n Date \n No \n\ngender \n Male \n Enum \n No \n\ncitizen_type \n 1 \n Enum \n No \n\nemail\ \ \n email@gmail.com \n String \n No \n\ncompany_name \n MyCompany \n Strong \n No \n\ncompant_address_name\ \ \n Address \n String \n No \n\ncompany_address1 \n Boundry Road \n String \n No \n\ncompany_address2\ \ \n Wren Court \n String \n No \n\ncompany_city \n London \n String \n No \n\ncompany_postcode\ \ \n SW94DA \n String \n No \n\ncompany_county \n City of London \n String \n No \n\ncompany_country\ \ \n England \n String \n No \n\nphone_home \n 029302932 \n String \n No \n\nphone_work \n 029382928\ \ \n String \n No \n\nmobile \n 020192029 \n String \n No \n\nresidential_number \n 201 \n String\ \ \n No \n\nvisa_number \n 120-123 \n String \n No \n\nvisa_years \n 3 \n String \n No \n\nvisa_type\ \ \n Tier 2 \n Enum \n No \n\ncountry_of_origin \n Wales \n String \n No \n\nni_number \n KS 01\ \ AK 11 F \n String \n No \n\nkin_mobile \n 029302991 \n String \n No \n\nkin_last_name \n Cullen\ \ \n String \n No \n\nkin_first_name \n Monica \n String \n No \n\nkin_phone_work \n 029320191\ \ \n String \n No \n\nstudent_status \n Full-time \n String \n No \n\nuniversity \n Oxford \n\ \ String \n No \n\ncourse_name \n Doe Studies \n String \n No \n\ncourse_id \n 1 \n String \n\ \ No \n\ncourse_year \n 2 \n String \n No \n\nemployment_company_name \n Lorem \n String \n No\ \ \n\nemployment_address1 \n Address First Line \n String \n No \n\nemployment_address2 \n Address\ \ Second Line \n String \n No \n\nemployment_city \n Liverpool \n String \n No \n\nemployment_postcode\ \ \n LN91LS \n String \n No \n\nemployment_county \n Norfolk \n String \n No \n\nemployment_contact_name\ \ \n Grace \n String \n No \n\nemployment_contact_number \n 0239203900 \n String \n No \n\nemployment_salary\ \ \n 90000 \n String \n No \n\nemployment_length \n 5 years \n String \n No \n\nhousing_benefit_council\ \ \n Borought \n String \n No \n\nhousing_benefit_number \n 19203 \n String \n No \n\nguarantor_first_name\ \ \n Nicolas \n String \n No \n\nguarantor_last_name \n Cage \n String \n No \n\nguarantor_date_of_birth\ \ \n 1911-02-12 \n String \n No \n\nguarantor_address1 \n Address first line \n String \n No \n\ \nguarantor_address2 \n Address second line \n String \n No \n\nguarantor_city \n London \n String\ \ \n No \n\nguarantor_postcode \n XP91AP \n String \n No \n\nguarantor_county \n Suffolk \n String\ \ \n No \n\nguarantor_country \n England \n String \n No \n\nguarantor_phone_home \n 028392871\ \ \n String \n No \n\nguarantor_phone_work \n 028191282 \n String \n No \n\nguarantor_mobile \n\ \ 029384383 \n String \n No \n\nguarantor_email \n guarantor@email.com \n String \n No \n\nguarantor_relation\ \ \n Brother \n String \n No \n\nguarantor_home_owner \n Yes \n String \n No \n\nguarantor_profession\ \ \n Teacher \n String \n No \n\nbank_name \n Barclays \n String \n No \n\nbank_address1 \n Address\ \ first line \n String \n No \n\nbank_address2 \n Address second line \n String \n No \n\nbank_city\ \ \n Romford \n String \n No \n\nbank_county \n Essex \n String \n No \n\nbank_postcode \n FS18LA\ \ \n String \n No \n\nref_name \n Ref Name \n String \n No \n\nref_address1 \n Ref First Line\ \ \n String \n No \n\nref_address2 \n Ref Second Line \n String \n No \n\nref_county \n Ref Hertfordshire\ \ \n String \n No \n\nref_city \n Ref City \n String \n No \n\nref_postcode \n Ref Postcode \n\ \ String \n No \n\nref_contact_number \n 029392832 \n String \n No \n\nref_relation \n Mother\ \ \n String \n No \n\napplicant_note \n Note to remember \n String \n No \n\nmanager_note \n Manager\ \ note \n String \n No" requestBody: required: true content: application/json: schema: type: object properties: tenancy_id: type: integer example: 123 main_tenant: type: boolean example: true move_in_date: type: string format: date example: '2019-05-28' move_out_date: type: string example: '2019-06-28' title: type: string example: Mr description: Enum - see the Types API for the allowed values first_name: type: string example: Ryan last_name: type: string example: Cullen date_of_birth: type: string format: date example: '1995-01-21' gender: type: string example: Male description: Enum - see the Types API for the allowed values citizen_type: type: string example: '1' description: Enum - see the Types API for the allowed values email: type: string example: email@gmail.com company_name: type: string example: MyCompany compant_address_name: type: string example: Address company_address1: type: string example: Boundry Road company_address2: type: string example: Wren Court company_city: type: string example: London company_postcode: type: string example: SW94DA company_county: type: string example: City of London company_country: type: string example: England phone_home: type: string example: 029302932 phone_work: type: string example: 029382928 mobile: type: string example: 020192029 residential_number: type: string example: '201' visa_number: type: string example: 120-123 visa_years: type: string example: '3' visa_type: type: string example: Tier 2 description: Enum - see the Types API for the allowed values country_of_origin: type: string example: Wales ni_number: type: string example: KS 01 AK 11 F kin_mobile: type: string example: 029302991 kin_last_name: type: string example: Cullen kin_first_name: type: string example: Monica kin_phone_work: type: string example: 029320191 student_status: type: string example: Full-time university: type: string example: Oxford course_name: type: string example: Doe Studies course_id: type: string example: '1' course_year: type: string example: '2' employment_company_name: type: string example: Lorem employment_address1: type: string example: Address First Line employment_address2: type: string example: Address Second Line employment_city: type: string example: Liverpool employment_postcode: type: string example: LN91LS employment_county: type: string example: Norfolk employment_contact_name: type: string example: Grace employment_contact_number: type: string example: 0239203900 employment_salary: type: string example: '90000' employment_length: type: string example: 5 years housing_benefit_council: type: string example: Borought housing_benefit_number: type: string example: '19203' guarantor_first_name: type: string example: Nicolas guarantor_last_name: type: string example: Cage guarantor_date_of_birth: type: string example: '1911-02-12' guarantor_address1: type: string example: Address first line guarantor_address2: type: string example: Address second line guarantor_city: type: string example: London guarantor_postcode: type: string example: XP91AP guarantor_county: type: string example: Suffolk guarantor_country: type: string example: England guarantor_phone_home: type: string example: 028392871 guarantor_phone_work: type: string example: 028191282 guarantor_mobile: type: string example: 029384383 guarantor_email: type: string example: guarantor@email.com guarantor_relation: type: string example: Brother guarantor_home_owner: type: string example: 'Yes' guarantor_profession: type: string example: Teacher bank_name: type: string example: Barclays bank_address1: type: string example: Address first line bank_address2: type: string example: Address second line bank_city: type: string example: Romford bank_county: type: string example: Essex bank_postcode: type: string example: FS18LA ref_name: type: string example: Ref Name ref_address1: type: string example: Ref First Line ref_address2: type: string example: Ref Second Line ref_county: type: string example: Ref Hertfordshire ref_city: type: string example: Ref City ref_postcode: type: string example: Ref Postcode ref_contact_number: type: string example: 029392832 ref_relation: type: string example: Mother applicant_note: type: string example: Note to remember manager_note: type: string example: Manager 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' components: 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: {} parameters: 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 Sort: name: sort in: query required: false description: Field to sort the collection by. schema: type: string Direction: name: direction in: query required: false description: Sort direction. schema: type: string enum: - ASC - DESC 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 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 responses: BadRequest: description: The request was invalid or malformed. 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. NotFound: description: The request was sent to a location that does not exist in the API. content: application/json: schema: $ref: '#/components/schemas/Error'