Hometrack Broker AVM API

Hometrack's own catalogue description is "This API provides access to the Broker AVM service." Twelve operations across two revisions (v1 and v2 paths served side by side): POST /broker/order creates a valuation order for a property, POST /broker/v2/order "creates the valuation order with climate data for the property", and GET operations retrieve the order, the order status, the valuation, the valuation input supplied at inception, and — on /internal/... paths — the raw valuation response "with all data, audit traces etc". The harvested request schema for a broker order is detailed and real: an order block with accountId, orderReference, userId and valuationType, and a valuations array carrying address (postcode, address, uprn), effectiveDate, a loan block (repaymentType, loanAmount, outstandingLoanAmount, additionalLoanAmount, remainingTerm, minimumRentalIncome, existingMortgage, instructionType) and a property block (bedrooms, receptions, propertyType, propertyStyle, constructionType, constructionPeriod, yearBuilt, floorArea, parking, exLocalAuthority, visibleFromRoad). Anonymous GET on this path returns HTTP 401.

OpenAPI Specification

hometrack-broker-avm-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Broker Avm API
  description: This API provides access to the Broker AVM service.
  version: '1.0'
  x-api-evangelist-provenance:
    provider: Hometrack
    portal: https://developer.hometrack.com
    harvested: '2026-07-26'
    method: Azure API Management developer data-plane, anonymous
    sources:
    - url: https://developer.hometrack.com/developer/apis/broker-avm-api?api-version=2022-04-01-preview&export=true&format=openapi-link
      status: 200
      note: OpenAPI 3.0.1 export (info/servers/securitySchemes verbatim; paths empty in export)
    - url: https://developer.hometrack.com/developer/apis/broker-avm-api/operations?api-version=2022-04-01-preview
      status: 200
      note: operation list
    - url: https://developer.hometrack.com/developer/apis/broker-avm-api/operations/{operationId}?api-version=2022-04-01-preview
      status: 200
      note: per-operation request/response metadata
    - url: https://developer.hometrack.com/developer/apis/broker-avm-api/schemas?api-version=2022-04-01-preview
      status: 200
      note: component schema documents
    note: paths and components.schemas were reassembled verbatim from Hometrack's own APIM operation and
      schema metadata; nothing was invented.
servers:
- url: https://api.hometrack.com/valuation/v2
- url: https://api.hometrack.local/valuation/v2
paths:
  /broker/valuation/{valuationId}:
    get:
      operationId: FindValuationById-Spec
      summary: FindValuationById-Spec
      description: Find a valuation by ID
      parameters:
      - name: valuationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BrokerValuation-valuationId-GetRequest'
        description: ID of valuation to return
      responses:
        '200':
          description: Valuation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiValuationResponseBroker'
              example:
                order:
                  orderReference: string
                  orderId: string
                valuationId: string
                reference: string
                avm:
                  valuationDate: string
                  effectiveDate: string
                  result: 0
                  capital:
                    capitalAmount: 0
                    confidenceBand: string
                    lowerCapitalAmount: 0
                    upperCapitalAmount: 0
                  rental:
                    rentalAmount: 0
                    confidenceBand: string
                    lowerRentalAmount: 0
                    upperRentalAmount: 0
                  property:
                    yearBuilt: 0
                    floorArea: 0
                    receptions: 0
                    knownValueDate: string
                    knownValue: 0
                    bedrooms: 0
                    propertyType: 0
                  additionalAttributes:
                  - name: string
                    value: string
                  address:
                    postcode: string
                    postTown: string
                    uprn: 0
                    udprn: 0
                    building: string
                    thoroughfare: string
                    dependentLocality: string
                    buildingNumber: 0
                    dependantThoroughfare: string
                    subBuilding: string
        '202':
          description: Valuation order in progress
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /broker/v2/valuation/{valuationId}:
    get:
      operationId: FindValuationByIdV2-Spec
      summary: FindValuationByIdV2-Spec
      description: Find a valuation by ID
      parameters:
      - name: valuationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BrokerV2Valuation-valuationId-GetRequest'
        description: ID of valuation to return
      responses:
        '200':
          description: Valuation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiValuationResponseBroker'
              example:
                order:
                  orderReference: string
                  orderId: string
                valuationId: string
                reference: string
                avm:
                  valuationDate: string
                  effectiveDate: string
                  result: 0
                  capital:
                    capitalAmount: 0
                    confidenceBand: string
                    lowerCapitalAmount: 0
                    upperCapitalAmount: 0
                  rental:
                    rentalAmount: 0
                    confidenceBand: string
                    lowerRentalAmount: 0
                    upperRentalAmount: 0
                  property:
                    yearBuilt: 0
                    floorArea: 0
                    receptions: 0
                    knownValueDate: string
                    knownValue: 0
                    bedrooms: 0
                    propertyType: 0
                  additionalAttributes:
                  - name: string
                    value: string
                  address:
                    postcode: string
                    postTown: string
                    uprn: 0
                    udprn: 0
                    building: string
                    thoroughfare: string
                    dependentLocality: string
                    buildingNumber: 0
                    dependantThoroughfare: string
                    subBuilding: string
        '202':
          description: Valuation order in progress
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /internal/valuation/{valuationId}/raw:
    get:
      operationId: GetRawValuationById-Spec
      summary: GetRawValuationById-Spec
      description: Returns a single valuation response in raw format - with all data, audit traces etc
      parameters:
      - name: valuationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/InternalValuation-valuationId-RawGetRequest'
        description: ID of valuation to return
      responses:
        '200':
          description: Valuation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiValuationResponseBroker'
              example:
                order:
                  orderReference: string
                  orderId: string
                valuationId: string
                reference: string
                avm:
                  valuationDate: string
                  effectiveDate: string
                  result: 0
                  capital:
                    capitalAmount: 0
                    confidenceBand: string
                    lowerCapitalAmount: 0
                    upperCapitalAmount: 0
                  rental:
                    rentalAmount: 0
                    confidenceBand: string
                    lowerRentalAmount: 0
                    upperRentalAmount: 0
                  property:
                    yearBuilt: 0
                    floorArea: 0
                    receptions: 0
                    knownValueDate: string
                    knownValue: 0
                    bedrooms: 0
                    propertyType: 0
                  additionalAttributes:
                  - name: string
                    value: string
                  address:
                    postcode: string
                    postTown: string
                    uprn: 0
                    udprn: 0
                    building: string
                    thoroughfare: string
                    dependentLocality: string
                    buildingNumber: 0
                    dependantThoroughfare: string
                    subBuilding: string
        '202':
          description: Valuation order in progress
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /internal/v2/valuation/{valuationId}/raw:
    get:
      operationId: GetRawValuationByIdV2-Spec
      summary: GetRawValuationByIdV2-Spec
      description: Returns a single valuation response in raw format - with all data, audit traces etc
      parameters:
      - name: valuationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/InternalV2Valuation-valuationId-RawGetRequest'
        description: ID of valuation to return
      responses:
        '200':
          description: Valuation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiValuationResponseBroker'
              example:
                order:
                  orderReference: string
                  orderId: string
                valuationId: string
                reference: string
                avm:
                  valuationDate: string
                  effectiveDate: string
                  result: 0
                  capital:
                    capitalAmount: 0
                    confidenceBand: string
                    lowerCapitalAmount: 0
                    upperCapitalAmount: 0
                  rental:
                    rentalAmount: 0
                    confidenceBand: string
                    lowerRentalAmount: 0
                    upperRentalAmount: 0
                  property:
                    yearBuilt: 0
                    floorArea: 0
                    receptions: 0
                    knownValueDate: string
                    knownValue: 0
                    bedrooms: 0
                    propertyType: 0
                  additionalAttributes:
                  - name: string
                    value: string
                  address:
                    postcode: string
                    postTown: string
                    uprn: 0
                    udprn: 0
                    building: string
                    thoroughfare: string
                    dependentLocality: string
                    buildingNumber: 0
                    dependantThoroughfare: string
                    subBuilding: string
        '202':
          description: Valuation order in progress
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /broker/valuation/{valuationId}/input:
    get:
      operationId: GetValuationInputById-Spec
      summary: GetValuationInputById-Spec
      description: Gets the input supplied at inception to request a valuation
      parameters:
      - name: valuationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BrokerValuation-valuationId-InputGetRequest'
        description: ID of valuation to return
      responses:
        '200':
          description: Valuation Input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/valuationSectionBroker'
              example:
                address:
                  postcode: string
                  address: string
                  uprn: 0
                effectiveDate: string
                loan:
                  repaymentType: 0
                  minimumRentalIncome: 0
                  additionalLoanAmount: 0
                  outstandingLoanAmount: 0
                  loanAmount: 0
                  remainingTerm: 0
                  existingMortgage: 0
                  instructionType: 1
                property:
                  receptions: 0
                  bedrooms: 0
                  propertyStyle: string
                  propertyType: 0
                  visibleFromRoad: true
                  constructionPeriod: string
                  constructionType: 0
                  exLocalAuthority: true
                  parking: true
                  floorArea: 0
                  yearBuilt: 0
                reference: string
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /broker/v2/valuation/{valuationId}/input:
    get:
      operationId: GetValuationInputByIdV2-Spec
      summary: GetValuationInputByIdV2-Spec
      description: Gets the input supplied at inception to request a valuation
      parameters:
      - name: valuationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BrokerV2Valuation-valuationId-InputGetRequest'
        description: ID of valuation to return
      responses:
        '200':
          description: Valuation Input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/valuationSectionBroker'
              example:
                address:
                  postcode: string
                  address: string
                  uprn: 0
                effectiveDate: string
                loan:
                  repaymentType: 0
                  minimumRentalIncome: 0
                  additionalLoanAmount: 0
                  outstandingLoanAmount: 0
                  loanAmount: 0
                  remainingTerm: 0
                  existingMortgage: 0
                  instructionType: 1
                property:
                  receptions: 0
                  bedrooms: 0
                  propertyStyle: string
                  propertyType: 0
                  visibleFromRoad: true
                  constructionPeriod: string
                  constructionType: 0
                  exLocalAuthority: true
                  parking: true
                  floorArea: 0
                  yearBuilt: 0
                reference: string
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /broker/order/{orderId}:
    get:
      operationId: GetValuationOrderById-Spec
      summary: GetValuationOrderById-Spec
      description: Find a valuation order by ID
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BrokerOrder-orderId-GetRequest'
        description: ID of order to return
      responses:
        '200':
          description: Valuation order response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/valuationOrderResponse'
              example:
                orderId: string
                orderReference: string
                valuations:
                - valuationId: string
                  reference: string
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /broker/v2/order/{orderId}:
    get:
      operationId: GetValuationOrderByIdV2-Spec
      summary: GetValuationOrderByIdV2-Spec
      description: Find a valuation order by ID
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BrokerV2Order-orderId-GetRequest'
        description: ID of order to return
      responses:
        '200':
          description: Valuation order response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/valuationOrderResponse'
              example:
                orderId: string
                orderReference: string
                valuations:
                - valuationId: string
                  reference: string
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /broker/order/{orderId}/status:
    get:
      operationId: GetValuationStatusById-Spec
      summary: GetValuationStatusById-Spec
      description: Get the status of a valuation order by order ID
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BrokerOrder-orderId-StatusGetRequest'
        description: ID of order to return
      responses:
        '200':
          description: Valuation order status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orderStatusResponse'
              example:
                orderId: string
                orderReference: string
                status: 0
                valuations:
                - valuationId: string
                  reference: string
                  status: 0
                  valuationType: 0
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /broker/v2/order/{orderId}/status:
    get:
      operationId: GetValuationStatusByIdV2-Spec
      summary: GetValuationStatusByIdV2-Spec
      description: Get the status of a valuation order by order ID
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BrokerV2Order-orderId-StatusGetRequest'
        description: ID of order to return
      responses:
        '200':
          description: Valuation order status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/orderStatusResponse'
              example:
                orderId: string
                orderReference: string
                status: 0
                valuations:
                - valuationId: string
                  reference: string
                  status: 0
                  valuationType: 0
        '401':
          description: Unauthorised request
        '404':
          description: Valuation order not found
  /broker/order:
    post:
      operationId: ValuePropertyBroker-Spec
      summary: ValuePropertyBroker-Spec
      description: Creates the valuation order for the property
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiRequestBroker'
            example:
              order:
                accountId: 0
                orderReference: string
                userId: 0
                valuationType: 0
              valuations:
              - address:
                  postcode: string
                  address: string
                  uprn: 0
                effectiveDate: string
                loan:
                  repaymentType: 0
                  minimumRentalIncome: 0
                  additionalLoanAmount: 0
                  outstandingLoanAmount: 0
                  loanAmount: 0
                  remainingTerm: 0
                  existingMortgage: 0
                  instructionType: 1
                property:
                  receptions: 0
                  bedrooms: 0
                  propertyStyle: string
                  propertyType: 0
                  visibleFromRoad: true
                  constructionPeriod: string
                  constructionType: 0
                  exLocalAuthority: true
                  parking: true
                  floorArea: 0
                  yearBuilt: 0
                reference: string
      responses:
        '200':
          description: Valuation order ID
          content:
            plain/text:
              schema:
                $ref: '#/components/schemas/BrokerOrderPost200PlainTextResponse'
        '400':
          description: Incorrect input data submitted
        '403':
          description: Operation forbidden
  /broker/v2/order:
    post:
      operationId: ValuePropertyBrokerV2-Spec
      summary: ValuePropertyBrokerV2-Spec
      description: Creates the valuation order with climate data for the property
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiRequestBroker'
            example:
              order:
                accountId: 0
                orderReference: string
                userId: 0
                valuationType: 0
              valuations:
              - address:
                  postcode: string
                  address: string
                  uprn: 0
                effectiveDate: string
                loan:
                  repaymentType: 0
                  minimumRentalIncome: 0
                  additionalLoanAmount: 0
                  outstandingLoanAmount: 0
                  loanAmount: 0
                  remainingTerm: 0
                  existingMortgage: 0
                  instructionType: 1
                property:
                  receptions: 0
                  bedrooms: 0
                  propertyStyle: string
                  propertyType: 0
                  visibleFromRoad: true
                  constructionPeriod: string
                  constructionType: 0
                  exLocalAuthority: true
                  parking: true
                  floorArea: 0
                  yearBuilt: 0
                reference: string
      responses:
        '200':
          description: Valuation order ID
          content:
            plain/text:
              schema:
                $ref: '#/components/schemas/BrokerV2OrderPost200PlainTextResponse'
        '400':
          description: Incorrect input data submitted
        '403':
          description: Operation forbidden
components:
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      name: Ocp-Apim-Subscription-Key
      in: header
    apiKeyQuery:
      type: apiKey
      name: subscription-key
      in: query
  schemas:
    additionalAttribute:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
    addressRequestBroker:
      type: object
      properties:
        postcode:
          type: string
        address:
          type: string
        uprn:
          type: integer
          format: int64
          nullable: true
    addressResponse:
      type: object
      properties:
        postcode:
          type: string
        postTown:
          type: string
        uprn:
          type: integer
          format: int64
          nullable: true
        udprn:
          type: integer
          format: int64
          nullable: true
        building:
          type: string
        thoroughfare:
          type: string
        dependentLocality:
          type: string
        buildingNumber:
          type: integer
          format: int32
          nullable: true
        dependantThoroughfare:
          type: string
        subBuilding:
          type: string
    apiRequestBroker:
      type: object
      properties:
        order:
          $ref: '#/components/schemas/order'
        valuations:
          type: array
          items:
            $ref: '#/components/schemas/valuationSectionBroker'
    apiValuationResponseBroker:
      type: object
      properties:
        order:
          $ref: '#/components/schemas/orderApi'
        valuationId:
          type: string
        reference:
          type: string
        avm:
          $ref: '#/components/schemas/avmValuationBroker'
    avmValuationBroker:
      type: object
      properties:
        valuationDate:
          type: string
          format: date-time
        effectiveDate:
          type: string
          format: date-time
        result:
          enum:
          - 0
          - 1
          type: integer
          format: int32
          default: 0
        capital:
          $ref: '#/components/schemas/cavmCapital'
        rental:
          $ref: '#/components/schemas/cavmRental'
        property:
          $ref: '#/components/schemas/propertyAttributesUsedBroker'
        additionalAttributes:
          type: array
          items:
            $ref: '#/components/schemas/additionalAttribute'
        address:
          $ref: '#/components/schemas/addressResponse'
    cavmCapital:
      type: object
      properties:
        capitalAmount:
          type: integer
          format: int32
        confidenceBand:
          type: string
        lowerCapitalAmount:
          type: integer
          format: int32
        upperCapitalAmount:
          type: integer
          format: int32
    cavmRental:
      type: object
      properties:
        rentalAmount:
          type: integer
          format: int32
        confidenceBand:
          type: string
        lowerRentalAmount:
          type: integer
          format: int32
        upperRentalAmount:
          type: integer
          format: int32
    loan:
      type: object
      properties:
        repaymentType:
          type: integer
          format: int32
          nullable: true
        minimumRentalIncome:
          type: integer
          format: int32
          nullable: true
        additionalLoanAmount:
          type: integer
          format: int32
          nullable: true
        outstandingLoanAmount:
          type: integer
          format: int32
          nullable: true
        loanAmount:
          type: integer
          format: int32
          nullable: true
        remainingTerm:
          type: integer
          format: int32
          nullable: true
        existingMortgage:
          type: integer
          format: int32
          nullable: true
        instructionType:
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          type: integer
          format: int32
          default: 1
          nullable: true
    order:
      type: object
      properties:
        accountId:
          type: integer
          format: int32
        orderReference:
          type: string
        userId:
          type: integer
          format: int32
        valuationType:
          enum:
          - 0
          - 1
          - 2
          type: integer
          format: int32
          default: 0
    orderApi:
      type: object
      properties:
        orderReference:
          type: string
        orderId:
          type: string
    orderStatusResponse:
      type: object
      properties:
        orderId:
          type: string
        orderReference:
          type: string
        status:
          enum:
          - 0
          - 1
          - 2
          - 3
          type: integer
          format: int32
          default: 0
        valuations:
          type: array
          items:
            $ref: '#/components/schemas/valuationStatusResponse'
    property:
      type: object
      properties:
        receptions:
          type: integer
          format: int32
          nullable: true
        bedrooms:
          type: integer
          format: int32
          nullable: true
        propertyStyle:
          type: string
        propertyType:
          type: integer
          format: int32
          nullable: true
        visibleFromRoad:
          type: boolean
        constructionPeriod:
          type: string
        constructionType:
          type: integer
          format: int32
          nullable: true
        exLocalAuthority:
          type: boolean
        parking:
          type: boolean
        floorArea:
          type: integer
          format: int32
          nullable: true
        yearBuilt:
          type: integer
          format: int32
          nullable: true
    propertyAttributesUsedBroker:
      type: object
      properties:
        yearBuilt:
          type: integer
          format: int32
          nullable: true
        floorArea:
          type: integer
          format: int32
          nullable: true
        receptions:
          type: integer
          format: int32
          nullable: true
        knownValueDate:
          type: string
          format: date-time
          nullable: true
        knownValue:
          type: integer
          format: int32
          nullable: true
        bedrooms:
          type: integer
          format: int32
          nullable: true
        propertyType:
          type: integer
          format: int32
          nullable: true
    valuationListResponse:
      type: object
      properties:
        valuationId:
          type: string
        reference:
          type: string
    valuationOrderResponse:
      type: object
      properties:
        orderId:
          type: string
        orderReference:
          type: string
        valuations:
          type: array
          items:
            $ref: '#/components/schemas/valuationListResponse'
    valuationSectionBroker:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/addressRequestBroker'
        effectiveDate:
          type: string
          format: date-time
          nullable: true
        loan:
          $ref: '#/components/schemas/loan'
        property:
          $ref: '#/components/schemas/property'
        reference:
          type: string
    valuationStatusResponse:
      type: object
      properties:
        valuationId:
          type: string
        reference:
          type: string
        status:
          enum:
          - 0
          - 1
          - 2
          - 3
          type: integer
          format: int32
          default: 0
        valuationType:
          enum:
          - 0
          - 1
          - 2
          type: integer
          format: int32
          default: 0
    BrokerOrderPost200PlainTextResponse:
      type: string
      x-apim-inline: true
    BrokerValuation-valuationId-GetRequest:
      type: string
      x-apim-inline: true
    InternalValuation-valuationId-RawGetRequest:
      type: string
      x-apim-inline: true
    BrokerValuation-valuationId-InputGetRequest:
      type: string
      x-apim-inline: true
    BrokerOrder-orderId-GetRequest:
      type: string
      x-apim-inline: true
    BrokerOrder-orderId-StatusGetRequest:
      type: string
      x-apim-inline: true
    BrokerV2OrderPost200PlainTextResponse:
      type: string
      x-apim-inline: true
    BrokerV2Valuation-valuationId-GetRequest:
      type: string
      x-apim-inline: true
    InternalV2Valuation-valuationId-RawGetRequest:
      type: string
      x-apim-inline: true
    BrokerV2Valuation-valuationId-InputGetRequest:
      type: string
      x-apim-inline: true
    BrokerV2Order-orderId-GetRequest:
      type: string
      x-apim-inline: true
    BrokerV2Order-orderId-StatusGetRequest:
      type: string
      x-apim-inline: true
security:
- {}
- apiKeyHeader: []
- apiKeyQuery: []