Alto (Vebra / Zoopla) Tenancies API

The Tenancies API from Alto (Vebra / Zoopla) — 6 operation(s) for tenancies.

Operations 9

GET /inventory/{inventoryId}/tenancies
POST /inventory/{inventoryId}/tenancies Create a tenancy
GET /tenancies List Tenancies
GET /tenancies/{tenancyId}
PATCH /tenancies/{tenancyId} Updates a tenancy using JSON Patch
GET /tenancies/{tenancyId}/meter-readings Get Meter Readings by Tenancy Id
POST /tenancies/{tenancyId}/meter-readings Post tenancy meter reading
PATCH /tenancies/{tenancyId}/meter-readings/{utilityType} Patch tenancy meter reading by type of utility.
GET /tenancies/{tenancyId}/tenantIds

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-tenancies-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-tenancies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Alto Tenancies 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: Tenancies
paths:
  /inventory/{inventoryId}/tenancies:
    get:
      tags:
      - Tenancies
      parameters:
      - name: inventoryId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: nextToken
        in: query
        description: Token used to retrieve the next page of results. This is returned in the response of the previous page.
        schema:
          type: string
      - name: maxResults
        in: query
        description: Maximum number of results to return per page. Defaults to 100 if not specified.
        schema:
          maximum: 100
          minimum: 1
          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:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.PagedResults1_Alto.PropertyManagement.Api.Models.Responses.Tenancy'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.PagedResults1_Alto.PropertyManagement.Api.Models.Responses.Tenancy'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.PagedResults1_Alto.PropertyManagement.Api.Models.Responses.Tenancy'
        '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:post-inventory-inventoryid-tenancies
    post:
      tags:
      - Tenancies
      summary: Create a tenancy
      description: Asynchronously creates a proposed tenancy. Use the returned TenancyId to poll /tenancies/{tenancyId} to check if the tenancy is created.
      parameters:
      - name: inventoryId
        in: path
        description: The property Id
        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 request body containing the tenancy details.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Requests.CreateProposedTenancyRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Requests.CreateProposedTenancyRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Requests.CreateProposedTenancyRequest'
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:post-inventory-inventoryid-tenancies
  /tenancies:
    get:
      tags:
      - Tenancies
      summary: List Tenancies
      description: Retrieves a paginated list of tenancies, with optional filtering and inclusion of tenant data.
      parameters:
      - name: next-token
        in: query
        description: Token used to retrieve the next page of results. This is returned in the response of the previous page.
        schema:
          type: string
      - name: max-results
        in: query
        description: Maximum number of results to return per page. Defaults to 100 if not specified.
        schema:
          maximum: 100
          minimum: 1
          type: integer
          format: int32
      - name: created-from
        in: query
        description: The start date for filtering tenancies by created date.
        schema:
          type: string
          format: date-time
      - name: created-to
        in: query
        description: The end date for filtering tenancies by created date.
        schema:
          type: string
          format: date-time
      - name: modified-from
        in: query
        description: The start date for filtering tenancies by modified date.
        schema:
          type: string
          format: date-time
      - name: modified-to
        in: query
        description: The end date for filtering tenancies by modified date.
        schema:
          type: string
          format: date-time
      - name: start-date-from
        in: query
        description: The start date for filtering tenancies by start date.
        schema:
          type: string
          format: date-time
      - name: start-date-to
        in: query
        description: The end date for filtering tenancies by start date.
        schema:
          type: string
          format: date-time
      - name: target-vacate-date-from
        in: query
        description: The start date for filtering tenancies by target vacate date.
        schema:
          type: string
          format: date-time
      - name: target-vacate-date-to
        in: query
        description: The end date for filtering tenancies by target vacate date.
        schema:
          type: string
          format: date-time
      - name: first-full-rent-date-from
        in: query
        description: The start date for filtering tenancies by first full rent date.
        schema:
          type: string
          format: date-time
      - name: first-full-rent-date-to
        in: query
        description: The end date for filtering tenancies by first full rent date.
        schema:
          type: string
          format: date-time
      - name: notice-to-quit-date-from
        in: query
        description: The start date for filtering tenancies by notice to quit date.
        schema:
          type: string
          format: date-time
      - name: notice-to-quit-date-to
        in: query
        description: The end date for filtering tenancies by notice to quit date.
        schema:
          type: string
          format: date-time
      - name: end-date-from
        in: query
        description: The start date for filtering tenancies by end date.
        schema:
          type: string
          format: date-time
      - name: end-date-to
        in: query
        description: The end date for filtering tenancies by end date.
        schema:
          type: string
          format: date-time
      - name: renewal-date-from
        in: query
        description: The start date for filtering tenancies by renewal date.
        schema:
          type: string
          format: date-time
      - name: renewal-date-to
        in: query
        description: The end date for filtering tenancies by renewal date.
        schema:
          type: string
          format: date-time
      - name: include-tenants
        in: query
        description: Controls whether tenants should be included in the response for each tenancy result. By default tenants will not be included.
        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.PropertyManagement.Api.Models.Responses.PagedResults1_Alto.PropertyManagement.Api.Models.Responses.TenancyListItem'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.PagedResults1_Alto.PropertyManagement.Api.Models.Responses.TenancyListItem'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.PagedResults1_Alto.PropertyManagement.Api.Models.Responses.TenancyListItem'
        '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-tenancies
  /tenancies/{tenancyId}:
    get:
      tags:
      - Tenancies
      parameters:
      - name: tenancyId
        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
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyLight'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyLight'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyLight'
        '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-tenancies-tenancyid
    patch:
      tags:
      - Tenancies
      summary: Updates a tenancy using JSON Patch
      parameters:
      - name: tenancyId
        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:
              $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.PropertyManagement.Api.Models.TenancyPatch'
          text/json:
            schema:
              $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.PropertyManagement.Api.Models.TenancyPatch'
          application/*+json:
            schema:
              $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.PropertyManagement.Api.Models.TenancyPatch'
      responses:
        '204':
          description: No Content
        '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-tenancies-tenancyid
  /tenancies/{tenancyId}/meter-readings:
    get:
      tags:
      - Tenancies
      summary: Get Meter Readings by Tenancy Id
      parameters:
      - name: tenancyId
        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
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyUtilityReading'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyUtilityReading'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyUtilityReading'
      security:
      - appAuth:
        - alto/route:get-tenancies-tenancyid-meter-readings
    post:
      tags:
      - Tenancies
      summary: Post tenancy meter reading
      parameters:
      - name: tenancyId
        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:
              $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Requests.PostTenancyMeterReadingRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Requests.PostTenancyMeterReadingRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Requests.PostTenancyMeterReadingRequest'
      responses:
        '201':
          description: Created
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyUtilityReading'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyUtilityReading'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.TenancyUtilityReading'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
        '409':
          description: Conflict
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-tenancies-tenancyid-meter-readings
  /tenancies/{tenancyId}/meter-readings/{utilityType}:
    patch:
      tags:
      - Tenancies
      summary: Patch tenancy meter reading by type of utility.
      parameters:
      - name: tenancyId
        in: path
        description: The id of the tenancy whose meter reading is being set.
        required: true
        schema:
          type: integer
          format: int32
      - name: utilityType
        in: path
        description: One of the types provided by the UtilityType on a retrieved meter reading or returned in the response when POSTing a new value.
        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:
              $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.PropertyManagement.Api.Models.TenancyUtilityReadingPatch'
          text/json:
            schema:
              $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.PropertyManagement.Api.Models.TenancyUtilityReadingPatch'
          application/*+json:
            schema:
              $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.PropertyManagement.Api.Models.TenancyUtilityReadingPatch'
      responses:
        '204':
          description: Returns no content on a successful update to a tenancy's meter reading for the specified utilityType.
        '404':
          description: The tenancy or utility type was 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: Invalid parameters provided.
          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:patch-tenancies-tenancyid-meter-readings-utilitytype
  /tenancies/{tenancyId}/tenantIds:
    get:
      tags:
      - Tenancies
      parameters:
      - name: tenancyId
        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
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.DTOs.ItemCollection1_Alto.PropertyManagement.Api.Models.Responses.TenantIdData'
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.DTOs.ItemCollection1_Alto.PropertyManagement.Api.Models.Responses.TenantIdData'
            text/json:
              schema:
                $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.DTOs.ItemCollection1_Alto.PropertyManagement.Api.Models.Responses.TenantIdData'
        '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-tenancies-tenancyid-tenantids
components:
  schemas:
    Alto.PropertyManagement.Api.Models.Requests.PostTenancyMeterReadingRequest:
      required:
      - propertyId
      - utilityType
      type: object
      properties:
        utilityType:
          enum:
          - Unspecified
          - Gas
          - Electricity
          - Oil
          - Water
          - BulkLPG
          - Council
          - Sewerage
          type: string
          description: 'The type of utility (e.g., electricity, water, gas) for which the reading is recorded.

            This is represented by the UtilityType enum and is required'
        propertyId:
          minLength: 1
          type: string
          description: 'The property Id for which the reading is recorded against.

            This is required'
        inHighValue:
          type:
          - integer
          - 'null'
          description: 'The initial (move-in) high-value meter reading. This may capture peak usage rates or other high-end metrics.

            It''s nullable to handle cases where this data might not be available or applicable.'
          format: int32
        inLowValue:
          type:
          - integer
          - 'null'
          description: 'The initial (move-in) low-value meter reading. This typically represents off-peak or lower usage rates.

            Nullable to account for situations where this reading is not applicable or available.'
          format: int32
        outHighValue:
          type:
          - integer
          - 'null'
          description: 'The final (move-out) high-value meter reading. Similar to InHighValue but recorded at the end of the tenancy.

            Nullable for cases where the reading isn''t available or needed.'
          format: int32
        outLowValue:
          type:
          - integer
          - 'null'
          description: 'The final (move-out) low-value meter reading. Similar to InLowValue, but for the end of the tenancy period.

            Nullable for cases where this data is not available or relevant.'
          format: int32
        inValue:
          type:
          - integer
          - 'null'
          description: 'The overall move-in meter reading. This is a general reading, not specifically high or low value.

            Nullable to accommodate situations where it might not be available.'
          format: int32
        outValue:
          type:
          - integer
          - 'null'
          description: 'The overall move-out meter reading. Like InValue, but for when the tenancy ends.

            Nullable to handle cases where the reading is not obtained.'
          format: int32
      additionalProperties: false
    Alto.PropertyManagement.Api.Models.Requests.CreateProposedTenancyRequest:
      type: object
      properties:
        rentalAmount:
          minimum: 0
          type: number
          format: double
        applicantContactIds:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int32
          description: The ids of all the applicants for the proposed tenancy.
        tenancyStartDate:
          type:
          - string
          - 'null'
          description: The Start Date of the proposed tenancy.
          format: date-time
        tenancyTermMonths:
          type:
          - integer
          - 'null'
          description: The term of the proposed tenancy in months.
          format: int32
        tenancyTermYears:
          type:
          - integer
          - 'null'
          description: The term of the proposed tenancy in years.
          format: int32
        sendDefaultLetters:
          type: boolean
          description: Whether to send default letters for the proposed tenancy.
      additionalProperties: false
    Alto.PropertyManagement.Api.Models.Responses.TenancyLight:
      type: object
      properties:
        id:
          type: integer
          format: int32
        groupId:
          type: integer
          format: int32
        branchId:
          type: integer
          format: int32
        propertyId:
          type: integer
          format: int32
        termYears:
          type: integer
          format: int32
        termMonths:
          type: integer
          format: int32
        occupantCount:
          type: integer
          format: int32
        rent:
          type: number
          format: double
        rentalFrequency:
          type:
          - string
          - 'null'
        depositRequested:
          type: number
          format: double
        depositSchemeType:
          type:
          - string
          - 'null'
        currencyCode:
          type:
          - string
          - 'null'
        rentalAddress:
          $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.Address'
        startDate:
          type:
          - string
          - 'null'
          format: date-time
        targetVacateDate:
          type:
          - string
          - 'null'
          format: date-time
        firstFullRentDate:
          type:
          - string
          - 'null'
          format: date-time
        noticeToQuitDate:
          type:
          - string
          - 'null'
          format: date-time
        endDate:
          type:
          - string
          - 'null'
          format: date-time
        renewalDate:
          type:
          - string
          - 'null'
          format: date-time
        nextTermTenancyId:
          type: integer
          format: int32
      additionalProperties: false
    Alto.PropertyManagement.Api.Models.Responses.TenancyListItem:
      type: object
      properties:
        id:
          type: integer
          format: int32
        groupId:
          type: integer
          format: int32
        branchId:
          type: integer
          format: int32
        propertyId:
          type: integer
          format: int32
        termYears:
          type: integer
          format: int32
        termMonths:
          type: integer
          format: int32
        occupantCount:
          type: integer
          format: int32
        rent:
          type: number
          format: double
        rentalFrequency:
          type:
          - string
          - 'null'
        depositRequested:
          type: number
          format: double
        depositSchemeType:
          type:
          - string
          - 'null'
        currencyCode:
          type:
          - string
          - 'null'
        rentalAddress:
          $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.Address'
        startDate:
          type:
          - string
          - 'null'
          format: date-time
        targetVacateDate:
          type:
          - string
          - 'null'
          format: date-time
        firstFullRentDate:
          type:
          - string
          - 'null'
          format: date-time
        noticeToQuitDate:
          type:
          - string
          - 'null'
          format: date-time
        endDate:
          type:
          - string
          - 'null'
          format: date-time
        renewalDate:
          type:
          - string
          - 'null'
          format: date-time
        status:
          type:
          - string
          - 'null'
        nextTermTenancyId:
          type: integer
          format: int32
        createdDate:
          type:
          - string
          - 'null'
          format: date-time
        modifiedDate:
          type:
          - string
          - 'null'
          format: date-time
        tenants:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Alto.PropertyManagement.Api.Models.Responses.Tenant'
        links:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Alto.Api.Material.Hateoas.Link'
          readOnly: true
      additionalProperties: false
    Alto.PropertyManagement.Api.Models.Responses.Address:
      type: object
      properties:
        subDwelling:
          type:
          - string
          - 'null'
        nameNo:
          type:
          - string
          - 'null'
        street:
          type:
          - string
          - 'null'
        locality:
          type:
          - string
          - 'null'
        town:
          type:
          - string
          - 'null'
        county:
          type:
          - string
          - 'null'
        postcode:
          type:
          - string
          - 'null'
        country:
          type:
          - string
          - 'null'
      additionalProperties: false
    SystemTextJsonPatch.Operations.Operation1_Alto.PropertyManagement.Api.Models.TenancyUtilityReadingPatch:
      anyOf:
      - title: /inhighvalue
        type: object
        properties:
          op:
            enum:
            - replace
            - remove
            type: string
            example: replace
          value:
            type: integer
            example: '100'
          path:
            type: string
            example: /inhighvalue
        description: "\n            The initial (move-in) high-value meter reading. This may capture peak usage rates or other high-end metrics.\n            It's nullable to handle cases where this data might not be available or applicable.\n            "
        example: "\n        {\n            \"path\": \"/inhighvalue\",\n            \"op\": \"replace\",\n            \"value\": 100\n        }"
      - title: /inlowvalue
        type: object
   

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