Arthur Online · Arazzo Workflow

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

Provider

arthur-online

Workflows

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.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
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

Work with this as data

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.