Alto (Vebra / Zoopla) Inventory API

The Inventory API from Alto (Vebra / Zoopla) — 10 operation(s) for inventory.

Operations 12

GET /inventory
GET /inventory/{inventoryId} Get an inventory item
PATCH /inventory/{inventoryId}
POST /inventory/{inventoryId}/keyset Create a key set for an inventory item
PATCH /inventory/{inventoryId}/keyset/{keySetId} Update a key set for an inventory item
DELETE /inventory/{inventoryId}/keyset/{keySetId} Delete a key set for an inventory item
GET /inventory/{inventoryId}/keysets Get key sets by inventoryId
POST /inventory/{inventoryId}/owner Associates a Contact with an Inventory item as its Owner
GET /inventory/filter Filter inventory items
GET /inventory/items Get multiple inventory items
POST /inventory/new Creates an inventory item
GET /inventory/search Search inventory items

Documentation

Specifications

Other Resources

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/alto-vebra-inventory-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

alto-vebra-inventory-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Alto Inventory API
  version: '1.0'
servers:
- url: https://api.alto.zoopladev.co.uk
  description: Sandbox
- url: https://api.alto.zoopla.co.uk
  description: Production
security:
- Bearer: []
tags:
- name: Inventory
paths:
  /inventory:
    get:
      tags:
      - Inventory
      parameters:
      - name: nextToken
        in: query
        schema:
          type: string
      - name: maxResults
        in: query
        schema:
          type: integer
          format: int32
      - name: address
        in: query
        schema:
          type: string
      - name: category
        in: query
        schema:
          allOf:
          - $ref: '#/components/schemas/Alto.Inventory.Api.Enums.PropertyCategoryType'
      - name: recordType
        in: query
        schema:
          allOf:
          - $ref: '#/components/schemas/Alto.Inventory.Api.Enums.PropertyRecordType'
      - name: archived
        in: query
        schema:
          type: boolean
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.InventoryPagedResults'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.InventoryPagedResults'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.InventoryPagedResults'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
      - appAuth:
        - alto/route:get-inventory
  /inventory/{inventoryId}:
    get:
      tags:
      - Inventory
      summary: Get an inventory item
      description: Get an inventory item by id
      parameters:
      - name: inventoryId
        in: path
        description: The unique identifier for the inventory item
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the inventory item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.InventoryDetailItem'
        '400':
          description: When the request does not contain the expected information
        '401':
          description: When access has not been granted
        '404':
          description: The inventory item was not found
      security:
      - appAuth:
        - alto/route:get-inventory-inventoryid
    patch:
      tags:
      - Inventory
      parameters:
      - name: inventoryId
        in: path
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.Inventory.Api.Models.Responses.InventoryPatch'
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '404':
          description: Not Found
      security:
      - appAuth:
        - alto/route:get-inventory-inventoryid
  /inventory/{inventoryId}/keyset:
    post:
      tags:
      - Inventory
      summary: Create a key set for an inventory item
      parameters:
      - name: inventoryId
        in: path
        description: The unique identifier for the inventory
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      requestBody:
        description: The key set to create
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Inventory.Api.Models.Requests.AddKeySetRequest'
        required: true
      responses:
        '201':
          description: Returns the created key set
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Domain.AltoKeySet'
        '400':
          description: When the request does not contain the expected information
        '401':
          description: When access has not been granted
        '404':
          description: The inventory was not found
      security:
      - appAuth:
        - alto/route:post-inventory-inventoryid-keyset
  /inventory/{inventoryId}/keyset/{keySetId}:
    patch:
      tags:
      - Inventory
      summary: Update a key set for an inventory item
      parameters:
      - name: inventoryId
        in: path
        description: The unique identifier for the inventory
        required: true
        schema:
          type: integer
          format: int32
      - name: keySetId
        in: path
        description: The unique identifier for the key set
        required: true
        schema:
          type: integer
          format: int32
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      requestBody:
        description: JSON Patch operations to apply
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.Inventory.Api.Models.Responses.KeySetPatch'
        required: true
      responses:
        '204':
          description: The key set was updated
        '400':
          description: When the request does not contain valid information
        '401':
          description: When access has not been granted
        '404':
          description: The inventory or key set was not found
      security:
      - appAuth:
        - alto/route:delete-inventory-inventoryid-keyset-keysetid
    delete:
      tags:
      - Inventory
      summary: Delete a key set for an inventory item
      parameters:
      - name: inventoryId
        in: path
        description: The unique identifier for the inventory
        required: true
        schema:
          type: integer
          format: int32
      - name: keySetId
        in: path
        description: The unique identifier for the key set
        required: true
        schema:
          type: integer
          format: int32
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '204':
          description: The key set was deleted, or did not exist
        '401':
          description: When access has not been granted
        '404':
          description: The inventory was not found
      security:
      - appAuth:
        - alto/route:delete-inventory-inventoryid-keyset-keysetid
  /inventory/{inventoryId}/keysets:
    get:
      tags:
      - Inventory
      summary: Get key sets by inventoryId
      parameters:
      - name: inventoryId
        in: path
        description: The unique identifier for the inventory
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the key sets
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alto.Inventory.Api.Domain.AltoKeySet'
        '400':
          description: When the request does not contain the expected information
        '401':
          description: When access has not been granted
        '404':
          description: The inventory was not found
      security:
      - appAuth:
        - alto/route:get-inventory-inventoryid-keysets
  /inventory/{inventoryId}/owner:
    post:
      tags:
      - Inventory
      summary: Associates a Contact with an Inventory item as its Owner
      description: Associates a Contact with an Inventory item as its Owner
      parameters:
      - name: inventoryId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Inventory.Api.Models.Requests.AddInventoryOwner'
        required: true
      responses:
        '201':
          description: Created
        '400':
          description: When the request does not contain the expected information
        '404':
          description: Not Found
        '401':
          description: When access has not been granted
        '409':
          description: When there is a conflict with current data
      security:
      - appAuth:
        - alto/route:post-inventory-inventoryid-owner
  /inventory/filter:
    get:
      tags:
      - Inventory
      summary: Filter inventory items
      description: Get a paginated list of filtered inventory items, which can contain properties for lettings, sales, or both depending on the query parameters used.
      parameters:
      - name: categoryType
        in: query
        description: 'The category type to filter inventory items.


          [Note] If you use a value of "Unspecified" this field will be ignored.'
        schema:
          allOf:
          - $ref: '#/components/schemas/Alto.Inventory.Api.Enums.PropertyCategoryType'
      - name: recordType
        in: query
        description: 'The record type to filter inventory items.


          [Note] If you use a value of "Unspecified" or omit this field then both lettings and sales properties will be returned, unless you specify values for management type and / or maintenance type in which case only lettings properties will be returned.'
        schema:
          allOf:
          - $ref: '#/components/schemas/Alto.Inventory.Api.Enums.PropertyRecordType'
      - name: managementType
        in: query
        description: 'The rental management type to filter inventory items.


          [Note] If you use a record type value of "Sale" this field will be ignored.'
        schema:
          allOf:
          - $ref: '#/components/schemas/Alto.Inventory.Api.Enums.RentalManagementType'
      - name: maintenance-type
        in: query
        description: 'The rental maintenance type to filter inventory items.


          [Note] If you use a record type value of "Sale" this field will be ignored.'
        schema:
          allOf:
          - $ref: '#/components/schemas/Alto.Inventory.Api.Enums.MaintenanceType'
      - name: archived
        in: query
        description: The archived status to filter inventory items.
        schema:
          type: boolean
      - name: inventory-status
        in: query
        description: 'The status to filter inventory items.


          [Note] If you use a value of "Unspecified" this field will be ignored.'
        schema:
          allOf:
          - $ref: '#/components/schemas/Alto.Services.SDK.InventoryStatus'
      - name: instruction-date-from
        in: query
        description: The start date for filtering inventory items by instruction date.
        schema:
          type: string
          format: date-time
      - name: instruction-date-to
        in: query
        description: The end date for filtering inventory items by instruction date.
        schema:
          type: string
          format: date-time
      - name: owner-id
        in: query
        description: The ID of the property owner to filter inventory items.
        schema:
          type: integer
          format: int32
      - name: next-token
        in: query
        description: The token for the next page of results.
        schema:
          type: string
      - name: max-results
        in: query
        description: The maximum number of results to return. The maximum number of results to return. The default value is 50, and the maximum value is 250.
        schema:
          maximum: 250
          minimum: 1
          type: integer
          format: int32
      - name: branchIds
        in: query
        description: The list of branch unique identifiers for filtering inventory items.
        schema:
          type: array
          items:
            type: string
      - name: created-from
        in: query
        description: The start date for filtering inventory items by created date.
        schema:
          type: string
          format: date-time
      - name: created-to
        in: query
        description: The end date for filtering inventory items by created date.
        schema:
          type: string
          format: date-time
      - name: modified-from
        in: query
        description: The start date for filtering inventory items by modified date.
        schema:
          type: string
          format: date-time
      - name: modified-to
        in: query
        description: The end date for filtering inventory items by modified date.
        schema:
          type: string
          format: date-time
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the paginated list of filtered inventory items
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.Search.InventorySearchResults'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.Search.InventorySearchResults'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.Search.InventorySearchResults'
        '400':
          description: When the request does not contain the expected information
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: When access has not been granted
      security:
      - appAuth:
        - alto/route:get-inventory-filter
  /inventory/items:
    get:
      tags:
      - Inventory
      summary: Get multiple inventory items
      description: Get inventory items for multiple inventory ids
      parameters:
      - name: inventory-id
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the inventory items
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Services.SDK.Models.ItemCollection1_Alto.Inventory.Api.Models.Responses.InventoryDetailItem'
        '400':
          description: When the request does not contain the expected information
        '401':
          description: When access has not been granted
        '404':
          description: Not Found
      security:
      - appAuth:
        - alto/route:get-inventory-items
  /inventory/new:
    post:
      tags:
      - Inventory
      summary: Creates an inventory item
      description: Creates an inventory item
      parameters:
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      requestBody:
        description: The object containing the inventory item request details
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Inventory.Api.Models.Requests.AddInventory'
        required: true
      responses:
        '201':
          description: Returns the inventory item created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.InventoryItem'
        '400':
          description: When the request does not contain the expected information
        '401':
          description: When access has not been granted
      security:
      - appAuth:
        - alto/route:post-inventory-new
  /inventory/search:
    get:
      tags:
      - Inventory
      summary: Search inventory items
      description: Get a paginated list of inventory items by searching property
      parameters:
      - name: query
        in: query
        description: The query term to filter inventory items. Based on specific fields such as address, postcode, contact name, etc.
        required: true
        schema:
          type: string
      - name: archived
        in: query
        description: The archived status to search inventory items.
        schema:
          type: boolean
      - name: recordType
        in: query
        description: The record type to search inventory items.
        schema:
          allOf:
          - $ref: '#/components/schemas/Alto.Inventory.Api.Enums.PropertyRecordType'
      - name: next-token
        in: query
        description: The token for the next page of results.
        schema:
          type: string
      - name: max-results
        in: query
        description: The maximum number of results to return. The maximum number of results to return. The default value is 50, and the maximum value is 250.
        schema:
          maximum: 250
          minimum: 1
          type: integer
          format: int32
      - name: branchIds
        in: query
        description: The list of branch unique identifiers for filtering inventory items.
        schema:
          type: array
          items:
            type: string
      - name: created-from
        in: query
        description: The start date for filtering inventory items by created date.
        schema:
          type: string
          format: date-time
      - name: created-to
        in: query
        description: The end date for filtering inventory items by created date.
        schema:
          type: string
          format: date-time
      - name: modified-from
        in: query
        description: The start date for filtering inventory items by modified date.
        schema:
          type: string
          format: date-time
      - name: modified-to
        in: query
        description: The end date for filtering inventory items by modified date.
        schema:
          type: string
          format: date-time
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the paginated list of searched inventory items
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.Search.InventorySearchResults'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.Search.InventorySearchResults'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.Search.InventorySearchResults'
        '400':
          description: When the request does not contain the expected information
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: When access has not been granted
      security:
      - appAuth:
        - alto/route:get-inventory-search
components:
  schemas:
    SystemTextJsonPatch.Operations.Operation1_Alto.Inventory.Api.Models.Responses.KeySetPatch:
      anyOf:
      - title: Description
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"Front door keys"'
          path:
            type: string
            default: /Description
        description: The description of the key set.
        example: "\n{ \n    \"path\": \"/Description\", \n    \"op\": \"replace\", \n    \"value\": \"Front door keys\"\n}"
      - title: Key Count
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: integer
            example: '2'
          path:
            type: string
            default: /KeyCount
        description: The number of keys in the set.
        example: "\n{ \n    \"path\": \"/KeyCount\", \n    \"op\": \"replace\", \n    \"value\": 2\n}"
      - title: Status
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            enum:
            - Unspecified
            - In
            - Out
            - Lost
            - Returned
            type: string
            example: In
          path:
            type: string
            default: /Status
        description: The status of the key set.
        example: "\n{ \n    \"path\": \"/Status\", \n    \"op\": \"add\", \n    \"value\": \"In\" \n}"
      - title: Notes
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"Spare set held at branch"'
          path:
            type: string
            default: /Notes
        description: Notes for the key set.
        example: "\n{ \n    \"path\": \"/Notes\", \n    \"op\": \"replace\", \n    \"value\": \"Spare set held at branch\"\n}"
      - title: Expected Date In
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: object
            example: '"2026-06-15T13:45:30Z"'
          path:
            type: string
            default: /ExpectedDateIn
        description: The expected date the keys will be returned.
        example: "\n{ \n    \"path\": \"/ExpectedDateIn\", \n    \"op\": \"replace\", \n    \"value\": \"2026-06-15T13:45:30Z\"\n}"
      - title: Holder Type
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            enum:
            - Contact
            - User
            type: string
            example: Contact
          path:
            type: string
            default: /HolderType
        description: The type of holder when keys are out.
        example: "\n{ \n    \"path\": \"/HolderType\", \n    \"op\": \"add\", \n    \"value\": \"Contact\" \n}"
      - title: Holder Id
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: integer
            example: '12345'
          path:
            type: string
            default: /HolderId
        description: The identifier of the holder when keys are out.
        example: "\n{ \n    \"path\": \"/HolderId\", \n    \"op\": \"replace\", \n    \"value\": 12345\n}"
    Alto.Internal.Nts.Water:
      type: object
      properties:
        supply:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Alto.Internal.Nts.WaterSupply'
      additionalProperties: false
    Alto.Inventory.Api.Models.Owner:
      type: object
      properties:
        contactId:
          type: integer
          format: int32
      additionalProperties: false
    Alto.Internal.Nts.Heating:
      type: object
      properties:
        source:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Alto.Internal.Nts.HeatingSource'
      additionalProperties: false
    Alto.Internal.Nts.Electricity:
      type: object
      properties:
        supply:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Alto.Internal.Nts.ElectricitySupply'
      additionalProperties: false
    Alto.Services.SDK.Models.ItemCollection1_Alto.Inventory.Api.Models.Responses.InventoryDetailItem:
      type: object
      properties:
        totalCount:
          type: integer
          format: int32
        items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Alto.Inventory.Api.Models.Responses.InventoryDetailItem'
      additionalProperties: false
    Alto.Services.SDK.PropertyRecordType:
      enum:
      - Unspecified
      - Sale
      - Rent
      type: string
    Alto.Internal.Nts.AccessibilityRequirements:
      type: object
      properties:
        accessibility:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Alto.Internal.Nts.Accessibility'
      additionalProperties: false
    SystemTextJsonPatch.Operations.Operation1_Alto.Inventory.Api.Models.Responses.InventoryPatch:
      anyOf:
      - title: Display Address
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"Bluebellwood Close, Luton"'
          path:
            type: string
            default: /DisplayAddress
        description: The displayable address.
        example: "\n{ \n    \"path\": \"/DisplayAddress\", \n    \"op\": \"replace\", \n    \"value\": \"Bluebellwood Close, Luton\"\n}"
      - title: Tax Band
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"E"'
          path:
            type: string
            default: /TaxBand
        description: The council tax band of the building or property.
        example: "\n{ \n    \"path\": \"/TaxBand\", \n    \"op\": \"replace\", \n    \"value\": \"E\"\n}"
      - title: Tax Band Exempt Reason
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"Not a house"'
          path:
            type: string
            default: /TaxBandExemptReason
        description: The reason for a tax exemption on a building or property.
        example: "\n{ \n    \"path\": \"/TaxBandExemptReason\", \n    \"op\": \"replace\", \n    \"value\": \"Not a house\"\n}"
      - title: Local Authority
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"Cornwall County Council"'
          path:
            type: string
            default: /LocalAuthority
        description: The unitary authority in governance of the building or property.
        example: "\n{ \n    \"path\": \"/LocalAuthority\", \n    \"op\": \"replace\", \n    \"value\": \"Cornwall County Council\"\n}"
      - title: Service Charge
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"1250 pa"'
          path:
            type: string
            default: /ServiceCharge
        description: The service charge summary for a building or property.
        example: "\n{ \n    \"path\": \"/ServiceCharge\", \n    \"op\": \"replace\", \n    \"value\": \"1250 pa\"\n}"
      - title: Service Charge Notes
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"A note regarding the service charge"'
          path:
            type: string
            default: /ServiceChargeNotes
        description: Any additional notes pertaining to the service charge for a leasehold building or property.
        example: "\n{ \n    \"path\": \"/ServiceChargeNotes\", \n    \"op\": \"replace\", \n    \"value\": \"A note regarding the service charge\"\n}"
      - title: Ground Rent
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: string
            example: '"1500 pa"'
          path:
            type: string
            default: /GroundRent
        description: The ground rent summary for a building or property.
        example: "\n{ \n    \"path\": \"/GroundRent\", \n    \"op\": \"replace\", \n    \"value\": \"1500 pa\"\n}"
      - title: Lease Remaining Term
        type: object
        properties:
          op:
            enum:
            - replace
            - test
            type: string
          value:
            type: integer
            example: '32'
          path:
            type: string
            default: /LeaseRemainingTerm
        description: The remaining term in months of the lease for a leasehold building or property.
        example: "\n{ \n    \"path\": \"/LeaseRemainingTerm\", \n    \"op\": \"replace\", \n    \"value\": 32\n}"
      - title: Lease Term
        type: object
        properties:
          op:
            enum:
            - replace

# --- truncated at 32 KB (106 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alto-vebra/refs/heads/main/openapi/alto-vebra-inventory-api-openapi.yml