{ "openapi": "3.1.0", "info": { "title": "Street Open API", "description": "Build on top of the UKs most advanced Estate Agency software.", "version": "1.0", "contact": { "name": "Street API Development Team", "url": "https://street.co.uk", "email": "apis@street.co.uk" } }, "servers": [ { "url": "https://street.co.uk/open-api/v1", "description": "Production." }, { "url": "https://demo.street.co.uk/open-api/v1", "description": "Testing." } ], "paths": { "/activity": { "post": { "summary": "Create a activity log", "operationId": "post-activity", "responses": { "201": { "description": "Created." }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to create a `Activity Log` record by providing core information such as the entity the `Activity Log` relates to and optionally the content/body of the `Activity Log`.", "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "type", "attributes", "relationships" ], "properties": { "type": { "type": "string", "enum": [ "activity" ] }, "attributes": { "type": "object", "required": [ "activity_type", "title", "source" ], "properties": { "activity_type": { "type": "string", "enum": [ "campaign_sent" ] }, "title": { "type": "string" }, "description": { "type": "string" }, "url": { "type": "string", "format": "uri" }, "meta": { "type": [ "object", "null" ] }, "source": { "type": "string", "enum": [ "property_reports", "print", "social", "email_marketing" ] }, "created_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "relationships": { "oneOf": [ { "$ref": "#/components/schemas/PropertyRelated" }, { "$ref": "#/components/schemas/PersonRelated" } ] } } } } } } } }, "tags": [ "Activity" ] } }, "/network-settings": { "parameters": [] }, "/lettings-applicants": { "get": { "summary": "Get all Lettings Applicants", "tags": [ "Applicants" ], "responses": { "200": { "description": "Get one or more Lettings Applicants in a paginated result.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Applicant" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedLettingsOffer" }, { "$ref": "#/components/schemas/IncludedViewing" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedCompany" }, { "$ref": "#/components/schemas/IncludedNegotiator" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedLettingsApplication" }, { "$ref": "#/components/schemas/IncludedFollowUp" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-lettings-applicants", "description": "This endpoint retrieves multiple paginated applicants along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "string", "format": "uuid", "example": "a7c052ea-316a-4b55-8d47-9af7f782f887" }, "in": "query", "name": "filter[branch]", "description": "Filter the Applicants by Branch." }, { "schema": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[areas]", "description": "Filter the Applicants by a comma-separated list of area names.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/filter_applicant_price_from" }, { "$ref": "#/components/parameters/filter_applicant_price_to" }, { "$ref": "#/components/parameters/filter_applicant_min_bedrooms" }, { "$ref": "#/components/parameters/filter_applicant_furnished" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "$ref": "#/components/parameters/filter_trashed" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "branch", "offers", "viewings", "people", "company", "notes", "applications", "followUps", "negotiator" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `branch,offers,viewings,people,notes`", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" }, { "schema": { "type": "string", "format": "date" }, "in": "query", "name": "filter[follow_ups_due_from]", "description": "Filter results to applicants with a follow up after the provided ISO8601 date." }, { "schema": { "type": "string", "format": "date" }, "in": "query", "description": "Filter results to applicants with a follow up before the provided ISO8601 date.", "name": "filter[follow_ups_due_to]" }, { "schema": { "type": "array", "items": { "type": [ "string", "null" ], "enum": [ "hot", "warm", "cold", null ] }, "uniqueItems": true }, "in": "query", "name": "filter[lead_rating]", "description": "Filter applicants by their lead rating. Accepts: hot, warm, cold, or null. Can pass multiple values.", "style": "form", "explode": false } ] }, "parameters": [] }, "/lettings-applicants/{applicant_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "applicant_id", "in": "path", "required": true, "description": "The UUID of the Applicant." } ], "get": { "summary": "Get a single Lettings Applicant", "tags": [ "Applicants" ], "responses": { "200": { "description": "Get Lettings Applicant by `UUID`.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Applicant" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedLettingsOffer" }, { "$ref": "#/components/schemas/IncludedViewing" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedCompany" }, { "$ref": "#/components/schemas/IncludedNegotiator" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedLettingsApplication" }, { "$ref": "#/components/schemas/IncludedFollowUp" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-lettings-applicants-applicantId", "description": "This endpoint retrieves a single applicant by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "branch", "offers", "viewings", "people", "company", "notes", "applications", "followUp", "negotiator" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `branch,offers,viewings,people,notes`", "style": "form", "explode": false } ] } }, "/sales-applicants": { "get": { "summary": "Get all Sales Applicants", "tags": [ "Applicants" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Applicant" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedSalesOffer" }, { "$ref": "#/components/schemas/IncludedViewing" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedCompany" }, { "$ref": "#/components/schemas/IncludedNegotiator" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedFollowUp" }, { "$ref": "#/components/schemas/IncludedSale" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-sales-applicants", "description": "This endpoint retrieves multiple paginated applicants along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "in": "query", "name": "filter[branch]", "description": "Filter the Applicants by Branch." }, { "schema": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[areas]", "description": "Filter the Applicants by a comma-separated list of area names.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/filter_applicant_price_from" }, { "$ref": "#/components/parameters/filter_applicant_price_to" }, { "$ref": "#/components/parameters/filter_applicant_min_bedrooms" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "FTB", "INV", "BTLI", "NPTS", "NOM", "OTM", "SSTC", "UO", "PTS", "DEV", "BUY" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[buying_position]", "description": "Filter the Applicants by their buying position.\n\nAvailable values are:\n - FTB (First-time buyer)\n - INV (Investor)\n - BTLI (Buy to let investor)\n - NPTS (No property to sell)\n - NOM (In process of selling - Valuation)\n - OTM (In process of selling - On the market)\n - SSTC (In process of selling - Sold STC)\n - UO (In process of selling - Under Offer)\n - PTS (Property to sell)\n - DEV (Developer)\n - BUY (Buying Agent)\n", "style": "form" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "NIP", "SOAQ", "SAMA", "AIP", "NFCB", "CBFS", "PMTG" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[financial_position]", "description": "Filter the Applicants by their financial position.\n\nAvailable values are:\n - NIP (Nothing in place)\n - SOAQ (Seeking own advice / quotes)\n - SAMA (Currently seeing agent’s mortgage advisor)\n - AIP (Agreement in Principle in place)\n - NFCB (Does not need Finance (Cash Buyer))\n - CBFS (Cash Buyer, proceeds from Sale)\n - PMTG (Porting Mortgage)\n", "style": "form" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "branch", "offers", "viewings", "people", "company", "notes", "sales", "followUps", "negotiator" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `branch,offers,viewings,people,notes,sales`", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" }, { "schema": { "type": "string", "format": "date" }, "in": "query", "name": "filter[follow_ups_due_from]", "description": "Filter results to applicants with a follow up after the provided ISO8601 date." }, { "schema": { "type": "string", "format": "date" }, "in": "query", "description": "Filter results to applicants with a follow up before the provided ISO8601 date.", "name": "filter[follow_ups_due_to]" }, { "schema": { "type": "array", "items": { "type": [ "string", "null" ], "enum": [ "hot", "warm", "cold", null ] }, "uniqueItems": true }, "in": "query", "name": "filter[lead_rating]", "description": "Filter applicants by their lead rating. Accepts: hot, warm, cold, or null. Can pass multiple values.", "style": "form", "explode": false } ] }, "parameters": [] }, "/sales-applicants/{applicant_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "applicant_id", "in": "path", "required": true, "description": "The UUID of the Applicant." } ], "get": { "summary": "Get a single Sales Applicant", "tags": [ "Applicants" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Applicant" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedSalesOffer" }, { "$ref": "#/components/schemas/IncludedViewing" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedCompany" }, { "$ref": "#/components/schemas/IncludedFollowUp" }, { "$ref": "#/components/schemas/IncludedNegotiator" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedSale" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-sales-applicants-applicantId", "description": "This endpoint retrieves a single applicant by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "branch", "offers", "viewings", "people", "company", "notes", "sales", "followUp", "negotiator" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `branch,offers,viewings,people,notes,sales`", "style": "form", "explode": false } ] } }, "/areas": { "get": { "summary": "Get all Areas", "tags": [ "Areas" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Area" } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-areas", "description": "This endpoint retrieves multiple paginated areas along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/branches": { "get": { "summary": "Get all Branches", "tags": [ "Branches" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Branch" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedUser" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-branches", "description": "This endpoint retrieves multiple paginated branches along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "users", "properties", "applicants" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/branches/{branch_id}": { "get": { "summary": "Get a single Branch", "tags": [ "Branches" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Branch" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedUser" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-branch", "description": "This endpoint retrieves a single branch by its `UUID`.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "users", "properties", "applicants" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "schema": { "type": "string", "format": "uuid" }, "name": "branch_id", "in": "path", "required": true, "description": "The UUID of the Branch." } ] } }, "/brands": { "get": { "summary": "Get all Brands", "tags": [ "Brands" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Brand" } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-brands", "description": "This endpoint retrieves multiple paginated brands along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/brands/{brand_id}": { "get": { "summary": "Get a single Brand", "tags": [ "Brands" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Brand" }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-brand", "description": "This endpoint retrieves a single brand by its `UUID`.", "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "brand_id", "in": "path", "required": true, "description": "The UUID of the Brand." } ] } }, "/lettings-applications/{application_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "application_id", "in": "path", "required": true, "description": "The UUID of the Application." } ], "get": { "summary": "Get a single Lettings Application", "description": "This endpoint retrieves a single lettings application by its `UUID`.", "tags": [ "Lettings Applications" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/LettingsApplication" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedEpc" }, { "$ref": "#/components/schemas/IncludedSafetyCertificate" }, { "$ref": "#/components/schemas/IncludedDownloadableMedia" }, { "$ref": "#/components/schemas/IncludedTenancy" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedTenancyAgreement" }, { "$ref": "#/components/schemas/IncludedHoldingDeposit" }, { "$ref": "#/components/schemas/IncludedMeterReading" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-lettings-applications-application_id", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property", "tenancy", "tenancyAgreement", "holdingDeposit", "applicant", "applicant.people", "epc", "safetyCertificates", "tenancyGuide", "landlordOfferLetter", "tenantGuarantorReferenceForm", "tenantGuarantorReferenceReport", "tenantGuarantorIdDocument", "generatedDocument", "meterReadings" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results supplied as a comma separated list.", "style": "form", "explode": false } ] } }, "/companies": { "get": { "summary": "Get all Companies", "tags": [ "Companies" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Company" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedPerson" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-companies", "description": "This endpoint retrieves multiple paginated companies along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "people", "properties", "applicants", "notes" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" }, { "schema": { "type": "string" }, "in": "query", "name": "filter[telephone_number]", "description": "Filter results by the telephone number." } ] } }, "/companies/{company_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "company_id", "in": "path", "required": true, "description": "The UUID of the Company." } ], "get": { "summary": "Get a single Company", "tags": [ "Companies" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Company" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedPerson" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-companies-companyId", "description": "This endpoint retrieves a single company by its `UUID`.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "people", "properties", "applicants", "notes" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ] } }, "/documents": { "post": { "operationId": "post-documents", "summary": "Create a Document", "responses": { "201": { "description": "Created.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/components/schemas/Media" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "type", "attributes", "relationships" ], "properties": { "type": { "type": "string", "enum": [ "document" ] }, "attributes": { "type": "object", "required": [ "file_url", "title" ], "properties": { "file_url": { "type": "string", "format": "uri", "description": "The endpoint will only accept the following filetypes: PDF, JPG, PNG." }, "title": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "is_public": { "type": [ "boolean", "null" ], "description": "Indicates whether the document is public. This value will be ignored if it's determined that the document cannot be made public.", "default": false }, "key": { "type": [ "string", "null" ], "enum": [ "api_tenancy_guide", "api_landlord_offer_letter", "api_tenancy_agreement", "api_tenant_guarantor_reference_form", "api_tenant_guarantor_reference_report", "api_tenant_guarantor_id_document" ], "pattern": "^[a-z_]*$", "example": "api_tenancy_guide" } } }, "relationships": { "oneOf": [ { "$ref": "#/components/schemas/PropertyRelated" }, { "$ref": "#/components/schemas/SalesApplicantRelated" }, { "$ref": "#/components/schemas/LettingsApplicantRelated" } ] } } } } } } } }, "description": "This endpoint allows you to create a `Document` attached to an entity by providing a publically accessible URL for the file.\n In addition you can add relevant information such as a title and description of the file.", "tags": [ "Documents" ], "x-internal": false }, "parameters": [] }, "/photos/{property_id}/media/{media_id}": { "patch": { "operationId": "patch-photos-propertyId-imageId", "summary": "Update a photos details", "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "property_id", "in": "path", "required": true, "description": "The UUID of the Property." }, { "schema": { "type": "string", "format": "uuid" }, "name": "media_id", "in": "path", "required": true, "description": "The UUID of the Image." } ], "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "type", "attributes" ], "properties": { "type": { "type": "string", "enum": [ "image" ] }, "attributes": { "type": "object", "properties": { "title": { "type": "string" }, "include_in_listing": { "type": "boolean" } } } } } } } } }, "description": "Photo details to update" }, "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/UploadedMedia" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to update a photo details.", "tags": [ "Images" ], "x-internal": false }, "delete": { "operationId": "delete-photos-propertyId-imageId", "summary": "Delete a photo from a property", "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "property_id", "in": "path", "required": true, "description": "The UUID of the Property." }, { "schema": { "type": "string", "format": "uuid" }, "name": "media_id", "in": "path", "required": true, "description": "The UUID of the Image." } ], "responses": { "204": { "description": "No Content." }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to delete a photo from a property.", "tags": [ "Images" ], "x-internal": false } }, "/floorplans/{property_id}/media/{media_id}": { "delete": { "operationId": "delete-floorplans-propertyId-imageId", "summary": "Delete a floorplan from a property", "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "property_id", "in": "path", "required": true, "description": "The UUID of the Property." }, { "schema": { "type": "string", "format": "uuid" }, "name": "media_id", "in": "path", "required": true, "description": "The UUID of the Image." } ], "responses": { "204": { "description": "No Content." }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to delete a floorplan from a property.", "tags": [ "Images" ], "x-internal": false } }, "/enquiries": { "get": { "summary": "Get all Enquiries", "operationId": "get-enquiries", "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Enquiry" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedPerson" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint retrieves multiple paginated enquiries along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_branch" }, { "schema": { "type": "string", "format": "email" }, "in": "query", "name": "filter[email_address]", "description": "Filter enquiries by the provided email address" }, { "schema": { "type": "string" }, "in": "query", "name": "filter[telephone_number]", "description": "Filter enquiries by the provided telephone number" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ], "tags": [ "Enquiries" ] }, "post": { "summary": "Create an Enquiry", "operationId": "post-enquiries", "responses": { "201": { "description": "Created.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/components/schemas/Enquiry" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "422": { "$ref": "#/components/responses/422" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to create an `Enquiry` record by providing core information such as name, email address and enquiry details alongside any appointment requests such as viewings or valuations.", "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "type", "attributes", "relationships" ], "properties": { "type": { "type": "string", "enum": [ "enquiry" ] }, "attributes": { "type": "object", "required": [ "email_address", "message" ], "properties": { "first_name": { "type": [ "string", "null" ] }, "last_name": { "type": [ "string", "null" ] }, "email_address": { "type": "string", "format": "email" }, "telephone_number": { "type": [ "string", "null" ] }, "message": { "type": "string" }, "custom_source": { "type": [ "string", "null" ], "maxLength": 25, "description": "A one or 2 word descriptor to designate where this Enquiry has originated from ie \"website\"" }, "postcode": { "type": [ "string", "null" ], "maxLength": 8, "description": "Optional UK postcode for the enquirer. When supplied and the enquiry creates a new Person, this is stored as the Person's correspondence address. Ignored when the enquiry matches an existing Person — never overwrites a curated address." }, "property_uuid": { "type": [ "null", "string" ], "format": "uuid" }, "branch_uuid": { "type": [ "null", "string" ], "format": "uuid" }, "request_viewing": { "type": "boolean" }, "request_valuation": { "type": "boolean" }, "property_to_sell": { "type": "boolean" }, "property_to_let": { "type": "boolean" } } }, "relationships": { "oneOf": [ { "$ref": "#/components/schemas/PropertyRelated" }, { "$ref": "#/components/schemas/SalesApplicantRelated" }, { "$ref": "#/components/schemas/LettingsApplicantRelated" } ] } } } }, "required": [ "data" ] } } }, "description": "" }, "tags": [ "Enquiries" ] } }, "/enquiries/{enquiry_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "enquiry_id", "in": "path", "required": true, "description": "The UUID of the Enquiry." } ], "get": { "summary": "Get a single Enquiry", "tags": [ "Enquiries" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Enquiry" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedPerson" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-enquiries-enquiryId", "description": "This endpoint retrieves a single enquiry by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "branch", "person" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,branch,person`", "explode": false, "style": "form" } ] } }, "/follow-ups": { "get": { "summary": "Get all Follow Ups", "operationId": "get-follow-ups", "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/FollowUp" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedNegotiator" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedSale" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedViewing" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint retrieves multiple paginated follow ups along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "branch", "negotiator", "property", "lettingsApplicant", "salesApplicant", "sale", "valuation", "viewing" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property", "lettingsApplicant", "salesApplicant", "sale", "valuation", "viewing" ] } }, "in": "query", "name": "filter[subject]", "description": "Filter Follow Ups by the subject entity they relate to.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/filter_branch" }, { "$ref": "#/components/parameters/filter_property" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ], "tags": [ "Follow Ups" ] }, "post": { "summary": "Create a Follow Up", "operationId": "post-follow-ups", "responses": { "201": { "description": "Created.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/components/schemas/FollowUp" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to create a `Follow Up` record by providing core information such as the entity the `Follow Up` relates to and optionally the content/body of the `Follow Up`.", "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "type", "attributes", "relationships" ], "properties": { "type": { "type": "string", "enum": [ "follow-up" ] }, "attributes": { "type": "object", "required": [ "due_date" ], "properties": { "due_date": { "type": "string", "format": "date" }, "note": { "type": [ "string", "null" ] } } }, "relationships": { "oneOf": [ { "$ref": "#/components/schemas/PropertyRelated" }, { "$ref": "#/components/schemas/SalesApplicantRelated" }, { "$ref": "#/components/schemas/LettingsApplicantRelated" }, { "$ref": "#/components/schemas/SaleRelated" }, { "$ref": "#/components/schemas/ValuationRelated" } ] } } } }, "required": [ "data" ] }, "examples": { "Example 1": { "value": { "data": { "type": "follow-up", "attributes": { "due_date": "2019-08-24" }, "relationships": { "property": { "data": { "type": "property", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" } } } } } } } } } }, "tags": [ "Follow Ups" ] }, "parameters": [] }, "/todos": { "get": { "summary": "Get all Tasks", "operationId": "get-todos", "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Todo" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedViewing" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedSale" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedNegotiator" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint retrieves multiple paginated tasks along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "branch", "negotiator", "property", "lettingsApplicant", "salesApplicant", "sale", "valuation", "viewing" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property", "lettingsApplicant", "salesApplicant", "sale", "valuation", "viewing" ] } }, "in": "query", "name": "filter[subject]", "description": "Filter tasks by the subject entity they relate to.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/filter_branch" }, { "$ref": "#/components/parameters/filter_property" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ], "tags": [ "Tasks" ] }, "post": { "summary": "Create a Task", "operationId": "post-todos", "responses": { "201": { "description": "Created.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/components/schemas/Todo" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to create a `Task` record by providing core information such as the entity the `Task` relates to and optionally the content/body of the `Task`.", "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "type", "attributes" ], "properties": { "type": { "type": "string", "enum": [ "todo" ] }, "attributes": { "type": "object", "required": [ "title" ], "properties": { "title": { "type": "string" }, "body": { "type": "string" }, "due_date": { "type": "string", "format": "date" }, "user_uuid": { "type": "string", "format": "uuid", "description": "Optional. The UUID of the User to assign the Task to. The User must belong to the authenticated User's Network." }, "note": { "type": [ "string", "null" ] } } }, "relationships": { "$ref": "#/components/schemas/TodoRelationship" } } } }, "required": [ "data" ] }, "examples": { "Example 1": { "value": { "data": { "type": "todo", "attributes": { "title": "Post on social media", "due_date": "2025-09-19", "user_uuid": "88a2d6f4-1c3b-4a2e-9f0d-2b7c5e1a4d6f" }, "relationships": { "property": { "data": { "type": "property", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" } } } } } } } } } }, "tags": [ "Tasks" ] }, "parameters": [] }, "/todo-types": { "get": { "summary": "Get all Task Types", "tags": [ "Tasks" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/TodoType" } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-todo-types", "description": "This endpoint retrieves multiple paginated task types along with `meta` and `pagination` information. Returns both network-specific and global (null network_id) task types.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/todo-types/{todo_type_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "todo_type_id", "in": "path", "required": true, "description": "The UUID of the Task Type." } ], "get": { "operationId": "get-todo-types-todoTypeID", "summary": "Get a single Task Type", "description": "This endpoint retrieves a single task type by its `UUID`.", "tags": [ "Tasks" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/TodoType" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } } } }, "/solicitors": { "get": { "operationId": "get-solicitors", "summary": "Get all Solicitors", "description": "This endpoint retrieves multiple paginated solicitors along with `meta` and `pagination` information.", "tags": [ "Solicitors" ], "parameters": [ { "schema": { "type": "string", "format": "email" }, "in": "query", "name": "filter[email_address]", "description": "Filter enquiries by the provided email address" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "solicitorFirm", "applicantSolicitorSale", "ownerSolicitorSale" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Solicitor" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedSolicitorFirm" }, { "$ref": "#/components/schemas/IncludedApplicantSolicitorSale" }, { "$ref": "#/components/schemas/IncludedOwnerSolicitorSale" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } } } }, "/solicitors/{solicitor_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "solicitor_id", "in": "path", "required": true, "description": "The UUID of the Solicitor." } ], "get": { "operationId": "get-solicitors-solicitorID", "summary": "Get a single Solicitor", "description": "This endpoint retrieves a single solicitor by its `UUID`.", "tags": [ "Solicitors" ], "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "solicitorFirm", "applicantSolicitorSale", "ownerSolicitorSale" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Solicitor" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedSolicitorFirm" }, { "$ref": "#/components/schemas/IncludedApplicantSolicitorSale" }, { "$ref": "#/components/schemas/IncludedOwnerSolicitorSale" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } } } }, "/landlords": { "get": { "summary": "Get all Landlords", "tags": [ "Landlords" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Landlord" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedBranch" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-landlords", "description": "This endpoint retrieves multiple paginated landlords along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_person_status" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "not_on_the_market", "valuation_lost", "valuation_booked", "valuation_pending", "valuation_cancelled", "valuation_completed", "instructed", "let", "to_let", "let_agreed", "for_sale_and_to_let", "withdrawn_lettings", "withdrawn_sales_and_lettings" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[property_status]", "description": "Filter the Landlords by the Status of their Properties.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_address" }, { "$ref": "#/components/parameters/filter_email_address" }, { "$ref": "#/components/parameters/filter_telephone_number" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "properties", "properties.branch", "notes" ] }, "uniqueItems": true, "minItems": 1, "example": [ "properties", "properties.branch", "notes" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/landlords/{landlord_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "landlord_id", "in": "path", "required": true, "description": "The UUID of the Landlord." } ], "get": { "summary": "Get a single Landlord", "tags": [ "Landlords" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Landlord" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedBranch" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-landlords-landlordId", "description": "This endpoint retrieves a single landlord by their `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "properties", "properties.branch", "notes" ] }, "uniqueItems": true, "minItems": 1, "example": [ "properties", "properties.branch", "notes" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" } ] } }, "/lettings-offers": { "get": { "summary": "Get all Lettings Offers", "tags": [ "Lettings Offers" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/LettingsOffer" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedLettingsListing" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedPerson" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-lettings-offers", "description": "This endpoint retrieves multiple paginated lettings offers along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "pending", "put_to_vendor", "accepted", "rejected" ] }, "uniqueItems": true, "minItems": 1, "maxItems": 5, "example": [ "pending", "put_to_vendor", "accepted", "rejected" ] }, "in": "query", "name": "filter[status]", "description": "Filter by results with specific statuses.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_branch" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "lettingsListing", "applicant", "applicant.people", "branch", "notes" ] }, "uniqueItems": true, "minItems": 1, "example": [ "property", "lettingsListing", "applicant", "applicant.people", "branch", "notes" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/lettings-offers/{lettings_offer_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "lettings_offer_id", "in": "path", "required": true, "description": "The UUID of the Lettings Offer." } ], "get": { "summary": "Get a single Lettings Offer", "tags": [ "Lettings Offers" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/LettingsOffer" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedLettingsListing" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedPerson" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-lettings-offers-lettingsOfferId", "description": "This endpoint retrieves a single lettings offer by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "lettingsListing", "applicant", "applicant.people", "branch", "notes" ] }, "uniqueItems": true, "minItems": 1, "example": [ "property", "lettingsListing", "applicant", "applicant.people", "branch", "notes" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" } ] } }, "/maintenance-jobs": { "get": { "summary": "Get all Maintence Jobs", "tags": [ "Maintenance Jobs" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/MaintenanceJob" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedUser" }, { "$ref": "#/components/schemas/IncludedMedia" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-maintenance-jobs", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "awaiting_instruction", "awaiting_quote", "awaiting_quote_approval", "contractor_instructed", "invoice_added", "invoice_paid", "job_cancelled", "job_closed", "job_complete", "job_details_added" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[status]", "description": "Filter by results by the provided status, e.g. `awaiting_instruction,awaiting_quote,awaiting_quote_approval`", "explode": false, "style": "form" }, { "schema": { "type": "string" }, "in": "query", "name": "filter[reported_from]", "description": "Filter by results reported after the provided date." }, { "schema": { "type": "string" }, "in": "query", "name": "filter[reported_to]", "description": "Filter by results reported before the provided date." }, { "schema": { "type": "string" }, "in": "query", "name": "filter[completed_from]", "description": "Filter by results completed after the provided date." }, { "schema": { "type": "string" }, "in": "query", "name": "filter[completed_to]", "description": "Filter by results completed before the provided date." }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "attachments", "property", "assignee" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results supplied as a comma separated list, e.g. `attachments,property`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ], "description": "This endpoint retrieves multiple paginated maintence jobs along with `meta` and `pagination` information." }, "parameters": [] }, "/maintenance-jobs/{maintenance_job_id}": { "get": { "operationId": "get-maintenance-job", "summary": "Get a single Maintence Job", "tags": [ "Maintenance Jobs" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/MaintenanceJob" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedUser" }, { "$ref": "#/components/schemas/IncludedMedia" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "parameters": [], "description": "This endpoint retrieves a single maintenance job by its `UUID`." }, "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "maintenance_job_id", "in": "path", "required": true } ] }, "/maintenance-requests": { "post": { "summary": "Create a new maintenance request", "tags": [ "Maintenance Requests" ], "responses": { "201": { "description": "Created.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/components/schemas/MaintenanceRequest" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "422": { "$ref": "#/components/responses/422" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "post-maintenance-requests", "description": "This endpoint allows you to create a `maintenance request` record.", "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "maintenance-request" ] }, "attributes": { "type": "object", "properties": { "priority": { "type": "string", "enum": [ "low", "medium", "high", "urgent", "emergency" ] }, "summary": { "type": "string" }, "description": { "type": "string" }, "reported_by": { "type": "string", "enum": [ "tenant", "landlord", "agent", "contractor" ] }, "reported_at": { "type": "string", "format": "date-time" } } }, "relationships": { "type": "object", "properties": { "property": { "type": "object", "required": [ "data" ], "properties": { "data": { "oneOf": [ { "type": "string", "format": "uuid", "description": "Legacy format - direct UUID string", "deprecated": true }, { "type": "object", "required": [ "type", "id" ], "properties": { "type": { "type": "string", "enum": [ "property" ] }, "id": { "type": "string", "format": "uuid" } }, "description": "JSON:API format" } ] } } } } } } } } } } } } }, "parameters": [] }, "/notes": { "post": { "operationId": "post-notes", "summary": "Create a Note", "responses": { "201": { "description": "Created.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/components/schemas/Note" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "type", "attributes", "relationships" ], "properties": { "type": { "type": "string", "enum": [ "note" ] }, "attributes": { "type": "object", "required": [ "body" ], "properties": { "body": { "type": "string" }, "pinned": { "type": "boolean", "default": false }, "author": { "type": [ "string", "null" ], "format": "uuid" } } }, "relationships": { "oneOf": [ { "$ref": "#/components/schemas/CompanyRelated" }, { "$ref": "#/components/schemas/PersonRelated" }, { "$ref": "#/components/schemas/PropertyRelated" }, { "$ref": "#/components/schemas/TenancyRelated" }, { "$ref": "#/components/schemas/SalesApplicantRelated" }, { "$ref": "#/components/schemas/LettingsApplicantRelated" }, { "$ref": "#/components/schemas/LettingsApplicationRelated" }, { "$ref": "#/components/schemas/EnquiryRelated" }, { "$ref": "#/components/schemas/OwnerRelated" }, { "$ref": "#/components/schemas/SaleRelated" }, { "$ref": "#/components/schemas/SalesOfferRelated" }, { "$ref": "#/components/schemas/LettingsOfferRelated" }, { "$ref": "#/components/schemas/ViewingRelated" }, { "$ref": "#/components/schemas/ValuationRelated" }, { "$ref": "#/components/schemas/InspectionRelated" }, { "$ref": "#/components/schemas/MaintenanceJobRelated" } ] } } } }, "required": [ "data" ] } } } }, "description": "This endpoint allows you to create a `Note` record by providing core information such as the entity the `Note` relates to, the content/body of the `Note` and any related tags.", "tags": [ "Notes" ], "x-internal": false } }, "/people": { "get": { "summary": "Get all People", "tags": [ "People" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Person" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-people", "parameters": [ { "$ref": "#/components/parameters/filter_address" }, { "$ref": "#/components/parameters/filter_email_address" }, { "$ref": "#/components/parameters/filter_telephone_number" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "ownedProperties", "applicants" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ], "description": "This endpoint retrieves multiple paginated people along with `meta` and `pagination` information." } }, "/people/{person_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "person_id", "in": "path", "required": true, "description": "The UUID of the Person." } ], "get": { "summary": "Get a single Person", "tags": [ "People" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Person" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } }, "examples": { "Person with included property": { "value": { "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "person", "attributes": { "full_name": "string", "title": "Mrs", "first_name": "Jane", "last_name": "Doe", "address": { "single_line": "19 Lansdowne Road, Monton, Manchester", "anon_single_line": "Lansdowne Road, Monton, Manchester", "building_number": "19", "building_name": "string", "street": "Lansdowne Road", "line_1": "19 Lansdowne Road", "line_2": "Monton", "line_3": "Manchester", "line_4": "string", "country": "United Kingdom", "postcode": "M30 9PA", "udprn": "28327204", "geo": { "lat": 0.2365698, "lng": 53.023654 }, "royal_mail": { "postcode": "string", "post_town": "string", "thoroughfare": "string", "building_name": "string", "building_number": "string", "department_name": "string", "organisation_name": "string", "sub_building_name": "string", "dependent_locality": "string", "dependent_thoroughfare": "string", "double_dependent_locality": "string" }, "street_group_property_id": "string" }, "telephone_numbers": [ { "value": "+441632960911", "notes": "string", "primary": true } ], "email_addresses": [ { "value": "john@johndoe.com", "notes": "string", "primary": true } ], "marketing_consent": true, "contact_preferences": { "email": true, "post": true, "text": true, "phone": true }, "statuses": { "vendor": null, "landlord": null, "tenant": null }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }, "relationships": { "properties": { "data": [ { "type": "property", "id": "a827a3ae-4c74-4c32-8b42-42248d4010d3" } ], "links": { "self": "../dictionary", "related": "../dictionary" } }, "applicants": { "data": [ { "type": "applicant", "id": "a827a3ae-4c74-4c32-8b42-42248d4010d3" } ], "links": { "self": "../dictionary", "related": "../dictionary" } }, "notes": { "data": [ { "type": "note", "id": "a827a3ae-4c74-4c32-8b42-42248d4010d3" } ], "links": { "self": "../dictionary", "related": "../dictionary" } } } }, "included": [ { "type": "property", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "attributes": { "sales": true, "lettings": true, "is_sales": true, "is_lettings": true, "company_owned": true, "address": { "single_line": "19 Lansdowne Road, Monton, Manchester", "anon_single_line": "Lansdowne Road, Monton, Manchester", "building_number": "19", "building_name": "string", "street": "Lansdowne Road", "line_1": "19 Lansdowne Road", "line_2": "Monton", "line_3": "Manchester", "line_4": "string", "country": "United Kingdom", "postcode": "M30 9PA", "udprn": "28327204", "geo": { "lat": 0.2365698, "lng": 53.023654 }, "royal_mail": { "postcode": "string", "post_town": "string", "thoroughfare": "string", "building_name": "string", "building_number": "string", "department_name": "string", "organisation_name": "string", "sub_building_name": "string", "dependent_locality": "string", "dependent_thoroughfare": "string", "double_dependent_locality": "string" }, "street_group_property_id": "string" }, "status": "Not On The Market", "owner": [ { "full_name": "string", "title": "Mrs", "first_name": "Jane", "last_name": "Doe", "address": { "single_line": "19 Lansdowne Road, Monton, Manchester", "anon_single_line": "Lansdowne Road, Monton, Manchester", "building_number": "19", "building_name": "string", "street": "Lansdowne Road", "line_1": "19 Lansdowne Road", "line_2": "Monton", "line_3": "Manchester", "line_4": "string", "country": "United Kingdom", "postcode": "M30 9PA", "udprn": "28327204", "geo": { "lat": 0.2365698, "lng": 53.023654 }, "royal_mail": { "postcode": "string", "post_town": "string", "thoroughfare": "string", "building_name": "string", "building_number": "string", "department_name": "string", "organisation_name": "string", "sub_building_name": "string", "dependent_locality": "string", "dependent_thoroughfare": "string", "double_dependent_locality": "string" }, "street_group_property_id": "string" }, "telephone_numbers": [ { "value": "+441632960911", "notes": "string", "primary": true } ], "email_addresses": [ { "value": "john@johndoe.com", "notes": "string", "primary": true } ], "marketing_consent": true, "contact_preferences": { "email": true, "post": true, "text": true, "phone": true } } ], "bedrooms": 0, "bathrooms": 0, "receptions": 0, "floor_area": "string", "plot_area": "string", "land_area": "string", "property_type": "string", "property_style": "string", "property_age_bracket": "string", "construction_year": "string", "tenure": "string", "tenure_notes": "string", "lease_expiry_year": "string", "lease_expiry_date": "2019-08-24", "display_property_style": "string", "work_required": true, "heating_system": "string", "council_tax_band": "string", "council_tax_cost": 0, "local_authority": "string", "service_charge": 0, "service_charge_period": "month", "service_charge_notes": "string", "ground_rent": 0, "ground_rent_period": "month", "ground_rent_review_period_years": 0, "ground_rent_uplift": 0, "ground_rent_expiry": "string", "has_outdoor_space": true, "shared_ownership": false, "shared_ownership_notes": "string", "shared_ownership_rent": 0, "shared_ownership_rent_frequency": "string", "shared_ownership_percentage_sold": 0, "listings": [ { "price_qualifier": "None", "archived": true, "is_low_profile": true, "is_not_in_property_feed_api": true, "is_auction": false, "new_home": true, "retirement": true, "full_description": "string", "short_description": "string", "location_summary": "string", "has_parking": true, "virtual_tour": "../dictionary", "type": "sales", "price": 500000, "status": "For Sale" } ], "tags": [ { "name": "Example tag", "slug": "example-tag", "order": 0 } ], "features": [ { "id": "7f064215-0b9c-45e5-bd91-02913c050a9a", "name": "Example feature", "order": 0, "include_on_portals": false, "highlight": true } ], "viewing_booking_url": "string", "last_instructed_sales_at": "2019-08-24T14:15:22Z", "last_instructed_lettings_at": "2019-08-24T14:15:22Z", "last_exchanged_at": "2019-08-24T14:15:22Z", "last_completed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }, "relationships": {}, "links": { "self": "../dictionary", "related": "../dictionary" } } ], "links": { "self": "../dictionary", "related": "../dictionary" }, "meta": {}, "jsonapi": { "version": "string", "meta": {} } } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-people-personId", "description": "This endpoint retrieves a single company by its `UUID`.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "ownedProperties", "applicants" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" } ] }, "patch": { "summary": "Update a Person", "operationId": "patch-people-personId", "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "person" ] }, "attributes": { "$ref": "#/components/schemas/PersonAttributes" } } } ] } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "422": { "$ref": "#/components/responses/422" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to update specific fields with a `Person` record via their `UUID` by providing amended core information such as name, address and contact details or marketing and contact preference changes.", "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string" }, "id": { "type": "string", "format": "uuid" }, "attributes": { "$ref": "#/components/schemas/PersonRequestBody" } } } } } } }, "description": "" }, "tags": [ "People" ] } }, "/properties": { "get": { "summary": "Get all Properties", "tags": [ "Properties" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Property" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedMedia" }, { "$ref": "#/components/schemas/IncludedFloorplan" }, { "$ref": "#/components/schemas/IncludedEpc" }, { "$ref": "#/components/schemas/IncludedRoom" }, { "$ref": "#/components/schemas/IncludedBrochure" }, { "$ref": "#/components/schemas/IncludedParking" }, { "$ref": "#/components/schemas/IncludedOutsideSpace" }, { "$ref": "#/components/schemas/IncludedViewing" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedNegotiator" }, { "$ref": "#/components/schemas/IncludedFollowUp" }, { "$ref": "#/components/schemas/IncludedSale" }, { "$ref": "#/components/schemas/IncludedSalesListing" }, { "$ref": "#/components/schemas/IncludedLettingsListing" }, { "$ref": "#/components/schemas/IncludedSalesOffer" }, { "$ref": "#/components/schemas/IncludedLettingsOffer" }, { "$ref": "#/components/schemas/IncludedLettingsApplication" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedInterestedApplicant" }, { "$ref": "#/components/schemas/IncludedInvoice" }, { "$ref": "#/components/schemas/IncludedPropertyKey" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-properties", "parameters": [ { "schema": { "type": "string", "enum": [ "sales", "lettings" ] }, "in": "query", "name": "filter[category]", "description": "Filter by the property by sales or lettings", "allowEmptyValue": true }, { "$ref": "#/components/parameters/filter_address" }, { "$ref": "#/components/parameters/filter_bedrooms" }, { "$ref": "#/components/parameters/filter_min_bedrooms" }, { "$ref": "#/components/parameters/filter_branch" }, { "$ref": "#/components/parameters/filter_max_price_sales" }, { "$ref": "#/components/parameters/filter_min_price_sales" }, { "$ref": "#/components/parameters/filter_max_price_lettings" }, { "$ref": "#/components/parameters/filter_min_price_lettings" }, { "$ref": "#/components/parameters/filter_postcode" }, { "$ref": "#/components/parameters/filter_property_status" }, { "$ref": "#/components/parameters/filter_tags" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "activeTenancy", "branch", "brochure", "epc", "floorplans", "followUp", "interestedApplicants", "invoices", "lettingsApplications", "lettingsListing", "lettingsOffers", "media", "negotiator", "notes", "outsideSpaces", "owner", "owner.company", "owner.people", "parking", "propertyKeys", "rooms", "rooms.media", "sales", "salesListing", "salesOffers", "tenancies", "valuations", "viewings" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results supplied as a comma separated list, e.g. `branch,sales,notes`", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" }, { "schema": { "type": "boolean", "default": false }, "in": "query", "name": "filter[include_archived]", "description": "Include archived properties in the result set" } ], "description": "This endpoint retrieves multiple paginated properties along with `meta` and `pagination` information." }, "parameters": [] }, "/properties/{property_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "property_id", "in": "path", "required": true, "description": "The UUID of the Property." } ], "get": { "summary": "Get a single Property", "tags": [ "Properties" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Property" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedMedia" }, { "$ref": "#/components/schemas/IncludedFloorplan" }, { "$ref": "#/components/schemas/IncludedEpc" }, { "$ref": "#/components/schemas/IncludedRoom" }, { "$ref": "#/components/schemas/IncludedBrochure" }, { "$ref": "#/components/schemas/IncludedParking" }, { "$ref": "#/components/schemas/IncludedOutsideSpace" }, { "$ref": "#/components/schemas/IncludedViewing" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedNegotiator" }, { "$ref": "#/components/schemas/IncludedFollowUp" }, { "$ref": "#/components/schemas/IncludedSale" }, { "$ref": "#/components/schemas/IncludedSalesListing" }, { "$ref": "#/components/schemas/IncludedLettingsListing" }, { "$ref": "#/components/schemas/IncludedSalesOffer" }, { "$ref": "#/components/schemas/IncludedLettingsOffer" }, { "$ref": "#/components/schemas/IncludedLettingsApplication" }, { "$ref": "#/components/schemas/IncludedSafetyCertificate" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedInterestedApplicant" }, { "$ref": "#/components/schemas/IncludedInvoice" }, { "$ref": "#/components/schemas/IncludedPropertyKey" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-properties-propertyId", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "activeTenancy", "branch", "brochure", "epc", "floorplans", "followUp", "interestedApplicants", "invoices", "lettingsApplications", "lettingsListing", "lettingsOffers", "media", "negotiator", "notes", "outsideSpaces", "owner", "owner.company", "owner.people", "parking", "propertyKeys", "rooms", "rooms.media", "safetyCertificates", "sales", "salesListing", "salesOffers", "tenancies", "valuations", "viewings" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results supplied as a comma separated list, e.g. `branch,sales,note`", "style": "form", "explode": false } ], "description": "This endpoint retrieves a single property by its `UUID`." }, "patch": { "summary": "Patch Property details", "operationId": "patch-properties-propertyId", "tags": [ "Properties" ], "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] }, "id": { "type": "string", "format": "uuid" }, "attributes": { "$ref": "#/components/schemas/PropertyDescriptionUpdateAttributes" } } } }, "required": [ "data" ] } } }, "description": "Property description fields to update" }, "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Property" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedMedia" }, { "$ref": "#/components/schemas/IncludedFloorplan" }, { "$ref": "#/components/schemas/IncludedEpc" }, { "$ref": "#/components/schemas/IncludedRoom" }, { "$ref": "#/components/schemas/IncludedBrochure" }, { "$ref": "#/components/schemas/IncludedParking" }, { "$ref": "#/components/schemas/IncludedOutsideSpace" }, { "$ref": "#/components/schemas/IncludedViewing" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedNegotiator" }, { "$ref": "#/components/schemas/IncludedFollowUp" }, { "$ref": "#/components/schemas/IncludedSale" }, { "$ref": "#/components/schemas/IncludedSalesListing" }, { "$ref": "#/components/schemas/IncludedLettingsListing" }, { "$ref": "#/components/schemas/IncludedSalesOffer" }, { "$ref": "#/components/schemas/IncludedLettingsOffer" }, { "$ref": "#/components/schemas/IncludedLettingsApplication" }, { "$ref": "#/components/schemas/IncludedSafetyCertificate" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedInterestedApplicant" }, { "$ref": "#/components/schemas/IncludedPropertyKey" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "422": { "$ref": "#/components/responses/422" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to update the property descriptions of a Property record via its `UUID` by providing amended details in the request body." } }, "/key-features/{property_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "property_id", "in": "path", "required": true, "description": "The ID of the Property" } ], "post": { "summary": "Update Property Key Features", "operationId": "post-key-features-property-id", "tags": [ "Properties" ], "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "type", "id", "attributes" ], "properties": { "type": { "type": "string", "enum": [ "property" ] }, "id": { "type": "string", "format": "uuid", "description": "The ID of the Property." }, "attributes": { "type": "object", "required": [ "key_features" ], "properties": { "key_features": { "type": "array", "description": "Array of key features to create or update for the property", "items": { "type": "object", "required": [ "name" ], "properties": { "id": { "type": "string", "format": "uuid", "description": "The ID of the feature. Required when updating an existing feature, omit when creating a new one." }, "name": { "type": "string", "maxLength": 200, "description": "The name/description of the key feature", "example": "Double glazing" }, "include_on_portals": { "type": "boolean", "description": "Whether this feature should be included on property portals", "default": false }, "highlight": { "type": "boolean", "description": "Whether this feature should be highlighted", "default": false } } } } } } } } } } } }, "description": "Key features to create or update for the property" }, "responses": { "201": { "description": "Created - Property updated successfully with new key features", "content": { "application/vnd.api+json": { "schema": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/components/schemas/Property" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedMedia" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "422": { "$ref": "#/components/responses/422" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to create or update key features for a Property record via its `ID`.\n\n- To create new features, omit the `id` field in each feature object\n- To update existing features, include the `id` field with the feature's ID\n- The endpoint will return the updated property with all its current key features" } }, "/key-features/{property_id}/features/{feature_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "property_id", "in": "path", "required": true, "description": "The ID of the Property" }, { "schema": { "type": "string", "format": "uuid" }, "name": "feature_id", "in": "path", "required": true, "description": "The ID of the Feature to delete" } ], "delete": { "summary": "Delete a Property Key Feature", "operationId": "delete-key-features-property-features", "tags": [ "Properties" ], "responses": { "204": { "description": "No Content." }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to delete a key feature from a specific property by providing both the property's `ID` and the feature's `ID`." } }, "/property-keys": { "get": { "summary": "Get all Property Keys", "tags": [ "Property Keys" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/PropertyKeys" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-property-keys", "description": "This endpoint retrieves multiple paginated property keys along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_ident" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/property-keys/{property_key_id}": { "get": { "summary": "Get a single Property Key", "tags": [ "Property Keys" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PropertyKeys" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-single-property-key", "description": "This endpoint retrieves a single Property Key by its `UUID`.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "schema": { "type": "string", "format": "uuid" }, "name": "property_key_id", "in": "path", "required": true, "description": "The UUID of the Property Key." } ] } }, "/questionnaire-responses/{questionnaire_response_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "questionnaire_response_id", "in": "path", "required": true, "description": "The UUID of the questionnaire response to get data for." }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "questionnaire", "questionnaire.sections", "questionnaire.sections.questions", "questionnaire.sections.questions.options", "answers", "answers.question", "answers.values", "submitter", "property" ] }, "uniqueItems": true, "minItems": 1, "example": [ "questionnaire.sections.questions.options", "answers.question", "submitter", "property" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ], "get": { "summary": "Get a Questionnaire Response", "operationId": "get-questionnaire-responses-questionnaireResponseId", "tags": [ "Questionnaire Responses" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/QuestionnaireResponse" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedQuestionnaire" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedUser" }, { "$ref": "#/components/schemas/IncludedQuestionnaireSection" }, { "$ref": "#/components/schemas/IncludedQuestionnaireQuestion" }, { "$ref": "#/components/schemas/IncludedQuestionnaireQuestionOption" }, { "$ref": "#/components/schemas/IncludedQuestionnaireAnswer" }, { "$ref": "#/components/schemas/IncludedQuestionnaireAnswerValue" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint retrieves the most recent questionnaire response by its UUID, including all sections, questions, and answers." } }, "/sales": { "get": { "summary": "Get all Sales", "tags": [ "Sales" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Sale" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedVendor" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedSolicitor" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-sales", "description": "This endpoint retrieves multiple paginated sales along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "completed", "fallen_through", "offer_accepted", "exchanged", "under_offer" ] }, "uniqueItems": true, "minItems": 1, "maxItems": 5, "example": [ "completed", "fallen_through", "offer_accepted", "exchanged", "under_offer" ] }, "in": "query", "name": "filter[status]", "description": "Filter by results with specific statuses.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_branch" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "applicant", "applicant.people", "vendor", "vendor.people", "branch", "notes", "buyerSolicitor", "sellerSolicitor" ] }, "uniqueItems": true, "minItems": 1, "example": [ "property", "applicant", "vendor", "branch", "notes" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/sales/{sale_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "sale_id", "in": "path", "required": true, "description": "The UUID of the Sale." } ], "get": { "summary": "Get a single Sale", "tags": [ "Sales" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Sale" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedVendor" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedSolicitor" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-sales-saleId", "description": "This endpoint retrieves a single sale by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "applicant", "applicant.people", "vendor", "vendor.people", "branch", "notes", "buyerSolicitor", "sellerSolicitor" ] }, "uniqueItems": true, "minItems": 1, "example": [ "property", "applicant", "vendor", "branch", "notes", "buyerSolicitor" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" } ] } }, "/sales-offers": { "get": { "summary": "Get all Sales Offers", "tags": [ "Sales Offers" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/SalesOffer" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedSalesListing" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedPerson" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-sales-offers", "description": "This endpoint retrieves multiple paginated sales offers along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "pending", "put_to_vendor", "accepted", "rejected", "withdrawn" ] }, "uniqueItems": true, "minItems": 1, "maxItems": 5, "example": [ "pending", "put_to_vendor", "accepted", "rejected", "withdrawn" ] }, "in": "query", "name": "filter[status]", "description": "Filter by results with specific statuses.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_branch" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "salesListing", "applicant", "applicant.people", "branch", "notes" ] }, "uniqueItems": true, "minItems": 1, "example": [ "property", "applicant", "applicant.people", "branch", "notes" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/sales-offers/{sales_offer_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "sales_offer_id", "in": "path", "required": true, "description": "The UUID of the Sales Offer." } ], "get": { "summary": "Get a single Sales Offer", "tags": [ "Sales Offers" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/SalesOffer" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedSalesListing" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedNotes" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-sales-offers-salesOfferId", "description": "This endpoint retrieves a single sales offer by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "applicant", "applicant.people", "branch", "notes" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,applicant,branch,notes`", "explode": false, "style": "form" } ] } }, "/tenancies": { "get": { "summary": "Get all Tenancies", "description": "This endpoint retrieves multiple paginated tenancies along with `meta` and `pagination` information.", "tags": [ "Tenancies" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Tenancy" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedCompany" }, { "$ref": "#/components/schemas/IncludedTenants" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedInspections" }, { "$ref": "#/components/schemas/IncludedLettingsApplication" }, { "$ref": "#/components/schemas/IncludedGuarantor" }, { "$ref": "#/components/schemas/IncludedEpc" }, { "$ref": "#/components/schemas/IncludedDownloadableMedia" }, { "$ref": "#/components/schemas/IncludedSafetyCertificate" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-tenancies", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property", "property.owner", "property.branch", "owner", "owner.people", "tenants", "notes", "inspections", "lettingsApplication", "guarantors" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results supplied as a comma separated list.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/tenancies/{tenancy_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "tenancy_id", "in": "path", "required": true, "description": "The UUID of the Tenancy." } ], "get": { "summary": "Get a single Tenancy", "description": "This endpoint retrieves a single tenancy by its `UUID`.", "tags": [ "Tenancies" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Tenancy" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedGuarantor" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedCompany" }, { "$ref": "#/components/schemas/IncludedTenants" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedInspections" }, { "$ref": "#/components/schemas/IncludedDownloadableMedia" }, { "$ref": "#/components/schemas/IncludedLettingsApplication" }, { "$ref": "#/components/schemas/IncludedEpc" }, { "$ref": "#/components/schemas/IncludedSafetyCertificate" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-tenancies-tenancy_id", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property", "property.owner", "property.branch", "owner", "owner.people", "tenants", "guarantors", "notes", "inspections", "epc", "safetyCertificates", "tenancyGuide", "tenancyAgreement", "landlordOfferLetter", "tenantGuarantorReferenceForm", "tenantGuarantorReferenceReport", "tenantGuarantorIdDocument", "generatedDocument", "lettingsApplication" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results supplied as a comma separated list.", "style": "form", "explode": false } ] } }, "/tenants": { "get": { "summary": "Get all Tenants", "tags": [ "Tenants" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Tenant" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedTenancy" }, { "$ref": "#/components/schemas/IncludedNotes" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-tenants", "description": "This endpoint retrieves multiple paginated tenants along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_address" }, { "$ref": "#/components/parameters/filter_email_address" }, { "$ref": "#/components/parameters/filter_telephone_number" }, { "$ref": "#/components/parameters/filter_person_status" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "tenancies", "tenancies.property", "tenancies.property.branch", "notes" ] }, "uniqueItems": true, "minItems": 1, "example": [ "tenancies", "tenancies.property", "tenancies.property.branch", "notes" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/tenants/{tenant_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "tenant_id", "in": "path", "required": true, "description": "The UUID of the Tenant." } ], "get": { "summary": "Get a single Tenant", "tags": [ "Tenants" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Tenant" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedTenancy" }, { "$ref": "#/components/schemas/IncludedNotes" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-tenants-tenantId", "description": "This endpoint retrieves a single tenant by their `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "tenancies", "tenancies.property", "tenancies.property.branch", "notes" ] }, "uniqueItems": true, "minItems": 1, "example": [ "tenancies", "tenancies.property", "tenancies.property.branch", "notes" ] }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" } ] } }, "/users": { "get": { "summary": "Get all Users", "tags": [ "Users" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/User" } }, "included": { "type": "array", "items": { "$ref": "#/components/schemas/IncludedBranch" } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-users", "description": "This endpoint retrieves multiple paginated users along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "branch" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "explode": false, "style": "form" } ] } }, "/users/{user_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "user_id", "in": "path", "required": true, "description": "The UUID of the User." } ], "get": { "summary": "Get a single User", "tags": [ "Users" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/User" }, "included": { "type": "array", "items": { "$ref": "#/components/schemas/IncludedBranch" } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-users-userId", "description": "This endpoint retrieves a single user by their `UUID`.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "branch", "ownedProperties", "applicants" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `branch,ownedProperties,applicants`", "explode": false, "style": "form" } ] } }, "/valuations": { "get": { "summary": "Get all Valuations", "tags": [ "Valuations" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Valuation" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedValuer" }, { "$ref": "#/components/schemas/IncludedValuationSalesReport" }, { "$ref": "#/components/schemas/IncludedValuationLettingsReport" }, { "$ref": "#/components/schemas/IncludedSalesInstruction" }, { "$ref": "#/components/schemas/IncludedLettingsInstruction" }, { "$ref": "#/components/schemas/IncludedLostValuationDetail" }, { "$ref": "#/components/schemas/IncludedFollowUp" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-valuations", "description": "This endpoint retrieves multiple paginated valuations along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "in": "query", "name": "filter[branch]", "description": "Filter the Valuations by Branch." }, { "schema": { "type": "string", "enum": [ "sales", "lettings" ] }, "in": "query", "name": "filter[type]", "description": "Filter Valuations by either Sales or Lettings." }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "booked", "completed", "awaiting_response", "instructed", "lost", "not_attended", "cancelled" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[status]", "description": "Filter the Valuations by their status.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/filter_booked_from" }, { "$ref": "#/components/parameters/filter_booked_to" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_cancelled" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "branch", "notes", "followUp", "owner", "owner.people", "valuer", "salesReport", "lettingsReport", "salesInstruction", "lettingsInstruction", "lostValuationDetail" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,branch,notes,followUp,owner,valuer`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/valuations/{valuation_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "valuation_id", "in": "path", "required": true, "description": "The UUID of the Valuation." } ], "get": { "summary": "Get a single Valuation", "tags": [ "Valuations" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Valuation" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedValuer" }, { "$ref": "#/components/schemas/IncludedValuationSalesReport" }, { "$ref": "#/components/schemas/IncludedValuationLettingsReport" }, { "$ref": "#/components/schemas/IncludedSalesInstruction" }, { "$ref": "#/components/schemas/IncludedLettingsInstruction" }, { "$ref": "#/components/schemas/IncludedLostValuationDetail" }, { "$ref": "#/components/schemas/IncludedFollowUp" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-valuations-valuationId", "description": "This endpoint retrieves a single valuation by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "branch", "notes", "followUp", "owner", "owner.people", "valuer", "salesReport", "lettingsReport", "salesInstruction", "lettingsInstruction", "lostValuationDetail" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,branch,notes,followUp,owner,valuer`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_cancelled" } ] } }, "/vendors": { "get": { "summary": "Get all Vendors", "tags": [ "Vendors" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Vendor" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedNegotiator" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-vendors", "description": "This endpoint retrieves multiple paginated vendors along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_person_status" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "not_on_the_market", "valuation_lost", "valuation_booked", "valuation_pending", "valuation_cancelled", "valuation_completed", "instructed", "for_sale", "under_offer", "sold_stc", "exchanged", "for_sale_and_to_let", "withdrawn_sales", "withdrawn_sales_and_lettings", "completed" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[property_status]", "description": "Filter the Vendors by the Status of their Properties.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/filter_address" }, { "$ref": "#/components/parameters/filter_email_address" }, { "$ref": "#/components/parameters/filter_telephone_number" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "properties", "properties.branch", "valuations", "notes", "negotiator" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `properties,properties.branch,valuations,notes,negotiator`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/vendors/{vendor_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "vendor_id", "in": "path", "required": true, "description": "The UUID of the Vendor." } ], "get": { "summary": "Get a single Vendor", "tags": [ "Vendors" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Vendor" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedNegotiator" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-vendors-vendorId", "description": "This endpoint retrieves a single vendor by their `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "properties", "properties.branch", "valuations", "notes", "negotiator" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `properties,properties.branch,valuations,notes,negotiator`", "explode": false, "style": "form" } ] } }, "/viewings": { "get": { "summary": "Get all Viewings", "tags": [ "Viewings" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Viewing" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedViewer" }, { "$ref": "#/components/schemas/IncludedViewingFeedback" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" }, { "type": "object", "properties": { "": { "type": "string" } } }, { "type": "object" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-viewings", "description": "This endpoint retrieves multiple paginated viewings along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "in": "query", "name": "filter[branch]", "description": "Filter the Viewings by Branch." }, { "schema": { "type": "string", "enum": [ "sales", "lettings" ] }, "in": "query", "name": "filter[type]", "description": "Filter Viewings by either Sales or Lettings." }, { "schema": { "type": "string", "enum": [ "unconfirmed", "rejected", "confirmed", "cancelled", "completed", "missed" ] }, "in": "query", "name": "filter[status]", "description": "Filter the Viewings by their status. Supports comma-separated values for multiple statuses." }, { "$ref": "#/components/parameters/filter_booked_from" }, { "$ref": "#/components/parameters/filter_booked_to" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_cancelled" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "applicant", "branch", "notes", "owner", "owner.people", "viewer", "viewingFeedback" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,applicant,branch,notes,owner,viewer`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/viewings/{viewing_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "viewing_id", "in": "path", "required": true, "description": "The UUID of the Viewing." } ], "get": { "summary": "Get a single Viewing", "tags": [ "Viewings" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Viewing" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedViewer" }, { "$ref": "#/components/schemas/IncludedViewingFeedback" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-viewings-viewingId", "description": "This endpoint retrieves a single viewing by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "applicant", "branch", "notes", "owner", "owner.people", "viewer", "viewingFeedback" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,applicant,branch,notes,owner,viewer`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_cancelled" } ] } }, "/interested-applicants": { "get": { "summary": "Get all Interested Applicants", "tags": [ "Interested Applicants" ], "operationId": "get-interested-applicants", "description": "This endpoint retrieves multiple paginated interested applicants along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "uniqueItems": true, "minItems": 1, "enum": [ "applicant", "property" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" }, { "schema": { "type": "string", "uniqueItems": true }, "in": "query", "name": "filter[property]", "description": "Filter by the property the interested applicants belong to (by property id)" } ], "responses": { "200": { "description": "Get all Interested Applicants.", "headers": {}, "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/InterestedApplicant" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedProperty" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } } } }, "/interested-applicants/{interested_applicant_id}": { "parameters": [ { "schema": { "type": "string" }, "name": "interested_applicant_id", "in": "path", "required": true } ], "get": { "summary": "Get a single Interested Applicant.", "tags": [ "Interested Applicants" ], "responses": { "200": { "description": "Get Interested Applicant by `UUID`.", "headers": {}, "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/InterestedApplicant" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedApplicant" }, { "$ref": "#/components/schemas/IncludedProperty" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-interested-applicants-interested_applicant_id", "description": "This endpoint retrieves a single interested applicant by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "uniqueItems": true, "minItems": 1, "enum": [ "applicant", "property" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ] } }, "/inspections": { "get": { "summary": "Get all Inspections", "tags": [ "Inspections" ], "operationId": "get-inspections", "description": "This endpoint retrieves multiple paginated inspections along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "uniqueItems": true, "minItems": 1, "enum": [ "property", "inspector", "bookedBy" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" }, { "schema": { "type": "string", "uniqueItems": true, "enum": [ "need_to_book", "overdue", "unconfirmed", "booked", "incomplete", "complete", "cancelled" ] }, "in": "query", "name": "filter[status]", "description": "Filter the status of inspections." }, { "schema": { "type": "string", "format": "datetime" }, "in": "query", "name": "filter[due_date_from]", "description": "Filter the inspections due date from the input date." }, { "schema": { "type": "string", "format": "datetime" }, "in": "query", "name": "filter[due_date_to]", "description": "Filter the inspections due date to the input date." }, { "schema": { "type": "string", "format": "datetime" }, "in": "query", "name": "filter[booked_from]", "description": "If the inspection has been booked in, filter the inspections booked date from the input date." }, { "schema": { "type": "string", "format": "datetime" }, "in": "query", "name": "filter[booked_to]", "description": "If the inspection has been booked in, filter the inspections booked date to the input date." }, { "schema": { "type": "array", "uniqueItems": true, "items": { "type": "string", "enum": [ "due_date", "-due_date" ] } }, "in": "query", "name": "sort", "style": "form", "explode": false, "description": "Sort the inspections by the input value." } ], "responses": { "200": { "description": "Get all Inspections.", "headers": {}, "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Inspection" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedInspector" }, { "$ref": "#/components/schemas/IncludedBookedBy" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } } } }, "/inspections/{inspection_id}": { "parameters": [ { "schema": { "type": "string" }, "name": "inspection_id", "in": "path", "required": true } ], "get": { "summary": "Get a single Inspection.", "tags": [ "Inspections" ], "responses": { "200": { "description": "Get Inspection by `UUID`.", "headers": {}, "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Inspection" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedInspector" }, { "$ref": "#/components/schemas/IncludedBookedBy" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-inspections-inspection_id", "description": "This endpoint retrieves a single inspection by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "uniqueItems": true, "minItems": 1, "enum": [ "property", "inspector", "bookedBy" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ] } }, "/invoices": { "get": { "summary": "Get all Invoices", "tags": [ "Invoices" ], "operationId": "get-invoices", "description": "This endpoint retrieves multiple paginated invoices along with `meta` and `pagination` information.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "uniqueItems": true, "minItems": 1, "enum": [ "property", "owner", "line_items" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false }, { "schema": { "type": "boolean" }, "in": "query", "name": "filter[paid]", "description": "Filter whether the invoice is paid or not" }, { "schema": { "type": "boolean" }, "in": "query", "name": "filter[voided]", "description": "Filter whether the invoice is voided or not" }, { "schema": { "type": "array", "items": { "type": "string", "uniqueItems": true, "enum": [ "sales", "lettings" ] } }, "in": "query", "name": "filter[invoice_type]", "description": "Optional filter to filter between sales and lettings invoices.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ], "responses": { "200": { "description": "Get all Invoices.", "headers": {}, "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Invoice" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedFees" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } } } }, "/invoices/{invoice_id}": { "parameters": [ { "schema": { "type": "string" }, "name": "invoice_id", "in": "path", "required": true } ], "get": { "summary": "Get a single Invoice.", "tags": [ "Invoices" ], "responses": { "200": { "description": "Get Invoice by `UUID`.", "headers": {}, "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Invoice" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedFees" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-invoices-invoice_id", "description": "This endpoint retrieves a single Invoice by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "uniqueItems": true, "minItems": 1, "enum": [ "property", "owner", "line_items" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ] }, "patch": { "summary": "Mark an Invoice as paid", "operationId": "patch-invoices-invoiceId", "tags": [ "Invoices" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/Invoice" }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "409": { "$ref": "#/components/responses/409" }, "415": { "$ref": "#/components/responses/415" }, "422": { "$ref": "#/components/responses/422" }, "500": { "$ref": "#/components/responses/500" } }, "description": "This endpoint allows you to mark an Invoice as paid by providing a `paid_at` date.", "requestBody": { "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "invoice" ] }, "id": { "type": "string", "format": "uuid" }, "attributes": { "type": "object", "required": [ "paid_at" ], "properties": { "paid_at": { "type": "string", "format": "date-time", "description": "The date the invoice was paid.", "example": "2026-02-24T14:30:00Z" } } } } } }, "required": [ "data" ] } } }, "description": "Mark the invoice as paid by providing the paid date." } } }, "/photo-and-measures": { "get": { "summary": "Get all Photo & Measures", "tags": [ "Photos and Measures" ], "operationId": "get-photo-and-measures", "description": "This endpoint retrieves multiple paginated photo & measures along with `meta` and `pagination` information.", "responses": { "200": { "description": "Get all Photo & Measures.", "headers": {}, "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/PhotoAndMeasure" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedPhotographer" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "in": "query", "name": "filter[branch]", "description": "Filter the Photo & Measures by Branch." }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "booked", "completed", "cancelled" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "filter[status]", "description": "Filter the Photo & Measures by their status.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/filter_booked_from" }, { "$ref": "#/components/parameters/filter_booked_to" }, { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_cancelled" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "branch", "notes", "owner", "owner.people", "photographer" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,branch,notes,owner,photographer`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/photo-and-measures/{photo_and_measure_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "photo_and_measure_id", "in": "path", "required": true, "description": "The UUID of the Photo & Measure." } ], "get": { "summary": "Get a single Photo & Measure", "tags": [ "Photos and Measures" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PhotoAndMeasure" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedNotes" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedPhotographer" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-photo-and-measures-photoAndMeasureId", "description": "This endpoint retrieves a single photo & measure by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "branch", "notes", "owner", "owner.people", "photographer" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,branch,notes,owner,photographer`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_cancelled" } ] } }, "/sales-instructions": { "get": { "summary": "Get all Sales Instructions", "tags": [ "Sales Instructions" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/SalesInstruction" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedFees" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-sales-instructions", "description": "This endpoint retrieves multiple paginated sales instructions along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "owner", "owner.people", "valuation", "fees" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,owner`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/sales-instructions/{sales_instruction_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "sales_instruction_id", "in": "path", "required": true, "description": "The UUID of the Sales Instruction." } ], "get": { "summary": "Get a single Sales Instruction", "tags": [ "Sales Instructions" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/SalesInstruction" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedValuation" }, { "$ref": "#/components/schemas/IncludedFees" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-sales-instructions-salesInstructionId", "description": "This endpoint retrieves a single sales instruction by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "owner", "owner.people", "valuation", "fees" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,owner`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_cancelled" } ] } }, "/lettings-instructions": { "get": { "summary": "Get all Lettings Instructions", "tags": [ "Lettings Instructions" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/LettingsInstruction" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedCompany" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedValuation" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-lettings-instructions", "description": "This endpoint retrieves multiple paginated lettings instructions along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "$ref": "#/components/parameters/filter_created_from" }, { "$ref": "#/components/parameters/filter_created_to" }, { "$ref": "#/components/parameters/filter_updated_from" }, { "$ref": "#/components/parameters/filter_updated_to" }, { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "owner", "owner.people", "valuation" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,owner`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/lettings-instructions/{lettings_instruction_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "lettings_instruction_id", "in": "path", "required": true, "description": "The UUID of the Lettings Instruction." } ], "get": { "summary": "Get a single Lettings Instruction", "tags": [ "Lettings Instructions" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/LettingsInstruction" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedBranch" }, { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedOwner" }, { "$ref": "#/components/schemas/IncludedCompany" }, { "$ref": "#/components/schemas/IncludedPerson" }, { "$ref": "#/components/schemas/IncludedValuation" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-lettings-instructions-lettingsInstructionId", "description": "This endpoint retrieves a single lettings instruction by its `UUID`.", "parameters": [ { "schema": { "type": "array", "items": { "type": "string", "enum": [ "property", "owner", "owner.people", "valuation" ] }, "uniqueItems": true, "minItems": 1 }, "in": "query", "name": "include", "description": "Optional related entities to include in the results, e.g. `property,owner`", "explode": false, "style": "form" }, { "$ref": "#/components/parameters/filter_cancelled" } ] } }, "/move-outs": { "get": { "summary": "Get all Move outs", "tags": [ "Move Outs" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/MoveOut" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedTenancy" }, { "$ref": "#/components/schemas/IncludedMeterReading" } ] } }, "links": { "$ref": "#/components/schemas/Links" }, "meta": { "allOf": [ { "$ref": "#/components/schemas/Pagination" } ] }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-move-outs", "description": "This endpoint retrieves multiple paginated MoveOuts along with `meta` and `pagination` information.", "parameters": [ { "$ref": "#/components/parameters/filter_trashed" }, { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property", "tenancy", "meterReadings" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false }, { "$ref": "#/components/parameters/page_size" }, { "$ref": "#/components/parameters/page_number" } ] } }, "/move-outs/{move_out_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "move_out_id", "in": "path", "required": true, "description": "The UUID of the MoveOut." } ], "get": { "summary": "Get a single MoveOut", "tags": [ "Move Outs" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/MoveOut" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedTenancy" }, { "$ref": "#/components/schemas/IncludedMeterReading" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-moveOuts-MoveOutId", "description": "This endpoint retrieves a single MoveOut by its `UUID`.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property", "tenancy", "meterReadings" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ] } }, "/esign-documents/{esign_document_id}": { "parameters": [ { "schema": { "type": "string", "format": "uuid" }, "name": "esign_document_id", "in": "path", "required": true, "description": "The UUID of the E-Sign Document." } ], "get": { "summary": "Get a single E-Sign Document", "tags": [ "E-Sign Documents" ], "responses": { "200": { "description": "OK.", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/EsignDocument" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedEsignDocumentRecipient" }, { "$ref": "#/components/schemas/IncludedPerson" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "operationId": "get-esign-documents-esign-document-id", "description": "This endpoint retrieves a single E-Sign Document by its `UUID`.", "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "recipients", "recipients.person" ] } }, "in": "query", "name": "include", "description": "Optional related entities to include in the results.", "style": "form", "explode": false } ] } }, "/portal-listings/{listing_id}": { "parameters": [ { "schema": { "type": "string" }, "name": "listing_id", "in": "path", "required": true, "description": "External listing ID from the portal" } ], "get": { "summary": "Get Portal Listing by ID", "description": "This endpoint retrieves a single portal listing by its external listing ID.", "operationId": "get-portal-listings-listing-id", "tags": [ "Portal Listings" ], "responses": { "200": { "description": "Portal listing retrieved successfully", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/PortalListing" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/IncludedProperty" }, { "$ref": "#/components/schemas/IncludedPortal" }, { "$ref": "#/components/schemas/IncludedSalesListing" }, { "$ref": "#/components/schemas/IncludedLettingsListing" } ] } }, "links": { "$ref": "#/components/schemas/IncludedLinks" }, "meta": { "type": "object" }, "jsonapi": { "$ref": "#/components/schemas/JsonApi" } } }, "examples": { "Basic Portal Listing": { "summary": "Basic portal listing response", "value": { "data": { "id": "550e8400-e29b-41d4-a716-446655440010", "type": "portal_listing", "attributes": { "remote_identifier": "12345", "remote_url": "https://portal.com/listing/12345", "listing_type": "salesListing", "active": true, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }, "relationships": { "portal": { "data": { "type": "portal", "id": "550e8400-e29b-41d4-a716-446655440020" } } }, "links": { "self": "https://api.street.co.uk/open-api/v1/portal-listings/12345" } } } }, "Portal Listing with Property": { "summary": "Portal listing with property included", "value": { "data": { "id": "550e8400-e29b-41d4-a716-446655440011", "type": "portal_listing", "attributes": { "remote_identifier": "12345", "remote_url": "https://portal.com/listing/12345", "listing_type": "salesListing", "active": true, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" }, "relationships": { "property": { "data": { "type": "property", "id": "550e8400-e29b-41d4-a716-446655440001" } } }, "links": { "self": "https://api.street.co.uk/open-api/v1/portal-listings/12345" } }, "included": [ { "id": "550e8400-e29b-41d4-a716-446655440001", "type": "property", "attributes": { "inline_address": "123 Main Street, London", "public_address": "123 Main Street, London", "bedrooms": 3, "bathrooms": 2, "receptions": 1, "status": "For Sale" }, "links": { "self": "https://api.street.co.uk/open-api/v1/properties/550e8400-e29b-41d4-a716-446655440001" } } ] } } } } } }, "400": { "$ref": "#/components/responses/400" }, "401": { "$ref": "#/components/responses/401" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "406": { "$ref": "#/components/responses/406" }, "415": { "$ref": "#/components/responses/415" }, "500": { "$ref": "#/components/responses/500" } }, "parameters": [ { "schema": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "property", "portal", "salesListing", "lettingsListing" ] } }, "in": "query", "name": "include", "description": "Comma-separated list of relationships to include, e.g. `property,portal`", "style": "form", "explode": false } ] } } }, "components": { "schemas": { "jsonApiErrorResponseBody": { "title": "JSON:API Error Response Body", "description": "Response body for JSON:API errors, containing an array of `errors` in place of the `data` property provided in JSON:API success responses. Used for non-400/500 error codes where only a single error is expected.", "type": "object", "properties": { "meta": { "type": "object" }, "source": { "type": "object", "description": "The primary source of the conflict for 409 responses.", "properties": { "pointer": { "type": "string", "description": "JSON Pointer to the conflicting request value." }, "parameter": { "type": "string", "description": "URI parameter related to the conflict." } } }, "errors": { "description": "An array of error objects providing additional information about problems encountered while processing the request.", "type": "array", "maxItems": 1, "items": { "$ref": "#/components/schemas/jsonApiError" } } }, "required": [ "errors" ] }, "jsonApiMultiErrorResponseBody": { "title": "JSON:API Multi-Error Response Body", "description": "Response body for JSON:API errors that may contain multiple error objects (400 Bad Request and 500 Internal Server Error).", "type": "object", "properties": { "meta": { "type": "object" }, "errors": { "description": "An array of error objects providing additional information about problems encountered while processing the request.", "type": "array", "items": { "$ref": "#/components/schemas/jsonApiError" } } }, "required": [ "errors" ] }, "jsonApiError": { "title": "JSON:API Error Object", "description": "A JSON:API object representing a single error.", "type": "object", "properties": { "title": { "type": "string" }, "detail": { "type": "string" }, "code": { "type": "string" }, "source": { "type": "object", "description": "An object containing references to the primary source of the error.", "properties": { "pointer": { "type": "string", "description": "A JSON Pointer to the value in the request document that caused the error." }, "parameter": { "type": "string", "description": "A string indicating which URI query parameter caused the error." } } } }, "required": [ "title" ], "examples": [ { "title": "401 Unauthorized", "detail": "The requester is not authorized to access the resource.", "code": "401" } ] }, "LettingsApplication": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_application" ] }, "attributes": { "$ref": "#/components/schemas/LettingsApplicationAttributes" }, "relationships": { "$ref": "#/components/schemas/DownloadableMedia" } } } ] }, "Applicant": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] }, "attributes": { "$ref": "#/components/schemas/ApplicantAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "viewings": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewing" ] } } } } } } ] }, "offers": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_offer", "lettings_offer" ] } } } } } } ] }, "people": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "person" ] } } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] }, "sales": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sale" ] } } } } } } ] }, "followUps": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "follow_up" ] } } } } } } ] } } } } } ], "examples": [], "title": "Applicant" }, "ApplicantAttributes": { "type": "object", "title": "Applicant (attributes)", "properties": { "applicant_type": { "type": "string", "enum": [ "sales", "lettings" ] }, "name": { "type": "string", "example": "Dave Smith & Helen Bloggs" }, "financial_position": { "type": [ "string", "null" ], "example": "Agreement in Principle in place" }, "buying_position": { "example": "Property to sell", "enum": [ "First-time buyer", "Investor", "Buy to let investor", "No property to sell", "Developer", "Buying Agent", "In process of selling - Valuation", "In process of selling - On the market", "In process of selling - Sold STC", "Property to sell", "In process of selling - Under Offer", null ] }, "letting_position": { "type": [ "string", "null" ], "enum": [ "Homeowner", "Renting", "Living with Family", "Selling", "Other", null ] }, "requirements": { "type": "object", "properties": { "min_price": { "type": [ "integer", "null" ] }, "max_price": { "type": [ "integer", "null" ] }, "min_bedrooms": { "type": [ "integer", "null" ], "minimum": 1 }, "preferred_bedrooms": { "type": [ "integer", "null" ], "minimum": 1 }, "desired_move_in_date": { "type": [ "string", "null" ], "format": "date" }, "desired_tenancy_period": { "type": [ "integer", "null" ] }, "furnished": { "type": [ "boolean", "null" ] }, "pets_allowed": { "type": [ "boolean", "null" ] }, "outside_space": { "oneOf": [ { "$ref": "#/components/schemas/ApplicantPreferenceChoice" }, { "type": "null" } ] }, "min_land_area": { "type": [ "integer", "null" ] }, "garage": { "oneOf": [ { "$ref": "#/components/schemas/ApplicantPreferenceChoice" }, { "type": "null" } ] }, "new_build": { "oneOf": [ { "$ref": "#/components/schemas/ApplicantPreferenceChoice" }, { "type": "null" } ] }, "retirement_property": { "oneOf": [ { "$ref": "#/components/schemas/ApplicantPreferenceChoice" }, { "type": "null" } ] }, "min_parking": { "type": [ "integer", "null" ] }, "preferred_parking": { "type": [ "integer", "null" ] }, "property_type_preference": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ApplicantPreferenceChoice" }, "example": { "house": "Don't Mind", "flat": "Might Consider", "semi_detached": "Would Prefer" } }, "new_property_type_preference": { "deprecated": true, "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ApplicantPreferenceChoice" }, "example": { "house": "Don't Mind", "flat": "Might Consider", "semi_detached": "Would Prefer" } }, "areas": { "type": "array", "uniqueItems": true, "items": { "type": "string", "example": "Ellesmere Park" } } } }, "active": { "type": "boolean" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "lead_rating": { "type": [ "string", "null" ], "enum": [ "hot", "warm", "cold", null ] } } }, "Area": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "area" ] }, "attributes": { "$ref": "#/components/schemas/AreaAttributes" } } } ], "title": "Area", "x-tags": [ "Areas" ] }, "AreaAttributes": { "type": "object", "title": "Area (attributes)", "properties": { "name": { "type": [ "string" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Branch": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] }, "attributes": { "$ref": "#/components/schemas/BranchAttributes" }, "relationships": { "type": "object", "properties": { "users": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "user" ] } } } } } } ] }, "properties": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } } ] }, "applicants": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] } } } } } } ] } } } } } ], "title": "Branch", "x-tags": [ "Branches" ] }, "BranchAttributes": { "type": "object", "title": "Branch (attributes)", "properties": { "address": { "$ref": "#/components/schemas/AddressSimple" }, "name": { "type": "string" }, "public_name": { "type": [ "string", "null" ] }, "email_address": { "type": "string", "format": "email" }, "telephone": { "type": "string" }, "website": { "type": [ "string", "null" ], "format": "uri" }, "about_branch_copy": { "type": [ "string", "null" ] }, "disclaimer": { "type": [ "string", "null" ] }, "matching_links_to_website": { "type": [ "boolean", "null" ], "readOnly": true, "description": "If true, custom property matching links are enabled for the branch." }, "matching_url_pattern": { "type": [ "string", "null" ], "readOnly": true, "description": "Pattern for property match URLs on the agent website: https://www.yourwebsite.co.uk/property/{UUID}" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Brand": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "brand" ] }, "attributes": { "$ref": "#/components/schemas/BrandAttributes" } } } ], "title": "Brand", "x-tags": [ "Brands" ] }, "BrandAttributes": { "type": "object", "title": "Brand (attributes)", "properties": { "name": { "type": "string" }, "primary_colour": { "type": "string" }, "secondary_colour": { "type": "string" }, "tertiary_colour": { "type": "string" }, "about_us": { "type": "string" }, "why_instruct_us": { "type": "string" }, "valuation_url": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Company": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "company" ] }, "attributes": { "$ref": "#/components/schemas/CompanyAttributes" }, "relationships": { "type": "object", "properties": { "properties": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } } ] }, "applicants": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] } } } } } } ] }, "people": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "person" ] } } } } } } ] } } } } } ], "x-tags": [ "Companies" ], "title": "Company" }, "CompanyAttributes": { "type": "object", "title": "Company Attributes", "properties": { "name": { "type": "string", "example": "Adams Builders" }, "address": { "oneOf": [ { "$ref": "#/components/schemas/AddressSimple" }, { "type": "null" } ] }, "telephone_number": { "type": "string" }, "email_address": { "type": "string" }, "owner": { "oneOf": [ { "$ref": "#/components/schemas/PersonSimple" }, { "type": "null" } ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "CompanyTenantAttributes": { "type": "object", "title": "Company Attributes", "properties": { "tenant_type": { "type": "string", "const": "company" }, "name": { "type": "string", "example": "Adams Builders" }, "address": { "$ref": "#/components/schemas/AddressSimple" }, "telephone_number": { "type": "string" }, "email_address": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Enquiry": { "title": "Enquiry", "x-tags": [ "Enquiries" ], "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "enquiry" ] }, "attributes": { "$ref": "#/components/schemas/EnquiryAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } }, { "type": "null" } ] } } } ] }, "person": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "person" ] } } }, { "type": "null" } ] } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ] }, "EnquiryAttributes": { "title": "Enquiry (attributes)", "type": "object", "examples": [], "properties": { "first_name": { "type": [ "string", "null" ] }, "last_name": { "type": [ "string", "null" ] }, "email_address": { "type": [ "string", "null" ], "format": "email" }, "telephone_number": { "type": [ "string", "null" ] }, "message": { "type": "string" }, "property_uuid": { "type": [ "string", "null" ], "format": "uuid" }, "custom_source": { "type": [ "string", "null" ], "maxLength": 25, "example": "website" }, "branch_uuid": { "type": [ "string", "null" ], "format": "uuid" }, "request_viewing": { "type": "boolean" }, "request_valuation": { "type": "boolean" }, "property_to_sell": { "type": "boolean" }, "property_to_let": { "type": "boolean" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "FollowUp": { "title": "Follow Up", "x-tags": [ "Follow Ups" ], "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "follow_up" ] }, "attributes": { "$ref": "#/components/schemas/FollowUpAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } }, { "type": "null" } ] } } } ] }, "negotiator": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "negotiator" ] } } }, { "type": "null" } ] } } } ] }, "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } }, { "type": "null" } ] } } } ] }, "sale": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sale" ] } } }, { "type": "null" } ] } } } ] }, "salesApplicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "salesApplicant" ] } } }, { "type": "null" } ] } } } ] }, "lettingsApplicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettingsApplicant" ] } } }, { "type": "null" } ] } } } ] }, "valuation": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation" ] } } }, { "type": "null" } ] } } } ] }, "viewing": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewing" ] } } }, { "type": "null" } ] } } } ] } } } } } ] }, "FollowUpAttributes": { "title": "Follow Up (attributes)", "type": "object", "properties": { "subject_id": { "type": [ "string", "null" ], "format": "uuid", "deprecated": true, "description": "Deprecated: use the subject relationship instead." }, "subject_type": { "type": [ "string", "null" ], "enum": [ "property", "lettingsApplicant", "salesApplicant", "sale", "valuation", "viewing", null ] }, "due_date": { "type": [ "string", "null" ], "format": "date-time" }, "note": { "type": [ "string", "null" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Todo": { "title": "Task", "x-tags": [ "Tasks" ], "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "todo" ] }, "attributes": { "$ref": "#/components/schemas/TodoAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "negotiator": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "negotiator" ] } } }, { "type": "null" } ] } } } ] }, "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } }, { "type": "null" } ] } } } ] }, "sale": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sale" ] } } }, { "type": "null" } ] } } } ] }, "salesApplicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "salesApplicant" ] } } }, { "type": "null" } ] } } } ] }, "lettingsApplicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettingsApplicant" ] } } }, { "type": "null" } ] } } } ] }, "valuation": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation" ] } } }, { "type": "null" } ] } } } ] }, "viewing": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewing" ] } } }, { "type": "null" } ] } } } ] } } } } } ] }, "TodoAttributes": { "title": "Task (attributes)", "type": "object", "properties": { "subject_id": { "type": [ "string", "null" ], "format": "uuid", "deprecated": true, "description": "Deprecated: use the subject relationship instead." }, "subject_type": { "type": [ "string", "null" ], "enum": [ "property", "lettingsApplicant", "salesApplicant", "sale", "valuation", "viewing", null ] }, "title": { "type": "string" }, "body": { "type": [ "string", "null" ] }, "due_date": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "TodoType": { "title": "TaskType", "x-tags": [ "Task Types" ], "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "todoType" ] }, "attributes": { "$ref": "#/components/schemas/TodoTypeAttributes" }, "relationships": { "type": "object" } } } ] }, "TodoTypeAttributes": { "title": "TaskType (attributes)", "type": "object", "properties": { "name": { "type": "string" }, "colour": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "Landlord": { "title": "Landlord", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "landlord" ] }, "attributes": { "$ref": "#/components/schemas/LandlordAttributes" }, "relationships": { "type": "object", "properties": { "properties": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ], "x-tags": [ "Landlords" ] }, "LandlordAttributes": { "title": "Landlord (attributes)", "allOf": [ { "$ref": "#/components/schemas/PersonSimple" }, { "type": "object", "properties": { "landlord_status": { "type": [ "string", "null" ], "enum": [ "Current", "Previous" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } } ], "examples": [] }, "LettingsOffer": { "title": "LettingsOffer", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_offer" ] }, "attributes": { "$ref": "#/components/schemas/LettingsOfferAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "lettingsListing": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_listing" ] } } } } } ] }, "applicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ], "x-tags": [ "Lettings Offers" ] }, "LettingsOfferAttributes": { "type": "object", "title": "Lettings Offer (attributes)", "properties": { "address": { "$ref": "#/components/schemas/AddressSimple" }, "desired_tenancy_length": { "type": "integer", "example": 12, "description": "Number of months desired" }, "desired_move_in_date": { "type": "string", "format": "date-time" }, "rent_amount": { "type": "integer" }, "rent_frequency": { "type": "string", "enum": [ "Per Week", "Per 2 Weeks", "Per 4 Weeks", "Per Calendar Month", "Per Quarter", "Per 6 Months", "Per Annum" ] }, "tenants_under_18": { "type": "integer" }, "pets": { "type": "boolean" }, "smokers": { "type": "boolean" }, "status": { "type": "string", "enum": [ "Pending", "Relayed To Owner", "Rejected", "Accepted", "Withdrawn" ] }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "MaintenanceRequest": { "title": "Maintenance Request", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "maintenance-request" ] }, "attributes": { "$ref": "#/components/schemas/MaintenanceRequestAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] } } } } } ] }, "MaintenanceJob": { "title": "Maintenance Job", "x-tags": [ "Maintenance Jobs" ], "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "maintenance-job" ] }, "attributes": { "$ref": "#/components/schemas/MaintenanceJobAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] } } } } } ] }, "MaintenanceJobAttributes": { "title": "Maintenance Job (attributes)", "type": "object", "properties": { "address": { "$ref": "#/components/schemas/AddressSimple" }, "summary": { "type": "string" }, "description": { "type": "string" }, "priority": { "type": "string", "enum": [ "low", "medium", "high", "urgent", "emergency" ] }, "status": { "type": "string", "enum": [ "pending", "ongoing", "closed", "cancelled" ] }, "reported_by": { "type": "string", "enum": [ "tenant", "landlord", "contractor", "agent" ] }, "reported_at": { "type": "string", "format": "date-time" }, "completed_at": { "type": [ "string", "null" ], "format": "date-time" }, "cancelled_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "MaintenanceRequestAttributes": { "title": "Maintenance Request (attributes)", "type": "object", "properties": { "summary": { "type": "string" }, "description": { "type": "string" }, "priority": { "type": "string", "enum": [ "Low", "Medium", "High", "Urgent", "Emergency" ] }, "reported_at": { "type": "string", "format": "date-time" } } }, "Note": { "title": "Note", "x-tags": [ "Notes" ], "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] }, "attributes": { "$ref": "#/components/schemas/NoteAttributes" } } } ] }, "NoteAttributes": { "title": "Note (attributes)", "type": "object", "properties": { "body": { "type": [ "string", "null" ] }, "author": { "type": [ "string", "null" ] }, "pinned_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "OwnerAttributes": { "title": "Owner (attributes)", "type": "object", "properties": { "is_company": { "type": "boolean" }, "contact_name": { "type": "string" }, "contact_address": { "anyOf": [ { "$ref": "#/components/schemas/AddressSimple" }, { "type": "null" } ] }, "contact_telephone_number": { "type": [ "string", "null" ] }, "contact_email_address": { "type": [ "string", "null" ], "format": "email" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Person": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "properties": { "type": { "type": "string", "enum": [ "person" ] }, "attributes": { "$ref": "#/components/schemas/PersonAttributes" }, "relationships": { "type": "object", "properties": { "properties": { "description": "All Properties owned by this Person", "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "property" ] } } } } } } ] }, "applicants": { "description": "All sales and letting Applicants this person is a part of.", "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "applicant" ] } } } } } } ] }, "notes": { "description": "Any Notes attached to this Person.", "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ], "title": "Person", "type": "object" }, "PersonAttributes": { "title": "Person (attributes)", "type": "object", "properties": { "full_name": { "type": "string" }, "title": { "type": [ "string", "null" ], "example": "Mrs" }, "first_name": { "type": "string", "example": "Jane" }, "last_name": { "type": "string", "example": "Doe" }, "address": { "oneOf": [ { "$ref": "#/components/schemas/AddressSimple" }, { "type": "null" } ] }, "telephone_numbers": { "type": "array", "items": { "$ref": "#/components/schemas/TelephoneNumberSimple" } }, "email_addresses": { "type": "array", "items": { "$ref": "#/components/schemas/EmailAddressSimple" } }, "marketing_consent": { "type": [ "boolean", "null" ] }, "contact_preferences": { "type": "object", "properties": { "email": { "type": "boolean" }, "post": { "type": "boolean" }, "text": { "type": "boolean" }, "phone": { "type": "boolean" } } }, "statuses": { "type": "object", "minProperties": 3, "maxProperties": 3, "additionalProperties": false, "properties": { "vendor": { "type": [ "string", "null" ], "enum": [ null, "Current", "Previous" ] }, "landlord": { "type": [ "string", "null" ], "enum": [ null, "Current", "Previous" ] }, "tenant": { "type": [ "string", "null" ], "enum": [ null, "Current", "Previous" ] } } }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "GuarantorAttributes": { "title": "Guarantor (attributes)", "type": "object", "properties": { "full_name": { "type": "string" }, "title": { "type": "string", "example": "Mrs" }, "first_name": { "type": "string", "example": "Jane" }, "last_name": { "type": "string", "example": "Doe" }, "address": { "anyOf": [ { "$ref": "#/components/schemas/AddressSimple" }, { "type": "null" } ] }, "telephone_numbers": { "type": "array", "items": { "$ref": "#/components/schemas/TelephoneNumberSimple" } }, "email_addresses": { "type": "array", "items": { "$ref": "#/components/schemas/EmailAddressSimple" } }, "marketing_consent": { "type": [ "boolean", "null" ] }, "contact_preferences": { "type": "object", "properties": { "email": { "type": "boolean" }, "post": { "type": "boolean" }, "text": { "type": "boolean" }, "phone": { "type": "boolean" } } }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Property": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] }, "attributes": { "$ref": "#/components/schemas/PropertyAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "media": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "media" ] } } } } } } ] }, "floorplans": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "floorplan" ] } } } } } } ] }, "rooms": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "room" ] } } } } } } ] }, "epc": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "epc" ] } } }, { "type": "null" } ] } } } ] }, "brochure": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "brochure" ] } } }, { "type": "null" } ] } } } ] }, "outsideSpaces": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "outside_space" ] } } } } } } ] }, "parking": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "parking" ] } } } } } } ] }, "viewings": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewing" ] } } } } } } ] }, "valuations": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation" ] } } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] }, "negotiator": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "negotiator" ] } } }, { "type": "null" } ] } } } ] }, "followUp": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "follow_up" ] } } }, { "type": "null" } ] } } } ] }, "sales": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sale" ] } } } } } } ] }, "salesListing": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_listing" ] } } }, { "type": "null" } ] } } } ] }, "lettingsListing": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_listing" ] } } }, { "type": "null" } ] } } } ] }, "interestedApplicants": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "interested_applicant" ] } } } } } } ] }, "propertyKeys": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property_key" ] } } } } } } ] } } } } } ], "x-tags": [ "Properties" ], "title": "Property" }, "PropertyAttributes": { "type": "object", "title": "Property (attributes)", "properties": { "is_sales": { "type": "boolean" }, "is_lettings": { "type": "boolean" }, "company_owned": { "type": "boolean" }, "is_commercial": { "type": "boolean" }, "is_residential": { "type": "boolean" }, "address": { "$ref": "#/components/schemas/AddressSimple" }, "inline_address": { "type": "string" }, "public_address": { "type": "string" }, "status": { "type": "string", "enum": [ "Not On The Market", "Valuation Lost", "Valuation Booked", "Provisional Valuation Booked", "Valuation Pending", "Valuation Cancelled", "Valuation Completed", "Instructed", "For Sale", "Under Offer", "Sold STC", "Exchanged", "Let", "To Let", "Let Agreed", "For Sale and To Let", "Withdrawn Sales", "Withdrawn Lettings", "Withdrawn Sales And Lettings", "Completed" ] }, "bedrooms": { "type": "integer" }, "bathrooms": { "type": "integer" }, "receptions": { "type": "integer" }, "floor_area": { "type": [ "string", "null" ] }, "plot_area": { "type": [ "string", "null" ] }, "land_area": { "type": [ "string", "null" ] }, "full_description": { "type": [ "string", "null" ] }, "short_description": { "type": [ "string", "null" ] }, "location_summary": { "type": [ "string", "null" ] }, "full_description_lettings": { "type": [ "string", "null" ] }, "short_description_lettings": { "type": [ "string", "null" ] }, "location_summary_lettings": { "type": [ "string", "null" ] }, "property_type": { "type": "string" }, "property_style": { "type": "string" }, "property_age_bracket": { "type": "string" }, "construction_year": { "type": [ "string", "integer", "null" ] }, "is_listed_building": { "type": [ "boolean", "null" ] }, "is_conservation_area": { "type": [ "boolean", "null" ] }, "tenure": { "type": "string" }, "tenure_notes": { "type": [ "string", "null" ] }, "lease_expiry_year": { "type": [ "string", "null" ] }, "lease_expiry_date": { "type": [ "string", "null" ], "format": "date" }, "display_property_style": { "type": "string" }, "work_required": { "type": "boolean" }, "heating_system": { "type": "string" }, "council_tax_band": { "type": "string" }, "council_tax_cost": { "type": [ "integer", "null" ] }, "local_authority": { "type": [ "string", "null" ] }, "service_charge": { "type": "integer" }, "service_charge_period": { "type": "string", "default": "month" }, "service_charge_notes": { "type": [ "string", "null" ] }, "ground_rent": { "type": [ "integer", "null" ] }, "ground_rent_period": { "type": "string", "default": "month" }, "ground_rent_review_period_years": { "type": [ "integer", "null" ] }, "ground_rent_uplift": { "type": [ "integer", "null" ] }, "ground_rent_expiry": { "type": [ "string", "null" ] }, "has_outdoor_space": { "type": [ "boolean", "null" ] }, "shared_ownership": { "type": "boolean", "default": false }, "shared_ownership_notes": { "type": [ "string", "null" ] }, "shared_ownership_rent": { "type": [ "integer", "null" ] }, "shared_ownership_rent_frequency": { "type": [ "string", "null" ] }, "shared_ownership_percentage_sold": { "type": [ "integer", "null" ] }, "tags": { "type": "array", "uniqueItems": true, "items": { "type": "object", "properties": { "name": { "type": "string" }, "slug": { "type": "string" }, "order": { "type": "number" } } } }, "features": { "type": "array", "uniqueItems": true, "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "The ID of the feature" }, "name": { "type": "string" }, "order": { "type": "number" }, "include_on_portals": { "type": "boolean" }, "highlight": { "type": "boolean" } } } }, "material_information": { "type": "object", "properties": { "council_tax_band": { "type": [ "string", "null" ], "example": "D", "maxLength": 1 }, "lease_expiry_date": { "type": [ "string", "null" ], "format": "date" }, "ground_rent_pence": { "type": [ "integer", "null" ] }, "ground_rent_period": { "type": [ "string", "null" ] }, "ground_rent_expiry": { "type": [ "string", "null" ], "format": "date" }, "ground_rent_review_period_years": { "type": [ "integer", "null" ] }, "ground_rent_uplift": { "type": [ "integer", "null" ], "description": "Value is a percentage" }, "service_charge_pence": { "type": [ "integer", "null" ] }, "service_charge_period": { "type": [ "string", "null" ] }, "service_charge_notes": { "type": [ "string", "null" ] }, "water_supply": { "type": [ "array", "null" ], "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "direct_main_waters", "wells", "boreholes", "springs", "other" ] } }, "water_supply_other": { "type": [ "string", "null" ] }, "electricity_supply": { "type": [ "array", "null" ], "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "national_grid", "wind_turbine", "solar_panels", "generator", "other" ] } }, "electricity_supply_other": { "type": [ "string", "null" ] }, "sewerage": { "type": [ "array", "null" ], "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "standard", "septic_tank", "sewage_treatment_plants", "cesspit", "cesspool", "other" ] } }, "sewerage_other": { "type": [ "string", "null" ] }, "heating_supply": { "type": [ "array", "null" ], "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "electric_central", "gas_central", "gas_other", "communal_heating", "lpg_central", "wood_burner", "biomass_boiler", "solar_panels", "heat_pump", "other" ] } }, "heating_supply_other": { "type": [ "string", "null" ] }, "heating_system": { "type": [ "string", "null" ] }, "broadband": { "type": [ "string", "null" ], "enum": [ "adsl", "cable", "fttc", "fttp", null ] }, "has_restrictions": { "type": [ "boolean", "null" ] }, "has_required_access": { "type": [ "boolean", "null" ] }, "public_right_of_way": { "type": [ "boolean", "null" ] }, "flood_risk": { "type": [ "boolean", "null" ] }, "sources_of_flooding": { "type": [ "array", "null" ], "items": { "type": "string" } }, "sources_of_flooding_other": { "type": [ "string", "null" ] }, "has_flood_defences": { "type": [ "boolean", "null" ] }, "has_flooded_in_last_five_years": { "type": [ "boolean", "null" ] }, "adaptations_list": { "type": [ "array", "null" ], "items": {} }, "adaptations_other": { "type": [ "string", "null" ] } } }, "viewing_booking_url": { "type": [ "string", "null" ] }, "last_instructed_sales_at": { "type": [ "string", "null" ], "format": "date-time" }, "last_instructed_lettings_at": { "type": [ "string", "null" ], "format": "date-time" }, "last_exchanged_at": { "type": [ "string", "null" ], "format": "date-time" }, "last_completed_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "custom_meta_data": { "type": [ "object", "array" ], "items": {} }, "lead_source": { "type": [ "string", "null" ] }, "publish_after": { "type": [ "string", "null" ], "format": "date-time" }, "archived_at": { "type": [ "string", "null" ], "format": "date-time" }, "virtual_tour": { "type": [ "string", "null" ], "format": "uri" }, "property_urls": { "type": [ "array", "null" ], "items": { "type": "object", "properties": { "title": { "type": "string" }, "type": { "type": "string", "enum": [ "image", "floor_plan", "brochure", "virtual_tour", "audio_tour", "ipack" ] }, "url": { "type": "string", "format": "uri", "maxLength": 2048 } }, "required": [ "title", "type", "url" ] } } } }, "PropertyKeys": { "title": "Property Keys", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property_key" ] }, "attributes": { "$ref": "#/components/schemas/PropertyKeysAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] } } } } } ] }, "PropertyKeysAttributes": { "title": "Property Key (attributes)", "type": "object", "properties": { "ident": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "status": { "type": "string", "enum": [ "Checked In", "Checked Out" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "QuestionnaireResponse": { "title": "Questionnaire Response", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_response" ] }, "attributes": { "$ref": "#/components/schemas/QuestionnaireResponseAttributes" }, "relationships": { "type": "object", "properties": { "questionnaire": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire" ] } } } } } ] }, "answers": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_response_answer" ] } } } } } } ] }, "submitter": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "user" ] } } }, { "type": "null" } ] } } } ] }, "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] } } } } } ] }, "QuestionnaireResponseAttributes": { "title": "Questionnaire Response (attributes)", "type": "object", "properties": { "submitted_at": { "type": "string", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "QuestionnaireAttributes": { "title": "Questionnaire (attributes)", "type": "object", "properties": { "name": { "type": "string" }, "questionnaire_type": { "type": "string" }, "published_at": { "type": "string", "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "QuestionnaireSectionAttributes": { "title": "Questionnaire Section (attributes)", "type": "object", "properties": { "name": { "type": "string" }, "order": { "type": "integer" }, "hidden": { "type": "boolean" }, "is_editable": { "type": "boolean" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "QuestionnaireQuestionAttributes": { "title": "Questionnaire Question (attributes)", "type": "object", "properties": { "body": { "type": [ "string", "null" ] }, "question_type": { "type": "string" }, "type": { "type": "string", "deprecated": true, "description": "Deprecated: use question_type instead." }, "hidden": { "type": "boolean" }, "help_text": { "type": "string" }, "order": { "type": "integer" }, "is_editable": { "type": "boolean" }, "meta": { "type": "object" }, "identifier": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "QuestionnaireQuestionOptionAttributes": { "title": "Questionnaire Question Option (attributes)", "type": "object", "properties": { "text": { "type": "string" }, "additional_data_input_type": { "type": [ "string", "null" ] }, "prohibited": { "type": "boolean" }, "order": { "type": "integer" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "QuestionnaireResponseAnswerAttributes": { "title": "Questionnaire Response Answer (attributes)", "type": "object", "properties": { "dont_know": { "type": "boolean" }, "not_relevant": { "type": "boolean" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "QuestionnaireResponseAnswerValueAttributes": { "title": "Questionnaire Response Answer Value (attributes)", "type": "object", "properties": { "answer": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "PropertyDescriptionUpdateAttributes": { "type": "object", "title": "Property Description Update", "properties": { "full_description": { "type": [ "string", "null" ] }, "short_description": { "type": [ "string", "null" ] }, "location_summary": { "type": [ "string", "null" ] }, "full_description_lettings": { "type": [ "string", "null" ] }, "short_description_lettings": { "type": [ "string", "null" ] }, "location_summary_lettings": { "type": [ "string", "null" ] }, "virtual_tour": { "type": [ "string", "null" ], "format": "uri" }, "property_urls": { "type": [ "array", "null" ], "items": { "type": "object", "properties": { "title": { "type": "string" }, "type": { "type": "string", "enum": [ "image", "floor_plan", "brochure", "virtual_tour", "audio_tour", "ipack" ] }, "url": { "type": "string", "format": "uri", "maxLength": 2048 } }, "required": [ "title", "type", "url" ] } } } }, "Sale": { "title": "Sale", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sale" ] }, "attributes": { "$ref": "#/components/schemas/SaleAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "applicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] } } } } } ] }, "vendor": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "vendor" ] } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ], "x-tags": [ "Sales" ] }, "SaleAttributes": { "title": "Sale (attributes)", "type": "object", "properties": { "address": { "$ref": "#/components/schemas/AddressSimple" }, "status": { "type": "string", "enum": [ "Completed", "Fallen Through", "Offer Accepted", "Exchanged", "Under Offer" ] }, "sale_price": { "type": "number" }, "dates": { "type": "object", "properties": { "expected_exchange_date": { "type": [ "string", "null" ], "format": "date-time" }, "exchanged_date": { "type": [ "string", "null" ], "format": "date-time" }, "expected_completion_date": { "type": [ "string", "null" ], "format": "date-time" }, "completed_date": { "type": [ "string", "null" ], "format": "date-time" } } } } }, "SalesOffer": { "title": "SalesOffer", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_offer" ] }, "attributes": { "$ref": "#/components/schemas/SalesOfferAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "salesListing": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_listing" ] } } }, { "type": "null" } ] } } } ] }, "applicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ] }, "SalesOfferAttributes": { "type": "object", "title": "Sales Offer (attributes)", "properties": { "address": { "$ref": "#/components/schemas/AddressSimple" }, "offer_amount": { "type": "number", "example": 425000 }, "offer_made_at": { "type": "string", "format": "date-time" }, "notes": { "type": [ "string", "null" ], "example": "Own under offer to doctor - sold through p bricks" }, "status": { "type": "string", "enum": [ "Pending", "Relayed to Vendor", "Accepted", "Rejected", "Withdrawn" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Tenant": { "title": "Tenant", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenant" ] }, "attributes": { "$ref": "#/components/schemas/TenantAttributes" }, "relationships": { "type": "object", "properties": { "tenancies": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenancy" ] } } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ], "examples": [] }, "TenantAttributes": { "title": "Tenant (attributes)", "allOf": [ { "$ref": "#/components/schemas/PersonSimple" }, { "type": "object", "properties": { "tenant_type": { "type": "string", "const": "person" }, "tenant_status": { "type": [ "object", "null" ], "properties": { "value": { "type": "string", "enum": [ "current", "previous" ] }, "key": { "type": "string", "enum": [ "CURRENT", "PREVIOUS" ] }, "description": { "type": "string", "enum": [ "Current", "Previous" ] } } }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } } ], "examples": [] }, "Tenancy": { "title": "Tenancy", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenancy" ] }, "attributes": { "$ref": "#/components/schemas/TenancyAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "tenants": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenant" ] } } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ], "examples": [] }, "TenancyAttributes": { "title": "Tenancy (attributes)", "type": "object", "properties": { "active": { "type": "boolean" }, "status": { "type": "string", "enum": [ "active", "cancelled", "ended", "ending", "expiring", "renewed", "renewing", "upcoming" ] }, "start_date": { "type": "string", "format": "date-time" }, "end_date": { "type": [ "string", "null" ], "format": "date-time", "description": "Null for periodic tenancies, which have no fixed end date." }, "original_term_start_date": { "type": "string", "format": "date-time" }, "tenancy_type": { "anyOf": [ { "type": "string", "enum": [ "Assured Shorthold", "Excluded", "Assured", "Non-assured", "Regulated", "Company Let", "HMO", "License", "Assured Periodic Tenancy" ] }, { "type": "null" } ] }, "tenancy_term_type": { "type": "string", "enum": [ "Periodic", "Fixed" ] }, "rent_amount": { "type": "integer", "example": 495 }, "rent_frequency": { "type": "string", "enum": [ "Per Week", "Per 2 Weeks", "Per 4 Weeks", "Per Calendar Month", "Per Quarter", "Per 6 Months", "Per Annum" ] }, "deposit_amount": { "type": [ "integer", "null" ], "example": 900 }, "service_level": { "type": [ "string", "null" ], "example": "Fully Managed" }, "service_level_type": { "anyOf": [ { "type": "string", "enum": [ "Let Only", "Rent Collection", "Fully Managed", "Other" ] }, { "type": "null" } ] }, "management_fee": { "type": [ "string", "null" ], "example": "10%" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "HoldingDepositAttributes": { "title": "Holding Deposit (attributes)", "type": "object", "properties": { "amount": { "type": [ "integer", "null" ], "example": 495 }, "received_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "TenancyAgreementAttributes": { "title": "Tenancy Agreement (attributes)", "type": "object", "properties": { "start_date": { "type": [ "string", "null" ], "format": "date-time" }, "end_date": { "type": [ "string", "null" ], "format": "date-time" }, "tenancy_term_type": { "type": [ "string", "null" ], "enum": [ "Periodic", "Fixed", null ] }, "tenancy_type": { "type": [ "string", "null" ], "enum": [ "Assured Shorthold", "Excluded", "Assured", "Non-assured", "Regulated", "Company Let", "HMO", "License", "Assured Periodic Tenancy", null ] }, "rent_amount": { "type": [ "integer", "null" ], "example": 495 }, "rent_frequency": { "type": [ "string", "null" ], "enum": [ "Per Week", "Per 2 Weeks", "Per 4 Weeks", "Per Calendar Month", "Per Quarter", "Per 6 Months", "Per Annum", null ] }, "payment_day": { "type": [ "integer", "null" ], "example": 15 }, "payment_reference": { "type": [ "string", "null" ], "example": "123ABC" }, "deposit_amount": { "type": [ "integer", "null" ], "example": 900 }, "deposit_scheme": { "type": [ "string", "null" ], "enum": [ "DPS - Custodial", "DPS - Insured", "TDS - Custodial", "TDS - Insured", "My Deposits - Custodial", "My Deposits - Insured", "Reposit", "LPS Scotland", "SafeDeposits Scotland - Custodial", "My Deposits - Scotland - Custodial", "Deposit Replacement", "Held by Agent", "Held by Landlord", null ] }, "management_fee": { "type": [ "number", "null" ], "example": 10.7 }, "management_fee_type": { "type": [ "string", "null" ], "enum": [ "Percentage", "Fixed Fee", null ] }, "additional_clauses": { "type": [ "string", "null" ] }, "tenancy_agreement_sent_at": { "type": [ "string", "null" ], "format": "date-time" }, "tenancy_agreement_signed_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "User": { "title": "User", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "user" ] }, "attributes": { "$ref": "#/components/schemas/UserAttributes" }, "relationships": { "type": "object", "properties": { "properties": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } } ] } } } } } ] }, "UserAttributes": { "title": "User (attributes)", "type": "object", "properties": { "first_name": { "type": "string" }, "last_name": { "type": "string" }, "job_title": { "type": [ "string", "null" ] }, "telephone_number": { "type": [ "string", "null" ] }, "mobile_number": { "type": [ "string", "null" ] }, "email_address": { "type": "string", "format": "email" }, "deactivated_at": { "type": [ "string", "null" ], "format": "date-time" }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "ViewingFeedbackAttributes": { "title": "Viewing Feedback (attributes)", "type": "object", "properties": { "feedback": { "type": "string" }, "rating": { "type": [ "string", "null" ], "enum": [ "Poor", "Okay", "Good", "Great", null ] }, "price_rating": { "type": [ "string", "null" ], "enum": [ "Good", "Fair", "High", null ] }, "status": { "type": "string", "enum": [ "Completed", "No feedback", "Pending" ] }, "author": { "type": [ "string", "null" ] }, "visible_to_applicant": { "type": "boolean" }, "visible_to_vendor": { "type": "boolean" }, "vendor_viewed_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_by": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "Valuation": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation" ] }, "attributes": { "$ref": "#/components/schemas/ValuationAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] }, "follow-up": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "follow-up" ] } } }, { "type": "null" } ] } } } ] }, "salesReport": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation_sales_report" ] } } }, { "type": "null" } ] } } } ] }, "lettingsReport": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation_lettings_report" ] } } }, { "type": "null" } ] } } } ] }, "salesInstruction": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_instruction" ] } } }, { "type": "null" } ] } } } ] }, "lettingsInstruction": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_instruction" ] } } }, { "type": "null" } ] } } } ] }, "valuer": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuer" ] } } }, { "type": "null" } ] } } } ] }, "lostValuationDetail": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lost_valuation_detail" ] } } }, { "type": "null" } ] } } } ] } } } } } ] }, "ValuationAttributes": { "title": "Valuation (attributes)", "type": "object", "properties": { "address": { "$ref": "#/components/schemas/AddressSimple" }, "start": { "type": [ "string", "null" ], "format": "date-time" }, "end": { "type": [ "string", "null" ], "format": "date-time" }, "lead_source": { "type": [ "string", "null" ] }, "valuation_type": { "type": "string", "enum": [ "sales", "lettings", "sales_and_lettings" ] }, "type": { "type": "string", "deprecated": true, "description": "Deprecated: use valuation_type instead.", "enum": [ "sales", "lettings", "sales_and_lettings" ] }, "years_owned": { "type": [ "integer", "null" ] }, "work_done": { "type": "array", "uniqueItems": true, "minItems": 0, "items": { "type": "string", "example": "Cosmetic (decorating etc...)", "minLength": 0 } }, "desired_move_timeframe": { "type": [ "string", "null" ] }, "move_reason": { "type": [ "string", "null" ] }, "status": { "type": "string" }, "custom_status": { "type": [ "string", "null" ] }, "cancelled_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "ValuationSalesReportAttributes": { "title": "Valuation Sales Report (attributes)", "type": "object", "properties": { "valuation_price_qualifier": { "type": "string" }, "valuation_amount": { "type": "integer" }, "valuation_range_min_amount": { "type": [ "integer", "null" ] }, "valuation_range_max_amount": { "type": [ "integer", "null" ] }, "intro_message": { "type": "string" }, "sent_to_vendor_at": { "type": [ "string", "null" ], "format": "date-time" }, "published_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "ValuationLettingsReportAttributes": { "title": "Valuation Lettings Report (attributes)", "type": "object", "properties": { "valuation_amount": { "type": "integer" }, "valuation_period": { "type": "string" }, "intro_message": { "type": "string" }, "sent_to_vendor_at": { "type": [ "string", "null" ], "format": "date-time" }, "published_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "SalesInstruction": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_instruction" ] }, "attributes": { "$ref": "#/components/schemas/SalesInstructionAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "valuation": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation" ] } } }, { "type": "null" } ] } } } ] }, "Fees": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "fees" ] } } } } } ] } } } } } ] }, "SalesInstructionAttributes": { "title": "Sales Instruction (attributes)", "type": "object", "properties": { "method": { "type": "string" }, "marketing_price_qualifier": { "type": [ "string", "null" ] }, "marketing_price": { "type": "integer" }, "instructed_at": { "type": "string", "format": "date-time" }, "revoked_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "FeeAttributes": { "title": "Fees (attributes)", "type": "object", "properties": { "package": { "type": "string", "enum": [ "completion", "upfront" ] }, "label": { "type": "string" }, "fee_amount": { "type": "integer" }, "vat_type": { "type": "string", "enum": [ "exc_vat", "inc_vat" ] }, "fee_type": { "type": "string", "enum": [ "fixed", "percentage" ] }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "LettingsInstruction": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_instruction" ] }, "attributes": { "$ref": "#/components/schemas/LettingsInstructionAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "valuation": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation" ] } } }, { "type": "null" } ] } } } ] } } } } } ] }, "LettingsInstructionAttributes": { "title": "Lettings Instruction (attributes)", "type": "object", "properties": { "method": { "type": "string" }, "marketing_price_pcm": { "type": "integer" }, "marketing_price_period": { "type": "string" }, "instructed_at": { "type": "string", "format": "date-time" }, "revoked_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "LostValuationDetailAttributes": { "title": "Lost Valuation Detail (attributes)", "type": "object", "properties": { "marketed_again": { "type": "boolean" }, "competitor_valuation_amount": { "type": [ "string", "null" ] }, "fee_type": { "type": "string" }, "fee": { "type": "number", "format": "float" }, "contract_length_qualifier": { "type": "string" }, "contract_length": { "type": "integer" }, "upfront_fee_type": { "type": [ "string", "null" ] }, "upfront_fee": { "type": [ "number", "null" ], "format": "float" }, "management_fee_type": { "type": [ "string", "null" ] }, "management_fee": { "type": [ "number", "null" ], "format": "float" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Vendor": { "title": "Vendor", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "vendor" ] }, "attributes": { "$ref": "#/components/schemas/VendorAttributes" }, "relationships": { "type": "object", "properties": { "properties": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ] }, "VendorAttributes": { "title": "Vendor (attributes)", "type": "object", "properties": { "people": { "type": "array", "items": { "$ref": "#/components/schemas/PersonSimple" } }, "vendor_status": { "type": [ "string", "null" ], "enum": [ "Current", "Previous" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Solicitor": { "title": "Solicitor", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "solicitor" ] }, "attributes": { "$ref": "#/components/schemas/SolicitorAttributes" }, "relationships": { "type": "object", "properties": { "solicitorFirm": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "solicitorFirm" ] } } } } } ] }, "applicantSolicitorSale": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant_solicitor_sale" ] } } } } } } ] }, "ownerSolicitorSale": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner_solicitor_sale" ] } } } } } } ] } } } } } ] }, "SolicitorAttributes": { "title": "Solicitor (attributes)", "type": "object", "properties": { "title": { "type": "string" }, "position": { "type": "string" }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "full_name": { "type": "string" }, "telephone_numbers": { "type": "array", "items": { "$ref": "#/components/schemas/TelephoneNumberSimple" } }, "email_addresses": { "type": "array", "items": { "$ref": "#/components/schemas/EmailAddressSimple" } }, "address": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "SolicitorFirmAttributes": { "title": "Solicitor Firm (attributes)", "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "firm_contact_number": { "type": "string" }, "firm_email_address": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "InterestedApplicant": { "title": "Interested Applicant", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "interested_applicant" ] }, "attributes": { "$ref": "#/components/schemas/InterestedApplicantAttributes" }, "relationships": { "type": "object", "properties": { "applicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] } } } } } ] }, "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] } } } } } ], "x-internal": false }, "Inspection": { "title": "Inspection", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "inspection" ] }, "attributes": { "$ref": "#/components/schemas/InspectionAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } }, { "type": "null" } ] } } } ] }, "bookedBy": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "booked_by" ] } } }, { "type": "null" } ] } } } ] }, "inspector": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "inspector" ] } } }, { "type": "null" } ] } } } ] } } } } } ], "x-internal": false }, "InspectionAttributes": { "title": "Inspection (attributes)", "type": "object", "properties": { "due_date": { "type": "string", "format": "date-time" }, "inspection_date": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ] }, "status": { "type": "string", "enum": [ "Booked", "Incomplete", "Cancelled", "Completed", "Overdue", "Need to Book", "Unconfirmed" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "Invoice": { "title": "Invoice", "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "invoice" ] }, "attributes": { "$ref": "#/components/schemas/InvoiceAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "line_items": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "fee" ] } } } } } } ] } } } } } ], "x-internal": false }, "InvoiceAttributes": { "title": "Invoice (attributes)", "type": "object", "properties": { "invoice_prefix": { "type": "string" }, "invoice_number": { "type": "integer" }, "total_amount": { "type": "integer", "example": 425000 }, "total_amount_vat": { "type": "integer", "example": 42500 }, "paid": { "type": "boolean" }, "paid_at": { "type": [ "string", "null" ], "format": "date-time" }, "due_date": { "type": "string", "format": "date-time" }, "voided_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "InterestedApplicantAttributes": { "title": "Interested Applicant (attributes)", "type": "object", "properties": { "deleted_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Viewing": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewing" ] }, "attributes": { "$ref": "#/components/schemas/ViewingAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "applicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] } } } } } ] }, "viewer": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewer" ] } } }, { "type": "null" } ] } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] } } } } } ], "title": "Viewing" }, "ViewingAttributes": { "type": "object", "title": "Viewing (attributes)", "properties": { "viewing_type": { "type": "string", "enum": [ "sales", "lettings" ] }, "type": { "type": "string", "deprecated": true, "description": "Deprecated: use viewing_type instead.", "enum": [ "sales", "lettings" ] }, "address": { "$ref": "#/components/schemas/AddressSimple" }, "start": { "type": [ "string", "null" ], "format": "date-time" }, "end": { "type": [ "string", "null" ], "format": "date-time" }, "unaccompanied": { "type": "boolean" }, "agent_confirmed": { "type": "boolean" }, "occupant_confirmed": { "type": "boolean" }, "applicant_confirmed": { "type": "boolean" }, "provisional": { "type": "boolean" }, "occupant_type": { "type": [ "string", "null" ], "enum": [ "By Tenants", "By Owner", "Vacant", "Unknown", null ] }, "status": { "type": "string", "enum": [ "unconfirmed", "rejected", "confirmed", "cancelled", "completed", "missed" ] }, "no_show": { "type": "boolean" }, "cancelled_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "AddressSimple": { "title": "Address (simple)", "type": "object", "properties": { "single_line": { "type": "string", "example": "19 Lansdowne Road, Monton, Manchester" }, "anon_single_line": { "type": "string", "example": "Lansdowne Road, Monton, Manchester" }, "building_number": { "type": [ "string", "null" ], "example": "19" }, "building_name": { "type": [ "string", "null" ] }, "street": { "type": [ "string", "null" ] }, "line_1": { "type": "string", "example": "19 Lansdowne Road" }, "line_2": { "type": [ "string", "null" ], "example": "Monton" }, "line_3": { "type": [ "string", "null" ], "example": "Manchester" }, "line_4": { "type": [ "string", "null" ] }, "town": { "type": [ "string", "null" ], "example": "Manchester" }, "country": { "type": "string", "example": "United Kingdom" }, "postcode": { "type": "string", "example": "M30 9PA" }, "udprn": { "type": [ "string", "null" ], "example": "28327204" }, "geo": { "type": "object", "properties": { "lat": { "type": [ "number", "null" ], "example": 0.2365698, "format": "float" }, "lng": { "type": [ "number", "null" ], "example": 53.023654, "format": "float" } } }, "royal_mail": { "type": [ "object", "null" ], "properties": { "postcode": { "type": "string" }, "post_town": { "type": "string" }, "thoroughfare": { "type": "string" }, "building_name": { "type": [ "string", "null" ] }, "building_number": { "type": [ "string", "null" ] }, "department_name": { "type": [ "string", "null" ] }, "organisation_name": { "type": [ "string", "null" ] }, "sub_building_name": { "type": [ "string", "null" ] }, "dependent_locality": { "type": [ "string", "null" ] }, "dependent_thoroughfare": { "type": [ "string", "null" ] }, "double_dependent_locality": { "type": [ "string", "null" ] } } }, "street_group_property_id": { "type": [ "string", "null" ] } } }, "EmailAddressSimple": { "title": "Email Address (simple)", "description": "An email address, can be related to a person and/or a company.", "type": "object", "properties": { "value": { "type": "string", "example": "john@johndoe.com", "format": "email" }, "notes": { "type": [ "string", "null" ] }, "primary": { "type": "boolean" } } }, "PersonSimple": { "title": "Person (simple)", "type": "object", "properties": { "full_name": { "type": "string" }, "title": { "type": "string", "example": "Mrs" }, "first_name": { "type": "string", "example": "Jane" }, "last_name": { "type": "string", "example": "Doe" }, "address": { "oneOf": [ { "$ref": "#/components/schemas/AddressSimple" }, { "type": "null" } ] }, "telephone_numbers": { "type": "array", "items": { "$ref": "#/components/schemas/TelephoneNumberSimple" } }, "email_addresses": { "type": "array", "items": { "$ref": "#/components/schemas/EmailAddressSimple" } }, "marketing_consent": { "type": [ "boolean", "null" ] }, "contact_preferences": { "type": "object", "properties": { "email": { "type": "boolean" }, "post": { "type": "boolean" }, "text": { "type": "boolean" }, "phone": { "type": "boolean" } } } } }, "NetworkSettings": { "title": "NetworkSettings", "type": "object", "properties": { "webhooks_enabled": { "type": "boolean" } } }, "TelephoneNumberSimple": { "title": "Telephone Number (simple)", "description": "An telephone number, can be related to a person and/or a company.", "type": "object", "properties": { "value": { "type": "string", "example": "+441632960911" }, "notes": { "type": [ "string", "null" ] }, "primary": { "type": "boolean" } } }, "PhotoAndMeasure": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "photo_and_measure" ] }, "attributes": { "$ref": "#/components/schemas/PhotoAndMeasureAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] }, "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "notes": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] } } } } } } ] }, "photographer": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "photographer" ] } } }, { "type": "null" } ] } } } ] } } } } } ] }, "PhotoAndMeasureAttributes": { "title": "Photo And Measure (attributes)", "type": "object", "properties": { "address": { "$ref": "#/components/schemas/AddressSimple" }, "start": { "type": [ "string", "null" ], "format": "date-time" }, "end": { "type": [ "string", "null" ], "format": "date-time" }, "status": { "type": "string" }, "cancelled_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "Meta": { "title": "Meta Information", "description": "The server's implementation.", "type": "object" }, "Links": { "title": "Links", "description": "Links object - JSON:API Standard.", "type": "object", "x-examples": { "example-1": { "self": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=2", "first": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=1", "prev": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=1", "next": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=3", "last": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=9" } }, "examples": [ { "self": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=2", "first": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=1", "next": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=1", "prev": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=3", "last": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=9" } ], "properties": { "self": { "type": "string", "example": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=2" }, "first": { "type": "string", "example": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=1" }, "next": { "type": "string", "example": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=1" }, "prev": { "type": "string", "example": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=3" }, "last": { "type": "string", "example": "http://localhost:3000/users?page[number]=2&page[size]=25&page[number]=9" } } }, "Link": { "title": "Link", "oneOf": [ { "description": "a string containing the link's URL", "type": "string", "format": "uri-reference" }, { "type": "object", "required": [ "href" ], "properties": { "href": { "description": "a string containing the link's URL", "type": "string", "format": "uri-reference" }, "meta": { "$ref": "#/components/schemas/Meta" } } } ] }, "IncludedLinks": { "title": "Included Links", "type": "object", "properties": { "self": { "$ref": "#/components/schemas/Link" }, "related": { "$ref": "#/components/schemas/Link" } }, "examples": [] }, "Pagination": { "title": "Pagination", "description": "Pagination object - JSON:API Standard.", "type": "object", "properties": { "pagination": { "type": "object", "properties": { "total": { "type": "integer", "example": 226 }, "count": { "type": "integer", "example": 10 }, "per_page": { "type": "integer", "example": 10 }, "current_page": { "type": "integer", "example": 1 }, "total_pages": { "type": "integer", "example": 23 } } } }, "x-examples": { "example-1": { "pagination": { "total": 226, "count": 10, "per_page": 10, "current_page": 1, "total_pages": 23 } } }, "examples": [ { "pagination": { "total": 226, "count": 10, "per_page": 10, "current_page": 1, "total_pages": 23 } } ] }, "JsonApi": { "title": "API Details", "description": "The server's implementation.", "type": "object", "properties": { "version": { "type": "string" }, "meta": { "$ref": "#/components/schemas/Meta" } } }, "RelationshipSingular": { "title": "Relationship Singular", "description": "Inheritable schema for 1:1 relationships. Data may be null if the relationship is empty.", "type": "object", "properties": { "data": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string" }, "id": { "type": "string", "format": "uuid", "example": "a827a3ae-4c74-4c32-8b42-42248d4010d3" } }, "required": [ "type", "id" ] }, { "type": "null" } ] }, "links": { "type": "object", "properties": { "self": { "$ref": "#/components/schemas/Link" }, "related": { "$ref": "#/components/schemas/Link" } } } } }, "RelationshipPlural": { "title": "Relationship Plural", "description": "This is a inheritable schema to allow you to easily add relationships to your main schemas. This should be used for `1:n` relationships.", "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "id": { "type": "string", "example": "a827a3ae-4c74-4c32-8b42-42248d4010d3" } } } }, "links": { "type": "object", "properties": { "self": { "$ref": "#/components/schemas/Link" }, "related": { "$ref": "#/components/schemas/Link" } } } } }, "IncludedResource": { "title": "Included Resource", "type": "object", "examples": [], "required": [ "type", "id" ], "properties": { "type": { "type": "string" }, "id": { "type": "string", "format": "uuid" }, "attributes": { "type": "object" }, "relationships": { "type": [ "object", "null" ] }, "meta": { "$ref": "#/components/schemas/Meta" } } }, "BaseModel": { "title": "Base Model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string" }, "attributes": { "type": "object" }, "relationships": { "type": "object" } } }, "ApplicantPreferenceChoice": { "title": "Applicant Preference Choices", "type": "string", "enum": [ "Strong Preference", "Don't Mind", "Would Prefer", "Won't Consider", "Might Consider", "Must Have" ] }, "DefaultMedia": { "title": "DefaultMedia", "type": "object", "properties": { "name": { "type": "string", "example": "p045126_01" }, "order": { "type": "integer", "example": 1 }, "is_featured": { "type": [ "boolean", "null" ], "default": false }, "include_in_listing": { "type": [ "boolean", "null" ], "default": false }, "feature_index": { "type": [ "null", "integer" ] }, "title": { "type": [ "null", "string" ] }, "collection": { "type": "string", "example": "general" } } }, "DownloadableMedia": { "title": "Downloadable Media", "x-tags": [ "Media" ], "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "downloadable_media" ] }, "attributes": { "$ref": "#/components/schemas/DownloadableMediaAttributes" } } } ] }, "DownloadableMediaAttributes": { "title": "Downloadable Media (attributes)", "type": "object", "properties": { "name": { "type": "string", "example": "p045126_01" }, "title": { "type": [ "null", "string" ] }, "collection": { "type": "string", "example": "general" }, "url": { "type": "string", "example": "https://example.com/path/to/resource.jpg", "format": "url" }, "extension_type": { "type": "string", "example": "jpg" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "UploadedMedia": { "title": "Media", "type": "object", "properties": { "type": { "type": "string", "enum": [ "floorplan", "photo" ] }, "id": { "type": "string", "format": "uuid" }, "attributes": { "type": "object", "properties": { "name": { "type": "string" }, "order": { "type": "integer" }, "is_featured": { "type": [ "boolean", "null" ] }, "include_in_listing": { "type": [ "boolean", "null" ] }, "feature_index": { "type": "integer" }, "title": { "type": "string" }, "media_type": { "type": "string" }, "url": { "type": "string", "format": "uri" }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "links": { "type": "object", "required": [ "self" ], "properties": { "self": { "type": "string", "format": "uri" } } } } }, "ImageMedia": { "title": "Image", "type": "object", "properties": { "media_type": { "type": "string", "description": "A user defined type to enable categorizing generic media items", "enum": [ "image" ] }, "url": { "type": "string", "example": "https://ik.imagekit.io/street/street-live/properties/general/787110/p045126_01.jpg", "format": "uri" } } }, "PdfMedia": { "title": "PDF", "type": "object", "properties": { "media_type": { "type": "string", "description": "A user defined type to enable categorizing generic media items", "enum": [ "pdf" ] }, "url": { "type": "string", "example": "https://ik.imagekit.io/street/street-live/properties/general/787110/p045126_01.pdf", "format": "uri" } }, "required": [ "media_type" ] }, "IncludedBranch": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] }, "attributes": { "$ref": "#/components/schemas/BranchAttributes" } } } ], "title": "Branch (included)" }, "IncludedCompany": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "company" ] }, "attributes": { "$ref": "#/components/schemas/CompanyAttributes" } } } ], "title": "Company (included)" }, "IncludedInspections": { "title": "Inspections (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "inspection" ] }, "attributes": { "$ref": "#/components/schemas/InspectionAttributes" } } } ], "x-tags": [ "Inspections" ] }, "IncludedApplicant": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] }, "attributes": { "$ref": "#/components/schemas/ApplicantAttributes" }, "relationships": { "type": "object", "properties": { "people": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "person" ] } } } } } } ] } } } } } ], "title": "Applicant (included)" }, "IncludedDownloadableMedia": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "downloadable_media" ] }, "attributes": { "$ref": "#/components/schemas/DownloadableMediaAttributes" } } } ], "examples": [], "title": "Downloadable Media (included)", "x-tags": [ "Media" ] }, "IncludedMedia": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string" }, "attributes": { "$ref": "#/components/schemas/MediaAttributes" } } } ], "examples": [], "title": "Media (included)", "x-tags": [ "Media" ] }, "Media": { "title": "Media", "x-tags": [ "Media" ], "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "media" ] }, "attributes": { "$ref": "#/components/schemas/MediaAttributes" } } } ] }, "MediaAttributes": { "title": "MediaAttributes", "allOf": [ { "$ref": "#/components/schemas/DefaultMedia" }, { "oneOf": [ { "$ref": "#/components/schemas/ImageMedia" }, { "$ref": "#/components/schemas/PdfMedia" } ] } ] }, "IncludedBrochure": { "title": "Brochure (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "brochure" ] }, "attributes": { "type": "object", "properties": { "name": { "type": "string" }, "url": { "type": "string" } } } } } ], "x-tags": [ "Brochures" ] }, "IncludedEpc": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "epc" ] }, "attributes": { "allOf": [ { "properties": { "energy_efficiency_rating": { "type": "string" }, "environmental_impact_rating": { "type": "string" }, "energy_efficiency_current": { "type": "string" }, "energy_efficiency_potential": { "type": "string" }, "environment_impact_current": { "type": "string" }, "environment_impact_potential": { "type": "string" }, "media": { "type": [ "object", "null" ], "properties": { "image": { "type": [ "string", "null" ], "format": "uri" } } } } } ], "type": "object" } } } ], "title": "EPC (included)", "x-tags": [ "Epcs" ] }, "IncludedFloorplan": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "floorplan" ] }, "attributes": { "type": "object", "properties": { "url": { "type": "string" }, "urls": { "type": "array", "items": { "type": "string", "example": "thumbnail, full" } } } } } } ], "title": "Floorplan (included)", "x-tags": [ "Floorplans" ] }, "IncludedFollowUp": { "title": "Follow Up (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "follow_up" ] }, "attributes": { "$ref": "#/components/schemas/FollowUpAttributes" } } } ], "x-tags": [ "Follow Ups" ] }, "IncludedLettingsListing": { "title": "Lettings Listing (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_listing" ] }, "attributes": { "$ref": "#/components/schemas/LettingsListingAttributes" } } } ], "x-tags": [ "Lettings Listings" ] }, "LettingsListingAttributes": { "title": "Lettings Listing (included)", "type": "object", "properties": { "brand_id": { "type": "string", "format": "uuid" }, "price_pcm": { "type": "integer", "example": 850 }, "deposit": { "type": "integer", "example": 1700 }, "let_type": { "type": "string" }, "allows_pets": { "type": "boolean" }, "available_from": { "type": "string" }, "furnished": { "type": "boolean" }, "is_student_rental": { "type": "boolean" }, "is_shared_accommodation": { "type": "boolean" }, "min_tenancy_period": { "type": "string" }, "archived": { "type": "boolean" }, "is_low_profile": { "type": "boolean" }, "is_not_in_property_feed_api": { "type": "boolean" }, "spectre_social_campaigns": { "type": "boolean" }, "spectre_email_campaigns": { "type": "boolean" }, "full_description": { "type": "string" }, "short_description": { "type": "string" }, "location_summary": { "type": "string" }, "has_parking": { "type": "boolean" }, "virtual_tour": { "type": "string" }, "status": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "IncludedLettingsOffer": { "title": "Lettings Offer (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_offer" ] }, "attributes": { "$ref": "#/components/schemas/LettingsOfferAttributes" } } } ], "x-tags": [ "Lettings Offers" ] }, "IncludedLettingsApplication": { "title": "Lettings Application (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_application" ] }, "attributes": { "$ref": "#/components/schemas/LettingsApplicationAttributes" } } } ], "x-tags": [ "Lettings Applications" ] }, "LettingsApplicationAttributes": { "title": "Lettings Application (included)", "type": "object", "properties": { "application_status": { "example": "pending", "enum": [ "successful", "unsuccessful", "in_progress", "pending", "cancelled" ] }, "desired_tenancy_length": { "type": "integer", "example": 12 }, "desired_move_in_date": { "type": "string", "format": "date-time" }, "completed_at": { "type": [ "string", "null" ], "format": "date-time" }, "agreed_move_in_date": { "type": [ "string", "null" ], "format": "date-time" }, "price": { "type": "integer" }, "price_frequency": { "type": "string", "enum": [ "Per Week", "Per 2 Weeks", "Per 4 Weeks", "Per Calendar Month", "Per Quarter", "Per 6 Months", "Per Annum" ] } } }, "IncludedNegotiator": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "negotiator" ] }, "attributes": { "$ref": "#/components/schemas/UserAttributes" } } } ], "title": "Negotiator (included)" }, "IncludedValuer": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuer" ] }, "attributes": { "$ref": "#/components/schemas/UserAttributes" } } } ], "title": "Valuer (included)" }, "IncludedViewer": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewer" ] }, "attributes": { "$ref": "#/components/schemas/UserAttributes" } } } ], "title": "Viewer (included)" }, "IncludedViewingFeedback": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewing_feedback" ] }, "attributes": { "$ref": "#/components/schemas/ViewingFeedbackAttributes" } } } ], "title": "Viewing Feedback (included)" }, "IncludedPhotographer": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "photographer" ] }, "attributes": { "$ref": "#/components/schemas/UserAttributes" } } } ], "title": "User (included)" }, "IncludedInspector": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "inspector" ] }, "attributes": { "$ref": "#/components/schemas/UserAttributes" } } } ], "title": "User (included)" }, "IncludedBookedBy": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "booked_by" ] }, "attributes": { "$ref": "#/components/schemas/UserAttributes" } } } ], "title": "User (included)" }, "IncludedValuationSalesReport": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation_sales_report" ] }, "attributes": { "$ref": "#/components/schemas/ValuationSalesReportAttributes" } } } ], "title": "Valuation Sales Report (included)" }, "IncludedValuationLettingsReport": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation_lettings_report" ] }, "attributes": { "$ref": "#/components/schemas/ValuationLettingsReportAttributes" } } } ], "title": "Valuation Lettings Report (included)" }, "IncludedSalesInstruction": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_instruction" ] }, "attributes": { "$ref": "#/components/schemas/SalesInstructionAttributes" } } } ], "title": "Sales Instruction (included)" }, "IncludedLettingsInstruction": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettings_instruction" ] }, "attributes": { "$ref": "#/components/schemas/LettingsInstructionAttributes" } } } ], "title": "Lettings Instruction (included)" }, "IncludedLostValuationDetail": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lost_valuation_detail" ] }, "attributes": { "$ref": "#/components/schemas/LostValuationDetailAttributes" } } } ], "title": "Lost Valuation Detail (included)" }, "IncludedNotes": { "title": "Note (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "note" ] }, "attributes": { "$ref": "#/components/schemas/NoteAttributes" } } } ], "x-tags": [ "Notes" ] }, "IncludedOutsideSpace": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "outside_space" ] }, "attributes": { "type": "object", "properties": { "space_type": { "type": "string", "enum": [ "Garden", "Front Garden", "Rear Garden", "Communal Garden", "Yard", "Roof Terrace", "Balcony" ] }, "type": { "type": "string", "deprecated": true, "description": "Deprecated: use space_type instead.", "enum": [ "Garden", "Front Garden", "Rear Garden", "Communal Garden", "Yard", "Roof Terrace", "Balcony" ] }, "description": { "type": [ "string", "null" ], "example": "A substantial rear garden with a decked terrace & a generous lawn." }, "width": { "type": [ "integer", "null" ], "example": 6010 }, "length": { "type": [ "integer", "null" ], "example": 4389 }, "area": { "type": [ "integer", "null" ], "example": 56000 }, "orientation": { "type": [ "string", "null" ], "enum": [ "N", "NE", "E", "SE", "SW", "W", "NW" ] } } }, "relationships": { "type": "object", "properties": { "media": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "media" ] } } } } } } ] } } } } } ], "title": "Outside Space (included)", "x-tags": [ "OutsideSpaces" ] }, "IncludedOwner": { "title": "Owner (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] }, "attributes": { "$ref": "#/components/schemas/OwnerAttributes" }, "relationships": { "type": "object", "properties": { "people": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "person" ] } } } } } } ] }, "company": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "company" ] } } } } } ] } } } } } ] }, "IncludedPropertyKey": { "title": "Property Key (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property_key" ] }, "attributes": { "$ref": "#/components/schemas/PropertyKeysAttributes" } } } ] }, "IncludedInterestedApplicant": { "title": "Interested Applicant (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "interested_applicant" ] }, "attributes": { "$ref": "#/components/schemas/InterestedApplicantAttributes" }, "relationships": { "type": "object", "properties": { "applicant": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant" ] } } } } } ] } } } } } ] }, "IncludedInvoice": { "title": "Invoice (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "invoice" ] }, "attributes": { "$ref": "#/components/schemas/InvoiceAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } ] }, "owner": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] } } } } } ] }, "line_items": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "fee" ] } } } } } ] } } } } } ] }, "IncludedParking": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "parking_space" ] }, "attributes": { "type": "object", "properties": { "include_in_listing": { "type": [ "boolean", "null" ] }, "parking_space_type": { "type": "string", "enum": [ "Garage", "Car Port", "Off Road", "On Road", "Permit", "Secure Gated", "Allocated Parking", "On Drive" ] }, "capacity": { "type": [ "number", "null" ], "example": 2 }, "description": { "type": [ "string", "null" ], "example": "Driveway with parking for 2 vehicles" } } }, "relationships": { "type": "object", "properties": { "media": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "media" ] } } } } } } ] } } } } } ], "title": "Parking (included)", "x-tags": [ "Parking" ] }, "IncludedPerson": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "person" ] }, "attributes": { "$ref": "#/components/schemas/PersonAttributes" } } } ], "title": "Person (included)" }, "IncludedGuarantor": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "guarantor" ] }, "attributes": { "$ref": "#/components/schemas/GuarantorAttributes" } } } ], "title": "Guarantor (included)" }, "IncludedProperty": { "title": "Property (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] }, "attributes": { "$ref": "#/components/schemas/PropertyAttributes" }, "relationships": { "type": "object", "properties": { "branch": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "branch" ] } } } } } ] } } } } } ] }, "IncludedRoom": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "room" ] }, "attributes": { "type": "object", "properties": { "room_type": { "type": "string", "example": "lounge" }, "name": { "type": "string", "example": "Lounge" }, "width": { "type": [ "integer", "null" ], "example": 320 }, "length": { "type": [ "integer", "null" ], "example": 509 }, "formatted_dimensions": { "type": [ "string", "null" ], "example": "16′ 9″ x 10′ 6″ (5.1m x 3.2m)" }, "description": { "type": [ "string", "null" ], "example": "Dual aspect with a window to the front and side elevation both fitted with French Shutters. Laminated wood flooring. T.V point." }, "order": { "type": "integer", "example": 4 } } }, "relationships": { "type": "object", "properties": { "media": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "media" ] } } } } } } ] } } } } } ], "title": "Room (included)", "x-tags": [ "Rooms" ] }, "IncludedSale": { "title": "Sales (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sale" ] }, "attributes": { "$ref": "#/components/schemas/SaleAttributes" } } } ] }, "IncludedSalesOffer": { "title": "Sales Offer (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_offer" ] }, "attributes": { "$ref": "#/components/schemas/SalesOfferAttributes" } } } ] }, "IncludedSalesListing": { "title": "Sales Listing (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sales_listing" ] }, "attributes": { "$ref": "#/components/schemas/SalesListingAttributes" } } } ] }, "SalesListingAttributes": { "title": "Sales Listing (included)", "type": "object", "properties": { "brand_id": { "type": "string", "format": "uuid" }, "personal_interest_disclosure": { "type": [ "string", "null" ] }, "price_qualifier": { "type": [ "string", "null" ], "enum": [ "None", "In Excess of", "Prices From", "Guide Price", "Offers Over", "Offers in Region of", "Fixed Price", "Price On Application", "Part Buy, Part Rent", null ] }, "archived": { "type": "boolean" }, "is_low_profile": { "type": "boolean" }, "is_not_in_property_feed_api": { "type": "boolean" }, "spectre_social_campaigns": { "type": "boolean" }, "spectre_email_campaigns": { "type": "boolean" }, "is_auction": { "type": "boolean" }, "new_home": { "type": "boolean" }, "retirement": { "type": "boolean" }, "full_description": { "type": [ "string", "null" ] }, "short_description": { "type": [ "string", "null" ] }, "location_summary": { "type": [ "string", "null" ] }, "has_parking": { "type": [ "boolean", "null" ] }, "virtual_tour": { "type": [ "string", "null" ], "format": "uri-reference" }, "price": { "type": "integer", "example": 500000 }, "status": { "type": "string", "enum": [ "For Sale", "Sold STC", "Withdrawn", "Under Offer" ] }, "marketing_status": { "type": "string", "enum": [ "For Sale", "Sold STC", "Withdrawn", "Under Offer" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "deleted_at": { "type": [ "string", "null" ], "format": "date-time" } } }, "IncludedTenancy": { "title": "Tenancy (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenancy" ] }, "attributes": { "$ref": "#/components/schemas/TenancyAttributes" } } } ] }, "IncludedHoldingDeposit": { "title": "Holding Deposit (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "holdingDeposit" ] }, "attributes": { "$ref": "#/components/schemas/HoldingDepositAttributes" } } } ] }, "IncludedTenancyAgreement": { "title": "Tenancy Agreement (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenancyAgreement" ] }, "attributes": { "$ref": "#/components/schemas/TenancyAgreementAttributes" } } } ] }, "IncludedTenants": { "title": "Tenants (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenant" ] }, "attributes": { "oneOf": [ { "$ref": "#/components/schemas/TenantAttributes" }, { "$ref": "#/components/schemas/CompanyTenantAttributes" } ], "discriminator": { "propertyName": "tenant_type" } } } } ], "x-tags": [ "Tenants" ] }, "IncludedUser": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "user" ] }, "attributes": { "$ref": "#/components/schemas/UserAttributes" } } } ], "title": "User (included)" }, "IncludedValuation": { "title": "Valuation (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation" ] }, "attributes": { "$ref": "#/components/schemas/ValuationAttributes" } } } ] }, "IncludedFees": { "title": "Fees (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "fee" ] }, "attributes": { "$ref": "#/components/schemas/FeeAttributes" } } } ] }, "IncludedViewing": { "title": "Viewing (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewing" ] }, "attributes": { "$ref": "#/components/schemas/ViewingAttributes" } } } ] }, "IncludedSolicitor": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "solicitor" ] }, "attributes": { "allOf": [ { "$ref": "#/components/schemas/SolicitorAttributes" } ] } } } ] }, "IncludedSolicitorFirm": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "solicitorFirm" ] }, "attributes": { "allOf": [ { "$ref": "#/components/schemas/SolicitorFirmAttributes" } ] } } } ], "title": "Solicitor Firm (included)" }, "IncludedApplicantSolicitorSale": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "applicant_solicitor_sale" ] }, "attributes": { "allOf": [ { "$ref": "#/components/schemas/SaleAttributes" } ] } } } ], "title": "Solicitor Firm (included)" }, "IncludedOwnerSolicitorSale": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner_solicitor_sale" ] }, "attributes": { "allOf": [ { "$ref": "#/components/schemas/SaleAttributes" } ] } } } ], "title": "Solicitor Firm (included)" }, "IncludedVendor": { "title": "Vendor (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "vendor" ] }, "attributes": { "$ref": "#/components/schemas/VendorAttributes" }, "relationships": { "type": "object", "properties": { "people": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "person" ] } } } } } } ] } } } } } ], "x-tags": [ "Vendors" ] }, "IncludedMeterReading": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "meter_reading" ] }, "attributes": { "type": "object", "properties": { "meter_type": { "type": "string", "enum": [ "add_gas_meter_readings", "add_electric_meter_readings", "add_water_meter_readings" ] }, "type": { "type": "string", "deprecated": true, "description": "Deprecated: use meter_type instead.", "enum": [ "add_gas_meter_readings", "add_electric_meter_readings", "add_water_meter_readings" ] }, "reading": { "type": [ "string", "null" ] }, "reading_taken_at": { "type": [ "string", "null" ], "format": "date-time" } } } } } ], "title": "MeterReading (Included)", "x-tags": [ "MeterReadings" ] }, "PropertyRelated": { "title": "Property (related)", "type": "object", "additionalProperties": false, "properties": { "property": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "LettingsApplicantRelated": { "title": "Lettings Applicant (related)", "type": "object", "additionalProperties": false, "properties": { "lettings_applicant": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettingsApplicant" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "LettingsApplicationRelated": { "title": "Lettings Application (related)", "type": "object", "properties": { "lettings_application": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettingsApplication" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "PersonRelated": { "title": "Person (related)", "type": "object", "properties": { "person": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "person" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "SalesApplicantRelated": { "title": "Sales Applicant (related)", "type": "object", "additionalProperties": false, "properties": { "sales_applicant": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "salesApplicant" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "SaleRelated": { "title": "Sale (related)", "type": "object", "additionalProperties": false, "properties": { "sale": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "sale" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "ValuationRelated": { "title": "Valuation (related)", "type": "object", "additionalProperties": false, "properties": { "valuation": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "valuation" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "InspectionRelated": { "title": "Inspection (related)", "type": "object", "properties": { "inspection": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "inspection" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "MaintenanceJobRelated": { "title": "MaintenanceJob (related)", "type": "object", "properties": { "maintenance": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "maintenance" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "CompanyRelated": { "title": "Company (related)", "type": "object", "properties": { "company": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "company" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "TenancyRelated": { "title": "Tenancy (related)", "type": "object", "properties": { "tenancy": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenancy" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "OwnerRelated": { "title": "Owner (related)", "type": "object", "properties": { "owner": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "owner" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "EnquiryRelated": { "title": "Enquiry (related)", "type": "object", "properties": { "enquiry": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "enquiry" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "SalesOfferRelated": { "title": "Sales Offer (related)", "type": "object", "properties": { "sales_offer": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "salesOffer" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "LettingsOfferRelated": { "title": "Lettings Offer (related)", "type": "object", "properties": { "lettings_offer": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "lettingsOffer" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "ViewingRelated": { "title": "Viewing (related)", "type": "object", "additionalProperties": false, "properties": { "viewing": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "viewing" ] }, "id": { "type": "string", "format": "uuid" } } } } } } }, "TodoRelationship": { "title": "Task relationships", "description": "JSON:API relationships object for a Task. Each member is a relationship object whose `data` is a resource identifier (`type` + `id`). Supply at most one todoable subject the Task is about — keyed by the relationship name (e.g. `property`, `sale`); the key is a label and is not significant to the server, only its `data.type` and `data.id` are read. A `todoType` may be supplied to categorise the Task and, if present, MUST be keyed exactly `todoType`. At least one member is required.", "type": "object", "minProperties": 1, "properties": { "todoType": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "type", "id" ], "properties": { "type": { "type": "string", "enum": [ "todoType" ] }, "id": { "type": "string", "format": "uuid" } } } } } }, "additionalProperties": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "type", "id" ], "properties": { "type": { "type": "string", "enum": [ "property", "salesApplicant", "lettingsApplicant", "sale", "salesOffer", "lettingsOffer", "valuation", "viewing", "maintenanceJob", "inspection", "tenancy", "moveOut", "lettingsApplication", "arrears", "person", "owner", "workflowInstance", "compliance", "safetyCertificate", "insurancePolicy", "enquiry", "tenancyNotice" ] }, "id": { "type": "string", "format": "uuid" } } } } } }, "PersonRequestBody": { "title": "Person (request)", "type": "object", "properties": { "title": { "type": [ "string", "null" ] }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "marketing_consent": { "type": "boolean" }, "contact_preferences": { "type": "object", "properties": { "email": { "type": "boolean" }, "text": { "type": "boolean" }, "post": { "type": "boolean" }, "phone": { "type": "boolean" } } } }, "required": [ "first_name", "last_name" ] }, "IncludedSafetyCertificate": { "title": "Safety Certificate (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "safetyCertificate" ] }, "attributes": { "$ref": "#/components/schemas/SafetyCertificateAttributes" } } } ] }, "SafetyCertificateAttributes": { "title": "SafetyCertificateAttributes", "type": "object", "properties": { "media": { "type": "object", "properties": { "document": { "type": "string", "format": "uri", "example": "https://street.co.uk/certificates/safetyCertificate.pdf" } } }, "certificate_type": { "type": "string", "enum": [ "alarm_service", "asbestos_check", "automated_gates", "boiler_service", "building_compliance", "building_insurance", "carbon_monoxide", "chimney_sweep", "damp_proofing", "eic", "electric", "fire_detection", "fire_door_assesment", "fire_equipment", "gas", "health", "heat_recovery_system", "hmo_license", "homecare_plan", "landlord_registration", "lead_water_testing", "legion", "lighting_safety", "oil_safety_check", "pat", "remcon_service", "rent_guarantee_insurance", "rent_smart_wales_registered", "risk", "saniflow_service_and_descaler", "selective_license", "smoke_alarm", "smoke_ventilation_system_service_aov", "sump_pump_service", "tree_management", "tv_license", "velux_window_service" ] }, "type": { "type": "string", "deprecated": true, "description": "Deprecated: use certificate_type instead.", "enum": [ "alarm_service", "asbestos_check", "automated_gates", "boiler_service", "building_compliance", "building_insurance", "carbon_monoxide", "chimney_sweep", "damp_proofing", "eic", "electric", "fire_detection", "fire_door_assesment", "fire_equipment", "gas", "health", "heat_recovery_system", "hmo_license", "homecare_plan", "landlord_registration", "lead_water_testing", "legion", "lighting_safety", "oil_safety_check", "pat", "remcon_service", "rent_guarantee_insurance", "rent_smart_wales_registered", "risk", "saniflow_service_and_descaler", "selective_license", "smoke_alarm", "smoke_ventilation_system_service_aov", "sump_pump_service", "tree_management", "tv_license", "velux_window_service" ] }, "notes": { "type": [ "string", "null" ] }, "valid_from": { "type": [ "string", "null" ], "format": "date-time" }, "valid_to": { "type": "string", "format": "date-time" }, "reminder_at": { "type": [ "string", "null" ], "format": "date-time" }, "renewed_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "MoveOut": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "move_out" ] }, "attributes": { "$ref": "#/components/schemas/MoveOutAttributes" }, "relationships": { "type": "object", "properties": { "properties": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "property" ] } } } } } } ] }, "tenancies": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "tenancy" ] } } } } } } ] }, "meterReadings": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "meter_reading" ] } } } } } } ] } } } } } ], "title": "MoveOut" }, "MoveOutAttributes": { "type": "object", "title": "MoveOut Attributes", "properties": { "move_out_date": { "type": [ "string", "null" ], "format": "date-time", "example": "2023-01-01T00:00:00Z" }, "contract_end_date": { "type": [ "string", "null" ], "format": "date-time", "example": "2023-02-01T00:00:00Z" }, "cancellation_date": { "type": "string", "format": "date-time", "example": "2023-02-15T00:00:00Z" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "completed_at": { "type": [ "string", "null" ], "format": "date-time" }, "cancelled_at": { "type": [ "string", "null" ], "format": "date-time" }, "cancellation_reason": { "type": [ "string", "null" ], "example": "Customer cancellation" } } }, "EsignDocument": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "esign_document" ] }, "attributes": { "$ref": "#/components/schemas/EsignDocumentAttributes" }, "relationships": { "type": "object", "properties": { "recipients": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "esign_document_recipient" ] } } } } } } ] } } } } } ], "title": "EsignDocument" }, "EsignDocumentAttributes": { "type": "object", "title": "E-Sign Document Attributes", "properties": { "name": { "type": "string", "example": "Terms of Business" }, "sent_at": { "type": "string", "format": "date-time" }, "completed_at": { "type": [ "string", "null" ], "format": "date-time" }, "cancelled_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "EsignDocumentRecipientAttributes": { "type": "object", "title": "E-Sign Document Recipient Attributes", "properties": { "email": { "type": "string" }, "name": { "type": "string" }, "sent_at": { "type": [ "string", "null" ], "format": "date-time" }, "signed_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "IncludedEsignDocumentRecipient": { "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "esign_document_recipient" ] }, "attributes": { "$ref": "#/components/schemas/EsignDocumentRecipientAttributes" } } } ], "title": "Esign Document Recipient (included)" }, "PortalListing": { "allOf": [ { "$ref": "#/components/schemas/BaseModel" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "portal_listing" ] }, "attributes": { "$ref": "#/components/schemas/PortalListingAttributes" }, "relationships": { "type": "object", "properties": { "property": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": [ "object", "null" ] } } } ] }, "portal": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": [ "object", "null" ] } } } ] }, "salesListing": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": [ "object", "null" ] } } } ] }, "lettingsListing": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": [ "object", "null" ] } } } ] } } } } } ], "title": "Portal Listing" }, "PortalListingAttributes": { "type": "object", "title": "Portal Listing Attributes", "properties": { "remote_identifier": { "type": "string", "description": "External listing ID from the portal", "example": "12345" }, "remote_url": { "type": "string", "format": "uri", "description": "URL of the listing on the external portal", "example": "https://portal.com/listing/12345" }, "listing_type": { "type": "string", "enum": [ "salesListing", "lettingsListing" ], "description": "Type of listing (sales or lettings)" }, "active": { "type": "boolean", "description": "Whether the portal listing is active" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "IncludedPortal": { "title": "Portal (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "portal" ] }, "attributes": { "$ref": "#/components/schemas/PortalAttributes" } } } ] }, "PortalAttributes": { "type": "object", "title": "Portal Attributes", "properties": { "name": { "type": "string", "description": "Name of the portal", "example": "Rightmove" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }, "IncludedQuestionnaire": { "title": "Questionnaire (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire" ] }, "attributes": { "$ref": "#/components/schemas/QuestionnaireAttributes" }, "relationships": { "type": "object", "properties": { "sections": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_section" ] } } } } } } ] } } } } } ] }, "IncludedQuestionnaireSection": { "title": "Questionnaire Section (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_section" ] }, "attributes": { "$ref": "#/components/schemas/QuestionnaireSectionAttributes" }, "relationships": { "type": "object", "properties": { "questions": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_question" ] } } } } } } ] } } } } } ] }, "IncludedQuestionnaireQuestion": { "title": "Questionnaire Question (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_question" ] }, "attributes": { "$ref": "#/components/schemas/QuestionnaireQuestionAttributes" }, "relationships": { "type": "object", "properties": { "options": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_question_option" ] } } } } } } ] } } } } } ] }, "IncludedQuestionnaireQuestionOption": { "title": "Questionnaire Question Option (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_question_option" ] }, "attributes": { "$ref": "#/components/schemas/QuestionnaireQuestionOptionAttributes" } } } ] }, "IncludedQuestionnaireAnswer": { "title": "Questionnaire Answer (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_response_answer" ] }, "attributes": { "$ref": "#/components/schemas/QuestionnaireResponseAnswerAttributes" }, "relationships": { "type": "object", "properties": { "question": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_question" ] } } } } } ] }, "values": { "allOf": [ { "$ref": "#/components/schemas/RelationshipPlural" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_response_answer_value" ] } } } } } } ] } } } } } ] }, "IncludedQuestionnaireAnswerValue": { "title": "Questionnaire Answer Value (included)", "allOf": [ { "$ref": "#/components/schemas/IncludedResource" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_response_answer_value" ] }, "attributes": { "$ref": "#/components/schemas/QuestionnaireResponseAnswerValueAttributes" }, "relationships": { "type": "object", "properties": { "option": { "allOf": [ { "$ref": "#/components/schemas/RelationshipSingular" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "questionnaire_question_option" ] } } } } } ] } } } } } ] } }, "parameters": { "page_size": { "name": "page[size]", "description": "Set the number of results per page.", "in": "query", "required": false, "schema": { "type": "number", "minimum": 1, "maximum": 250, "example": 25 } }, "page_number": { "name": "page[number]", "description": "Set the page number.", "in": "query", "required": false, "schema": { "type": "number", "minimum": 1, "example": 3 } }, "filter_tags": { "name": "filter[tags]", "description": "Tags are entered by the agent in the Street UI and enable you to filter properties according to custom criteria. This can be used to power featured properties, carousels, hot property lists etc.\n\nThese tags should be passed to the API in lowercase and urlencoded.\n\nYou can also enter a semi-colon seperated list to return all properties with any of those tags.", "in": "query", "required": false, "schema": { "type": "string" } }, "filter_postcode": { "name": "filter[postcode]", "description": "This filter will narrow your search results by first or partial postcode.\n\nA value of `M` will return all properties who's postcode begins with M, including `M1 1JU` & `M28 2PD`.\n\nEntering in `M28 2` will return all active properties in that postcode sector.", "in": "query", "required": false, "schema": { "type": "string" } }, "filter_email_address": { "name": "filter[email_address]", "in": "query", "required": false, "schema": { "type": "string", "format": "email", "example": "alice.walker@example.com" }, "description": "Filter results by an associated email address" }, "filter_telephone_number": { "name": "filter[telephone_number]", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter results by an associated telephone number. The number must be in full international dialing format e.g. +441614960137" }, "filter_bedrooms": { "name": "filter[bedrooms]", "description": "The exact number of bedrooms for search results.", "in": "query", "required": false, "schema": { "type": "string" } }, "filter_min_bedrooms": { "name": "filter[min_bedrooms]", "description": "Minimum number of bedrooms for search results.", "in": "query", "required": false, "schema": { "type": "string" } }, "filter_min_price_sales": { "name": "filter[min_price_sales]", "description": "Minimum sales listing price for search results.", "in": "query", "required": false, "schema": { "type": "string" } }, "filter_max_price_sales": { "name": "filter[max_price_sales]", "description": "Maximum sales listing price for search results.", "in": "query", "required": false, "schema": { "type": "string" } }, "filter_min_price_lettings": { "name": "filter[min_price_lettings]", "description": "Minimum lettings listing price for search results.", "in": "query", "required": false, "schema": { "type": "string" } }, "filter_max_price_lettings": { "name": "filter[max_price_lettings]", "description": "Maximum lettings listing price for search results.", "in": "query", "required": false, "schema": { "type": "string" } }, "filter_property_status": { "name": "filter[status]", "description": "Filter by property status. You can use a comma separated list for multiple statuses.", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "not_on_the_market", "valuation_lost", "valuation_booked", "valuation_pending", "valuation_cancelled", "valuation_completed", "instructed", "for_sale", "under_offer", "sold_stc", "exchanged", "let", "to_let", "let_agreed", "for_sale_and_to_let", "withdrawn_sales", "withdrawn_lettings", "withdrawn_sales_and_lettings", "completed" ] }, "uniqueItems": true, "minItems": 1 }, "explode": false, "style": "form" }, "filter_branch": { "name": "filter[branch]", "description": "Filter by network branch. Provide the UUID of a branch to filter properties by a specific branch.", "in": "query", "required": false, "schema": { "type": "string", "format": "uuid" } }, "filter_created_from": { "name": "filter[created_from]", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" }, "description": "Filter by results created after the provided date." }, "filter_created_to": { "name": "filter[created_to]", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" }, "description": "Filter by results created before the provided date." }, "filter_updated_from": { "name": "filter[updated_from]", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" }, "description": "Filter by results updated after the provided date." }, "filter_updated_to": { "name": "filter[updated_to]", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" }, "description": "Filter by results updated before the provided date." }, "filter_booked_from": { "name": "filter[booked_from]", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" }, "description": "Filter by results booked before the provided date." }, "filter_booked_to": { "name": "filter[booked_to]", "in": "query", "required": false, "schema": { "type": "string", "format": "date-time" }, "description": "Filter by results booked before the provided date." }, "filter_person_status": { "name": "filter[status]", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "current", "previous" ] }, "description": "Filter by wether they are Current or Previous." }, "filter_property": { "name": "filter[property]", "in": "query", "required": false, "schema": { "type": "string", "format": "uuid" }, "description": "Filter by property. Provide the UUID of a property to filter follow ups by a specific property." }, "filter_address": { "name": "filter[address]", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter results by their address, this is a fuzzy wildcard match on the full address string." }, "filter_trashed": { "name": "filter[trashed]", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "with", "only" ] }, "description": "Optionally return result WITH deleted results or return ONLY deleted results." }, "filter_ident": { "name": "filter[ident]", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Optionally return result for a chosen ident." }, "filter_cancelled": { "name": "filter[cancelled]", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "with", "only" ] }, "description": "Optionally return result WITH cancelled results or return ONLY cancelled results." }, "filter_applicant_price_from": { "name": "filter[price_from]", "in": "query", "required": false, "schema": { "type": "integer" }, "description": "Filter results by their minimum budget." }, "filter_applicant_price_to": { "name": "filter[price_to]", "in": "query", "required": false, "schema": { "type": "integer" }, "description": "Filter results by their maximum budget." }, "filter_applicant_furnished": { "name": "filter[furnished]", "in": "query", "required": false, "schema": { "type": "boolean" }, "description": "Filter results by wether or not the require furnished properties." }, "filter_applicant_min_bedrooms": { "name": "filter[min_bedrooms]", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 7 }, "description": "Filter results by the minimum number of bedrooms they require" } }, "responses": { "400": { "description": "The HTTP 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiMultiErrorResponseBody" } } } }, "401": { "description": "The HTTP 401 Unauthorized response status code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiErrorResponseBody" } } } }, "403": { "description": "The HTTP 403 Forbidden response status code indicates that the server understands the request but refuses to authorize it.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiErrorResponseBody" } } } }, "404": { "description": "The HTTP 404 Not Found response status code indicates that the server cannot find the requested resource.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiErrorResponseBody" } } } }, "406": { "description": "The HTTP 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiErrorResponseBody" } } } }, "409": { "description": "The HTTP 409 Conflict response status code indicates a request conflict with the current state of the target resource.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiErrorResponseBody" } } } }, "415": { "description": "The HTTP 415 Unsupported Media Type client error response code indicates that the server refuses to accept the request because the payload format is in an unsupported format.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiErrorResponseBody" } } } }, "422": { "description": "The 422 Unprocessable Content response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiMultiErrorResponseBody" } } } }, "500": { "description": "The HTTP 500 Internal Server Error server error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/jsonApiMultiErrorResponseBody" } } } } }, "securitySchemes": { "your-api-token": { "type": "http", "scheme": "bearer" } }, "requestBodies": {} }, "security": [ { "your-api-token": [] } ], "tags": [ { "name": "Activity", "description": "Activity endpoints for this API." }, { "name": "Applicants", "description": "Applicants endpoints for this API." }, { "name": "Areas", "description": "Area endpoints for this API." }, { "name": "Branches", "description": "Branches endpoints for this API." }, { "name": "Brands", "description": "Brands endpoints for this API." }, { "name": "Companies", "description": "Companies endpoints for this API." }, { "name": "Documents", "description": "Documents endpoints for this API." }, { "name": "E-Sign Documents", "description": "E-Sign Documents endpoints for this API." }, { "name": "Enquiries", "description": "Enquiries endpoints for this API." }, { "name": "Follow Ups", "description": "Follow Ups endpoints for this API." }, { "name": "Images", "description": "Image endpoints for this API." }, { "name": "Inspections", "description": "Inspections endpoints for this API." }, { "name": "Interested Applicants", "description": "Interested Applicants endpoints for this API." }, { "name": "Invoices", "description": "Invoices endpoints for this API." }, { "name": "Landlords", "description": "Landlords endpoints for this API." }, { "name": "Lettings Applications", "description": "Lettings Application endpoints for this API." }, { "name": "Lettings Instructions", "description": "Lettings Instruction endpoints for this API." }, { "name": "Lettings Offers", "description": "Lettings Offers endpoints for this API." }, { "name": "Maintenance Jobs", "description": "Maintenance Jobs endpoints for this API." }, { "name": "Maintenance Requests", "description": "Maintenance Request endpoints for this API." }, { "name": "Move Outs", "description": "Move Outs endpoints for this API." }, { "name": "Network Settings", "description": "Network Settings endpoints for this API." }, { "name": "Notes", "description": "Notes endpoints for this API." }, { "name": "People", "description": "People endpoints for this API." }, { "name": "Photos and Measures", "description": "Photo and Measure endpoints for this API." }, { "name": "Portal Listings", "description": "Portal Listings endpoints for this API." }, { "name": "Properties", "description": "Properties endpoints for this API." }, { "name": "Property Keys", "description": "Property Key endpoints for this API." }, { "name": "Questionnaire Responses", "description": "Questionnaire Response endpoints for this API." }, { "name": "Sales", "description": "Sales endpoints for this API." }, { "name": "Sales Instructions", "description": "Sales Instructions endpoints for this API." }, { "name": "Sales Offers", "description": "Sales Offers endpoints for this API." }, { "name": "Solicitors", "description": "Solicitors endpoints for this API." }, { "name": "Tenancies", "description": "Tenancies endpoints for this API." }, { "name": "Tenants", "description": "Tenants endpoints for this API." }, { "name": "Task Types", "description": "Task Types endpoints for this API." }, { "name": "Tasks", "description": "Tasks endpoints for this API." }, { "name": "Users", "description": "Users endpoints for this API." }, { "name": "Valuations", "description": "Valuations endpoints for this API." }, { "name": "Vendors", "description": "Vendors endpoints for this API." }, { "name": "Viewings", "description": "Viewings endpoints for this API." } ], "x-ext-urls": {} }