Arthur Online - onboard a property
Version 1.0.0
Bring a new building into Arthur Online: create the property, add a lettable unit, file the compliance certificate, publish the information shared with occupants and attach the document. Every operationId is verified against the derived Arthur API v2 specs.
1 workflow
6 source APIs
1 provider
View Spec
View on GitHub
Real-EstateUnited KingdomProperty ManagementPropTechRentalsLettingsTenancyMaintenanceProperty ListingsSocial HousingStudent HousingBlock ManagementArazzoWorkflows
onboardProperty
Create a property, its first unit, a certificate, shared information and a document.
9 steps
inputs: asset, certificate, entityId, generalInfo, property, unit
outputs: propertyId, unitId
2
checkForDuplicate
Look for an existing property at this address before creating one.
5
addUnit
Tenancies and viewings attach to units, so a property with no units cannot be let.
arazzo: 1.0.1
info:
title: Arthur Online - onboard a property
version: 1.0.0
description: >-
Bring a new building into Arthur Online: create the property, add a lettable unit, file the
compliance certificate, publish the information shared with occupants and attach the document.
Every operationId is verified against the derived Arthur API v2 specs.
sourceDescriptions:
- name: assetsApi
url: ../openapi/arthur-online-assets-api-openapi.yml
type: openapi
- name: certificatesApi
url: ../openapi/arthur-online-certificates-api-openapi.yml
type: openapi
- name: entitiesApi
url: ../openapi/arthur-online-entities-api-openapi.yml
type: openapi
- name: generalInformationApi
url: ../openapi/arthur-online-general-information-api-openapi.yml
type: openapi
- name: propertiesApi
url: ../openapi/arthur-online-properties-api-openapi.yml
type: openapi
- name: unitsApi
url: ../openapi/arthur-online-units-api-openapi.yml
type: openapi
workflows:
- workflowId: onboardProperty
summary: Create a property, its first unit, a certificate, shared information and a document.
inputs:
type: object
required: [entityId, property]
properties:
entityId: {type: string, description: Sent as X-EntityID on every call.}
property: {type: object, description: Property fields as documented on Add Property.}
unit: {type: object, description: Unit fields as documented on Add Unit.}
certificate: {type: object, description: Certificate fields including type and expiry date.}
generalInfo: {type: object, description: 'title, description, faq_type and the share_* flags.'}
asset: {type: object, description: 'file (base64), mime_type, file_name and the share_* flags.'}
steps:
- stepId: confirmEntity
operationId: $sourceDescriptions.entitiesApi.listEntities
parameters:
- {name: X-EntityID, in: header, value: $inputs.entityId}
successCriteria:
- condition: $statusCode == 200
- stepId: checkForDuplicate
description: Look for an existing property at this address before creating one.
operationId: $sourceDescriptions.propertiesApi.listProperties
parameters:
- {name: X-EntityID, in: header, value: $inputs.entityId}
- {name: limit, in: query, value: 100}
successCriteria:
- condition: $statusCode == 200
outputs:
existing: $response.body#/data
- stepId: createProperty
operationId: $sourceDescriptions.propertiesApi.addProperty
parameters:
- {name: X-EntityID, in: header, value: $inputs.entityId}
- {name: strict, in: query, value: true}
requestBody:
contentType: application/json
payload: $inputs.property
successCriteria:
- condition: $statusCode == 200
outputs:
propertyId: $response.body#/data/id
- stepId: verifyProperty
operationId: $sourceDescriptions.propertiesApi.viewProperty
parameters:
- {name: property_id, in: path, value: $steps.createProperty.outputs.propertyId}
- {name: X-EntityID, in: header, value: $inputs.entityId}
successCriteria:
- condition: $statusCode == 200
- stepId: addUnit
description: Tenancies and viewings attach to units, so a property with no units cannot be let.
operationId: $sourceDescriptions.unitsApi.addUnit
parameters:
- {name: X-EntityID, in: header, value: $inputs.entityId}
- {name: strict, in: query, value: true}
requestBody:
contentType: application/json
payload: $inputs.unit
successCriteria:
- condition: $statusCode == 200
outputs:
unitId: $response.body#/data/id
- stepId: fileCertificate
operationId: $sourceDescriptions.certificatesApi.addCertificateOnProperty
parameters:
- {name: property_id, in: path, value: $steps.createProperty.outputs.propertyId}
- {name: X-EntityID, in: header, value: $inputs.entityId}
- {name: strict, in: query, value: true}
requestBody:
contentType: application/json
payload: $inputs.certificate
successCriteria:
- condition: $statusCode == 200
- stepId: publishGeneralInfo
operationId: $sourceDescriptions.generalInformationApi.addGeneralInfoForProperty
parameters:
- {name: property_id, in: path, value: $steps.createProperty.outputs.propertyId}
- {name: X-EntityID, in: header, value: $inputs.entityId}
- {name: strict, in: query, value: true}
requestBody:
contentType: application/json
payload: $inputs.generalInfo
successCriteria:
- condition: $statusCode == 200
- stepId: attachDocument
operationId: $sourceDescriptions.assetsApi.createAssetOnProperty
parameters:
- {name: property_id, in: path, value: $steps.createProperty.outputs.propertyId}
- {name: X-EntityID, in: header, value: $inputs.entityId}
- {name: strict, in: query, value: true}
requestBody:
contentType: application/json
payload: $inputs.asset
successCriteria:
- condition: $statusCode == 200
- stepId: confirmUnits
operationId: $sourceDescriptions.unitsApi.listUnitsOnProperty
parameters:
- {name: property_id, in: path, value: $steps.createProperty.outputs.propertyId}
- {name: X-EntityID, in: header, value: $inputs.entityId}
successCriteria:
- condition: $statusCode == 200
outputs:
propertyId: $steps.createProperty.outputs.propertyId
unitId: $steps.addUnit.outputs.unitId
Every workflow here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for arazzo workflows
4 MCP tools reach this
find_arazzoBrowse and filter every workflow in the catalog.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/arthur-online-onboard-property"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.