Hometrack API Public

Catalogued by Hometrack as "Hometrack API for public consumption" and mounted at the gateway root. Twenty operations that are mostly account, licensing, branding and report-generation plumbing rather than a property data product: POST /api/authentication/{apiKey} exchanges an API key for a plain-text GUID token; /api/reporting/PropertyValuation requests and then downloads a Property Valuation Report; /api/brands/{token}/{targetAccountApiKey} reads and writes the co-branding configuration used on those reports; /api/licences/{token}/{product} returns the product licences belonging to the authenticated account; /api/partners and /api/zoopla/partners create and read partner-to-account entries under "partner.create" and "partner.modify" permissions; /api/pvrplugin endpoints serve the Property Valuation Report plugin; and /api/trial endpoints issue trial licences. The name is misleading — nothing here is callable without a Hometrack-issued API key, and the presence of a scheduled-task endpoint (GET /api/reporting/moveToBlobStorage) and two "For test purpose" endpoints suggests an internal API that has been published to the catalogue as-is.

OpenAPI Specification

hometrack-api-public-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Hometrack API Public
  description: Hometrack API for public consumption
  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/hometrack-api-public?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/hometrack-api-public/operations?api-version=2022-04-01-preview
      status: 200
      note: operation list
    - url: https://developer.hometrack.com/developer/apis/hometrack-api-public/operations/{operationId}?api-version=2022-04-01-preview
      status: 200
      note: per-operation request/response metadata
    - url: https://developer.hometrack.com/developer/apis/hometrack-api-public/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
- url: https://api.hometrack.local
paths:
  /api/authentication/{apiKey}:
    post:
      operationId: AuthenticationApi_Post
      summary: Authenticates the user by exchanging an API key with a temporary token
      description: The resulting token will be a plain text GUID. e.g. 64e12ae6-f941-4851-aa4f-86439104056d
      parameters:
      - name: apiKey
        in: path
        required: true
        schema:
          type: string
        description: The API key
      responses:
        '201':
          description: Created - authentication was successful
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiAuthenticationApiKeyPost201TextPlainResponse'
        '400':
          description: Bad Request - the apiKey is missing
          content:
            text/plain:
              schema:
                type: string
        '403':
          description: Forbidden - the apiKey could not be authenticated
          content:
            text/plain:
              schema:
                type: string
        '500':
          description: Internal Server Error - an unexpected error has occured
          content:
            text/plain:
              schema:
                type: string
        '503':
          description: Service Unavailable - unable to authenticate at this time
          content:
            text/plain:
              schema:
                type: string
  /api/reporting/moveToBlobStorage:
    get:
      operationId: ReportingApi_MoveToBlobStorage
      summary: "Called via a scheduled task, this method uploads all files from the report directory\r\
        \nto blob storage and then deletes them."
      description: "Called via a scheduled task, this method uploads all files from the report directory\r\
        \nto blob storage and then deletes them."
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ApiReportingMoveToBlobStorageGet200ApplicationXmlResponse'
              example: <ApiReportingMoveToBlobStorageGet200ApplicationXmlResponse />
            text/xml:
              schema:
                $ref: '#/components/schemas/ApiReportingMoveToBlobStorageGet200TextXmlResponse'
              example: <ApiReportingMoveToBlobStorageGet200TextXmlResponse />
            application/json:
              schema:
                $ref: '#/components/schemas/ApiReportingMoveToBlobStorageGet200ApplicationJsonResponse'
              example: {}
            text/json:
              schema:
                $ref: '#/components/schemas/ApiReportingMoveToBlobStorageGet200TextJsonResponse'
              example: {}
  /api/pvrplugin/enquiry/{token}:
    post:
      operationId: PvrPluginApi_StoreEnquiry
      summary: Checks if email or it's domain is blacklisted and sends verification code if set in umbraco
      description: Checks if email or it's domain is blacklisted and sends verification code if set in
        umbraco
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enquiry'
            example:
              Contact:
                Email: string
                Firstname: string
                Lastname: string
                Phone: string
                Company: string
                JobTitle: string
              BrandCode: string
          text/json:
            schema:
              $ref: '#/components/schemas/Enquiry'
            example:
              Contact:
                Email: string
                Firstname: string
                Lastname: string
                Phone: string
                Company: string
                JobTitle: string
              BrandCode: string
          application/xml:
            schema:
              $ref: '#/components/schemas/Enquiry'
            example: "<Enquiry>\r\n  <Contact>\r\n    <Email>string</Email>\r\n    <Firstname>string</Firstname>\r\
              \n    <Lastname>string</Lastname>\r\n    <Phone>string</Phone>\r\n    <Company>string</Company>\r\
              \n    <JobTitle>string</JobTitle>\r\n  </Contact>\r\n  <BrandCode>string</BrandCode>\r\n\
              </Enquiry>"
          text/xml:
            schema:
              $ref: '#/components/schemas/Enquiry'
            example: "<Enquiry>\r\n  <Contact>\r\n    <Email>string</Email>\r\n    <Firstname>string</Firstname>\r\
              \n    <Lastname>string</Lastname>\r\n    <Phone>string</Phone>\r\n    <Company>string</Company>\r\
              \n    <JobTitle>string</JobTitle>\r\n  </Contact>\r\n  <BrandCode>string</BrandCode>\r\n\
              </Enquiry>"
          application/x-www-form-urlencoded:
            schema:
              type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPvrpluginEnquiryTokenPost200ApplicationJsonResponse'
              example: {}
            text/json:
              schema:
                $ref: '#/components/schemas/ApiPvrpluginEnquiryTokenPost200TextJsonResponse'
              example: {}
            application/xml:
              schema:
                $ref: '#/components/schemas/ApiPvrpluginEnquiryTokenPost200ApplicationXmlResponse'
              example: <ApiPvrpluginEnquiryTokenPost200ApplicationXmlResponse />
            text/xml:
              schema:
                $ref: '#/components/schemas/ApiPvrpluginEnquiryTokenPost200TextXmlResponse'
              example: <ApiPvrpluginEnquiryTokenPost200TextXmlResponse />
  /api/zoopla/partners/{token}:
    post:
      operationId: ZooplaPartnersApi_CreateZooplaPartner
      summary: Creates a new Zoopla partner. This requires a "partner.create" permission
      description: Creates a new Zoopla partner. This requires a "partner.create" permission
      parameters:
      - name: token
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/Token'
        description: Format - uuid. The authentication token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZooplaPartnerCreateRequest'
            example:
              BranchId: string
              Name: string
      responses:
        '201':
          description: Created - the partner was created
        '400':
          description: Bad Request - request parameters do not pass the validation
        '401':
          description: Unauthorized - token is invalid or expired
        '403':
          description: Forbidden - the authentication token is invalid
        '404':
          description: Not Found - the principal could not be found
        '409':
          description: Conflict - partner already exists
        '500':
          description: Internal Server Error - an unexpected error has occured
        '503':
          description: Service Unavailable - this or a dependent service is unavailable
  /api/partners/{token}:
    post:
      operationId: PartnersApi_Post
      summary: Creates a Partner-to-Account entry. Requires the "partner.modify" permission
      description: Creates a Partner-to-Account entry. Requires the "partner.modify" permission
      parameters:
      - name: token
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/Token'
        description: Format - uuid. The authentication token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerCreateRequest'
            example:
              accountApiKey: string
              partnerId: string
              partnerType: string
      responses:
        '201':
          description: Created - the entry was created
        '400':
          description: Bad Request - the request parameters are not provided or are malformed
        '401':
          description: Unauthorized - token is invalid or expired
        '403':
          description: Forbidden - the authentication token doe not have enough rights to update the account's
            branding
        '409':
          description: Conflict - a Partner with the same Partner ID and Type already exists
        '500':
          description: Internal Server Error - an unexpected error has occured
  /api/pvrplugin/order/{token}:
    post:
      operationId: PvrPluginApi_GenerateOrder
      summary: Creates a report for pvr plugin
      description: Creates a report for pvr plugin
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GratisOrder'
            example:
              NodeId: 0
              Firstname: string
              Surname: string
              EmailAddress: string
              ValidationCode: string
              Product:
                Name: string
                Type: string
                Description: string
                Price: 0
                InputTypes: string
                InputValues: string
              ReportPostcode: string
              ReportAddress: string
              BrandName: string
              BrandCode: string
              Telephone: string
              PreparedFor: string
          text/json:
            schema:
              $ref: '#/components/schemas/GratisOrder'
            example:
              NodeId: 0
              Firstname: string
              Surname: string
              EmailAddress: string
              ValidationCode: string
              Product:
                Name: string
                Type: string
                Description: string
                Price: 0
                InputTypes: string
                InputValues: string
              ReportPostcode: string
              ReportAddress: string
              BrandName: string
              BrandCode: string
              Telephone: string
              PreparedFor: string
          application/xml:
            schema:
              $ref: '#/components/schemas/GratisOrder'
            example: "<GratisOrder>\r\n  <NodeId>0</NodeId>\r\n  <Firstname>string</Firstname>\r\n  <Surname>string</Surname>\r\
              \n  <EmailAddress>string</EmailAddress>\r\n  <ValidationCode>string</ValidationCode>\r\n\
              \  <Product>\r\n    <Name>string</Name>\r\n    <Type>string</Type>\r\n    <Description>string</Description>\r\
              \n    <Price>0</Price>\r\n    <InputTypes>string</InputTypes>\r\n    <InputValues>string</InputValues>\r\
              \n  </Product>\r\n  <ReportPostcode>string</ReportPostcode>\r\n  <ReportAddress>string</ReportAddress>\r\
              \n  <BrandName>string</BrandName>\r\n  <BrandCode>string</BrandCode>\r\n  <Telephone>string</Telephone>\r\
              \n  <PreparedFor>string</PreparedFor>\r\n</GratisOrder>"
          text/xml:
            schema:
              $ref: '#/components/schemas/GratisOrder'
            example: "<GratisOrder>\r\n  <NodeId>0</NodeId>\r\n  <Firstname>string</Firstname>\r\n  <Surname>string</Surname>\r\
              \n  <EmailAddress>string</EmailAddress>\r\n  <ValidationCode>string</ValidationCode>\r\n\
              \  <Product>\r\n    <Name>string</Name>\r\n    <Type>string</Type>\r\n    <Description>string</Description>\r\
              \n    <Price>0</Price>\r\n    <InputTypes>string</InputTypes>\r\n    <InputValues>string</InputValues>\r\
              \n  </Product>\r\n  <ReportPostcode>string</ReportPostcode>\r\n  <ReportAddress>string</ReportAddress>\r\
              \n  <BrandName>string</BrandName>\r\n  <BrandCode>string</BrandCode>\r\n  <Telephone>string</Telephone>\r\
              \n  <PreparedFor>string</PreparedFor>\r\n</GratisOrder>"
          application/x-www-form-urlencoded:
            schema:
              type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPvrpluginOrderTokenPost200ApplicationJsonResponse'
              example: {}
            text/json:
              schema:
                $ref: '#/components/schemas/ApiPvrpluginOrderTokenPost200TextJsonResponse'
              example: {}
            application/xml:
              schema:
                $ref: '#/components/schemas/ApiPvrpluginOrderTokenPost200ApplicationXmlResponse'
              example: <ApiPvrpluginOrderTokenPost200ApplicationXmlResponse />
            text/xml:
              schema:
                $ref: '#/components/schemas/ApiPvrpluginOrderTokenPost200TextXmlResponse'
              example: <ApiPvrpluginOrderTokenPost200TextXmlResponse />
  /api/brands/{token}/{targetAccountApiKey}:
    put:
      operationId: BrandsApi_Put
      summary: Creates or updates the branding configuration for an account, based on the account's API
        key
      description: Creates or updates the branding configuration for an account, based on the account's
        API key
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
        description: The authentication token
      - name: targetAccountApiKey
        in: path
        required: true
        schema:
          type: string
        description: The API Key for the target account for which you want to update the branding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandApiModel'
            example:
              brandName: string
              branchName: string
              branchAddress: string
              branchPostcode: string
              branchTelephoneNumber: string
              branchEmailAddress: string
              branchWebsite: string
              reportName: string
              hometrackLogoType: 0
              reportHeading: string
              reportText: string
              terms: string
              showValueRangeOnly: true
              defaultContactDetails: string
              frontPageComments: string
              customerPVRConfiguration: 0
              agentPVRConfiguration: 0
              minimumConfidenceBand: string
              brandLogoColour: string
              highlightColour: string
              accentColourIcons: true
              logo: string
              branchPhoto: string
          text/json:
            schema:
              $ref: '#/components/schemas/BrandApiModel'
            example:
              brandName: string
              branchName: string
              branchAddress: string
              branchPostcode: string
              branchTelephoneNumber: string
              branchEmailAddress: string
              branchWebsite: string
              reportName: string
              hometrackLogoType: 0
              reportHeading: string
              reportText: string
              terms: string
              showValueRangeOnly: true
              defaultContactDetails: string
              frontPageComments: string
              customerPVRConfiguration: 0
              agentPVRConfiguration: 0
              minimumConfidenceBand: string
              brandLogoColour: string
              highlightColour: string
              accentColourIcons: true
              logo: string
              branchPhoto: string
      responses:
        '200':
          description: OK - the account's branding configuration has been updated
        '400':
          description: Bad Request - request parameters do not pass the validation
        '401':
          description: Unauthorized - token is invalid or expired
        '403':
          description: Forbidden - the token does not have enough rights to update the account's branding
        '404':
          description: Not Found - the target account was not found
        '500':
          description: Internal Server Error - an unexpected error has occured
    get:
      operationId: BrandsApi_Get
      summary: Retrieves the branding configuration associated to a given account
      description: If a brand for the specific target account is not found, the default Hometrack brand
        configuration is returned
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
        description: The authentication token
      - name: targetAccountApiKey
        in: path
        required: true
        schema:
          type: string
        description: The API Key for the target account for which you want to retrieve the branding
      responses:
        '200':
          description: OK - request completed successfully, includes model containing the requested brand
            details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandApiModel'
              example:
                brandName: string
                branchName: string
                branchAddress: string
                branchPostcode: string
                branchTelephoneNumber: string
                branchEmailAddress: string
                branchWebsite: string
                reportName: string
                hometrackLogoType: 0
                reportHeading: string
                reportText: string
                terms: string
                showValueRangeOnly: true
                defaultContactDetails: string
                frontPageComments: string
                customerPVRConfiguration: 0
                agentPVRConfiguration: 0
                minimumConfidenceBand: string
                brandLogoColour: string
                highlightColour: string
                accentColourIcons: true
                logo: string
                branchPhoto: string
        '400':
          description: Bad Request - request parameters do not pass the validation
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized - token is invalid or expired
          content:
            application/json:
              schema:
                type: string
        '403':
          description: Forbidden - the token does not have enough rights to update the account's branding
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Not Found - the brand could not be found
          content:
            application/json:
              schema:
                type: string
        '500':
          description: Internal Server Error - an unexpected error has occured
          content:
            application/json:
              schema:
                type: string
  /api/reporting/PropertyValuation/{token}/{transactionReference}:
    get:
      operationId: ReportingApi_RetrievePropertyValuationReport
      summary: Downloads the previously generated Property Valuation Report file
      description: Downloads the previously generated Property Valuation Report file
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
        description: Client's authentication token
      - name: transactionReference
        in: path
        required: true
        schema:
          type: string
        description: The report's transaction ID
      responses:
        '200':
          description: OK - when the report is found and available, includes the binary file stream of
            the PDF
          content:
            application/pdf:
              schema:
                $ref: '#/components/schemas/ApiReportingPropertyValuationTokenTransactionReferenceGet200ApplicationPdfRe'
            application/xml:
              schema:
                $ref: '#/components/schemas/ApiReportingPropertyValuationTokenTransactionReferenceGet200ApplicationXmlRe'
              example: <ApiReportingPropertyValuationTokenTransactionReferenceGet200ApplicationXmlRe />
        '202':
          description: Accepted - the report has not finished generating - try again later
          content:
            application/pdf:
              schema:
                $ref: '#/components/schemas/ApiReportingPropertyValuationTokenTransactionReferenceGet202ApplicationPdfRe'
            application/xml:
              schema:
                $ref: '#/components/schemas/ApiReportingPropertyValuationTokenTransactionReferenceGet202ApplicationXmlRe'
              example: <ApiReportingPropertyValuationTokenTransactionReferenceGet202ApplicationXmlRe />
        '403':
          description: Forbidden - the authentication token is invalid
          content:
            application/pdf:
              schema:
                type: string
            application/xml:
              schema:
                type: string
        '404':
          description: Not Found - no record of transactionId found
          content:
            application/pdf:
              schema:
                type: string
            application/xml:
              schema:
                type: string
        '410':
          description: Gone - the record for that transactionId was found, but the associated PDF file
            cannot be found
          content:
            application/pdf:
              schema:
                type: string
            application/xml:
              schema:
                type: string
        '499':
          description: Client Closed Request - production failed when the production of the report failed
            for an unknown reason - please contact our customer support
          content:
            application/pdf:
              schema:
                type: string
            application/xml:
              schema:
                type: string
        '500':
          description: Internal Server Error - an unexpected error has occured
          content:
            application/pdf:
              schema:
                type: string
            application/xml:
              schema:
                type: string
        '503':
          description: Service Unavailable - this or a dependent service is unavailable
          content:
            application/pdf:
              schema:
                type: string
            application/xml:
              schema:
                type: string
  /api/reporting/TestGet:
    get:
      operationId: ReportingApi_TestGet
      summary: For test purpose
      description: For test purpose
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ApiReportingTestGetGet200ApplicationXmlResponse'
              example: <ApiReportingTestGetGet200ApplicationXmlResponse />
            text/xml:
              schema:
                $ref: '#/components/schemas/ApiReportingTestGetGet200TextXmlResponse'
              example: <ApiReportingTestGetGet200TextXmlResponse />
            application/json:
              schema:
                $ref: '#/components/schemas/ApiReportingTestGetGet200ApplicationJsonResponse'
              example: {}
            text/json:
              schema:
                $ref: '#/components/schemas/ApiReportingTestGetGet200TextJsonResponse'
              example: {}
  /api/reporting/TestPost:
    post:
      operationId: ReportingApi_TestPost
      summary: For test purpose
      description: For test purpose
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ApiReportingTestPostPost200ApplicationXmlResponse'
              example: <ApiReportingTestPostPost200ApplicationXmlResponse />
            text/xml:
              schema:
                $ref: '#/components/schemas/ApiReportingTestPostPost200TextXmlResponse'
              example: <ApiReportingTestPostPost200TextXmlResponse />
            application/json:
              schema:
                $ref: '#/components/schemas/ApiReportingTestPostPost200ApplicationJsonResponse'
              example: {}
            text/json:
              schema:
                $ref: '#/components/schemas/ApiReportingTestPostPost200TextJsonResponse'
              example: {}
  /api/reporting/PropertyValuation:
    post:
      operationId: ReportingApi_RequestPropertyValuationReport
      summary: Requests a Property Valuation Report
      description: Requests a Property Valuation Report
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PropertyValuationReportRequest'
            example:
              Address: string
              Postcode: string
              Bedrooms: 0
              PropertyType: string
              Receptions: 0
              YearBuilt: 0
              FloorArea: 0
              ValuationDate: string
              Bathrooms: 0
              BrandCode: string
              NoBill: true
              NoBillSecret: string
              PreparedFor: string
              BranchId: string
              Token: string
              TransactionId: string
          text/json:
            schema:
              $ref: '#/components/schemas/PropertyValuationReportRequest'
            example:
              Address: string
              Postcode: string
              Bedrooms: 0
              PropertyType: string
              Receptions: 0
              YearBuilt: 0
              FloorArea: 0
              ValuationDate: string
              Bathrooms: 0
              BrandCode: string
              NoBill: true
              NoBillSecret: string
              PreparedFor: string
              BranchId: string
              Token: string
              TransactionId: string
      responses:
        '201':
          description: Created - request accepted and property valuation processed
        '400':
          description: Bad Request - request parameters do not pass the validation
        '402':
          description: Payment Required - the license has lapsed or the report volume has been used up
        '403':
          description: Forbidden - the authentication token is invalid
        '409':
          description: Conflict - non-unique transaction ID is provided
        '499':
          description: Client Closed Request - production failed when the confidence level for the subject
            property was lower than the minimum level specified in configuration
        '500':
          description: Internal Server Error - an unexpected error has occured
        '503':
          description: Service Unavailable - this or a dependent service is unavailable
  /api/reporting/PropertyValuation/config/{token}:
    get:
      operationId: ReportingApi_GetPvrConfigurations
      summary: Retrieves IDs and Names of PVR Configuration Umbraco nodes
      description: 'Requires a PVR account type with permission: pvr.configuration.list'
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
        description: Client's authentication token
      responses:
        '200':
          description: OK - Returns PVR Configurations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PvrConfigsResponse'
              example:
                pvrConfigs:
                - name: string
                  id: 0
                pvrV2Configs:
                - name: string
                  id: 0
        '401':
          description: Unauthorized - the authentication token is invalid
          content:
            application/json:
              schema:
                type: string
        '403':
          description: Forbidden - the account does not have permission
          content:
            application/json:
              schema:
                type: string
        '500':
          description: Internal Server Error - an unexpected error has occured
          content:
            application/json:
              schema:
                type: string
  /api/partners/{token}/{partnerType}/{id}:
    get:
      operationId: PartnersApi_Get
      summary: Retrieves the name and API key of the associated account
      description: Retrieves the name and API key of the associated account
      parameters:
      - name: token
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/Token'
        description: Format - uuid. The authentication token
      - name: partnerType
        in: path
        required: true
        schema:
          type: string
        description: 'Accepted values: "zooplaBranch" or "PSG"'
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The Partner ID
      responses:
        '200':
          description: OK - request completed successfully, includes the requested Partner details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerResponse'
              example:
                partnerId: string
                partnerType: string
                apiKey: string
                principalName: string
                principalUniqueId: 00000000-0000-0000-0000-000000000000
                createDate: string
                modifyDate: string
        '400':
          description: Bad Request - the request parameters are not provided or are malformed
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized - token is invalid or expired
          content:
            application/json:
              schema:
                type: string
        '403':
          description: Forbidden - the authentication token doe not have enough rights to retrieve partner
            details
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Not Found - the partner could not be found
          content:
            application/json:
              schema:
                type: string
        '500':
          description: Internal Server Error - an unexpected error has occured
          content:
            application/json:
              schema:
                type: string
  /api/licences/{token}/{product}:
    get:
      operationId: LicencesApi_Licences
      summary: Returns all the product licences (valid, expired, blocked, etc...) which belong to the
        authenticated client
      description: Returns all the product licences (valid, expired, blocked, etc...) which belong to
        the authenticated client
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
        description: Client's authentication token
      - name: product
        in: path
        required: true
        schema:
          type: string
        descript

# --- truncated at 32 KB (67 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hometrack/refs/heads/main/openapi/hometrack-api-public-openapi.yml