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:
text/xml:
schema:
$ref: '#/components/schemas/ApiReportingMoveToBlobStorageGet200TextXmlResponse'
example:
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: "\r\n \r\n string\r\n string\r\
\n string\r\n string\r\n string\r\
\n string\r\n \r\n string\r\n\
"
text/xml:
schema:
$ref: '#/components/schemas/Enquiry'
example: "\r\n \r\n string\r\n string\r\
\n string\r\n string\r\n string\r\
\n string\r\n \r\n string\r\n\
"
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:
text/xml:
schema:
$ref: '#/components/schemas/ApiPvrpluginEnquiryTokenPost200TextXmlResponse'
example:
/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: "\r\n 0\r\n string\r\n string\r\
\n string\r\n string\r\n\
\ \r\n string\r\n string\r\n string\r\
\n 0\r\n string\r\n string\r\
\n \r\n string\r\n string\r\
\n string\r\n string\r\n string\r\
\n string\r\n"
text/xml:
schema:
$ref: '#/components/schemas/GratisOrder'
example: "\r\n 0\r\n string\r\n string\r\
\n string\r\n string\r\n\
\ \r\n string\r\n string\r\n string\r\
\n 0\r\n string\r\n string\r\
\n \r\n string\r\n string\r\
\n string\r\n string\r\n string\r\
\n string\r\n"
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:
text/xml:
schema:
$ref: '#/components/schemas/ApiPvrpluginOrderTokenPost200TextXmlResponse'
example:
/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:
'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:
'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:
text/xml:
schema:
$ref: '#/components/schemas/ApiReportingTestGetGet200TextXmlResponse'
example:
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:
text/xml:
schema:
$ref: '#/components/schemas/ApiReportingTestPostPost200TextXmlResponse'
example:
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
description: The product code
responses:
'200':
description: OK - request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LicenceArray'
example:
- product: string
status: string
type: string
startDate: string
endDate: string
volume: 0
remainingVolume: 0
'400':
description: Bad Request - an input parameter is missing
content:
application/json:
schema:
type: string
'403':
description: Forbidden - the authentication token is invalid
content:
application/json:
schema:
type: string
'404':
description: Not Found - the account or licences 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
'503':
description: Service Unavailable - this or a dependent service is unavailable
content:
application/json:
schema:
type: string
/api/pvrplugin/{domain}:
get:
operationId: PvrPluginApi_GetConfiguration
summary: "Returns the requirements for pvr plugin.\r\nThis method calls an account service to resolve\
\ and authenticate domain.\r\nAlso it checks if XML configuration is set and brandcode is specified.\r\
\nIt also checks if Brand exists in umbraco and Partner associated with it."
description: "Returns the requirements for pvr plugin.\r\nThis method calls an account service to\
\ resolve and authenticate domain.\r\nAlso it checks if XML configuration is set and brandcode\
\ is specified.\r\nIt also checks if Brand exists in umbraco and Partner associated with it."
parameters:
- name: domain
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPvrpluginDomainGet200ApplicationJsonResponse'
example: {}
text/json:
schema:
$ref: '#/components/schemas/ApiPvrpluginDomainGet200TextJsonResponse'
example: {}
application/xml:
schema:
$ref: '#/components/schemas/ApiPvrpluginDomainGet200ApplicationXmlResponse'
example:
text/xml:
schema:
$ref: '#/components/schemas/ApiPvrpluginDomainGet200TextXmlResponse'
example:
/api/pvrplugin/{domain}/{partnerid}:
get:
operationId: PvrPluginApi_GetConfigurationByPartnerId
summary: "Returns the requirements for pvr plugin.\r\nThis method calls an account service to resolve\
\ and authenticate domain.\r\nAlso it checks if XML configuration is set and brandcode is specified.\r\
\nIt also checks if Brand exists in umbraco and Partner associated with it."
description: "Returns the requirements for pvr plugin.\r\nThis method calls an account service to\
\ resolve and authenticate domain.\r\nAlso it checks if XML configuration is set and brandcode\
\ is specified.\r\nIt also checks if Brand exists in umbraco and Partner associated with it."
parameters:
- name: partnerid
in: path
required: true
schema:
$ref: '#/components/schemas/Partnerid'
description: Format - int32.
- name: domain
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPvrpluginDomainPartneridGet200ApplicationJsonResponse'
example: {}
text/json:
schema:
$ref: '#/components/schemas/ApiPvrpluginDomainPartneridGet200TextJsonResponse'
example: {}
application/xml:
schema:
$ref: '#/components/schemas/ApiPvrpluginDomainPartneridGet200ApplicationXmlResponse'
example:
text/xml:
schema:
$ref: '#/components/schemas/ApiPvrpluginDomainPartneridGet200TextXmlResponse'
example:
/api/trial/{apikey}/{token}:
get:
operationId: TrialApi_Trial
summary: Returns trial licence for the ApiKey
description: Returns trial licence for the ApiKey
parameters:
- name: apikey
in: path
required: true
schema:
type: string
description: The customers ApiKey
- name: token
in: path
required: true
schema:
type: string
description: Authentication token with the licence.list rights
responses:
'200':
description: OK - request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Trial'
example:
status: string
apiKey: string
product: string
startDate: string
endDate: string
volume: 0
remainingVolume: 0
'400':
description: Bad Request - the apiKey or token is missing
content:
application/json:
schema:
type: string
'403':
description: Forbidden - the authentication token is invalid
content:
application/json:
schema:
type: string
'404':
description: Not Found - the apiKey is not recognized
content:
application/json:
schema:
type: string
'500':
description: Internal Server Error - an unexpected error has occured
content:
application/json:
schema:
type: string
'503':
description: Service Unavailable - this or a dependent service is unavailable
content:
application/json:
schema:
type: string
/api/reporting/{token}:
post:
operationId: ReportingApi_ProcessPropertyValuation
summary: "The main report processing endpoint. \r\nReport Processor calls this method with the message\
\ body from *-Created queues"
description: "The main report processing endpoint. \r\nReport Processor calls this method with the\
\ message body from *-Created queues"
parameters:
- name: token
in: path
required: true
schema:
type: string
requestBody:
content:
application/xml:
schema:
$ref: '#/components/schemas/CreatedReportModel'
example: "\r\n 00000000-0000-0000-0000-000000000000\r\
\n 00000000-0000-0000-0000-000000000000\r\
\n string\r\n string\r\
\n string\r\n string\r\n string\r\
\n string\r\n \r\n 00000000-0000-0000-0000-000000000000\r\
\n string\r\n string\r\n string\r\
\n string\r\n string\r\n \
\ string\r\n string\r\n string\r\
\n string\r\n \r\n \r\n\
\ string\r\n string\r\n true\r\
\n true\r\n string\r\
\n \r\n string\r\n"
text/xml:
schema:
$ref: '#/components/schemas/CreatedReportModel'
example: "\r\n 00000000-0000-0000-0000-000000000000\r\
\n 00000000-0000-0000-0000-000000000000\r\
\n string\r\n string\r\
\n string\r\n string\r\n string\r\
\n string\r\n \r\n 00000000-0000-0000-0000-000000000000\r\
\n string\r\n string\r\n string\r\
\n string\r\n string\r\n \
\ string\r\n string\r\n string\r\
\n string\r\n \r\n \r\n\
\ string\r\n string\r\n true\r\
\n true\r\n string\r\
\n \r\n string\r\n"
application/x-www-form-urlencoded:
schema:
type: string
application/json:
schema:
$ref: '#/components/schemas/CreatedReportModel'
example:
AccountApiKey: 00000000-0000-0000-0000-000000000000
OrderUniqueIdentifier: 00000000-0000-0000-0000-000000000000
UniqueIdentifier: string
OrderNumber: string
ReportType: string
BrandCode: string
Recipient: string
PreparedFor: string
ContactDetail:
UniqueId: 00000000-0000-0000-0000-000000000000
Title: string
Firstname: string
Surname: string
EmailAddress: string
CompanyName: string
JobTitle: string
Fullname: string
DeliveryEmail: string
Telephone: string
ReportParameters: {}
FileName: string
FilePath: string
IsApiReport: true
IsLandingPageReport: true
TransactionReference: string
AdditionalReportDetails: {}
DateCreated: string
text/json:
schema:
$ref: '#/components/schemas/CreatedReportModel'
example:
AccountApiKey: 00000000-0000-0000-0000-000000000000
OrderUniqueIdentifier: 00000000-0000-0000-0000-000000000000
UniqueIdentifier: string
OrderNumber: string
ReportType: string
BrandCode: string
Recipient: string
PreparedFor: string
ContactDetail:
UniqueId: 00000000-0000-0000-0000-000000000000
Title: string
Firstname: string
Surname: string
EmailAddress: string
CompanyName: string
JobTitle: string
Fullname: string
DeliveryEmail: string
Telephone: string
ReportParameters: {}
FileName: string
FilePath: string
IsApiReport: true
IsLandingPageReport: true
TransactionReference: string
AdditionalReportDetails: {}
DateCreated: string
responses:
'200':
description: OK
content:
application/xml:
schema:
$ref: '#/components/schemas/ApiReportingTokenPost200ApplicationXmlResponse'
example:
text/xml:
schema:
$ref: '#/components/schemas/ApiReportingTokenPost200TextXmlResponse'
example:
application/json:
schema:
$ref: '#/components/schemas/ApiReportingTokenPost200ApplicationJsonResponse'
example: {}
text/json:
schema:
$ref: '#/components/schemas/ApiReportingTokenPost200TextJsonResponse'
example: {}
/api/trial/{token}:
post:
operationId: TrialApi_NewTrial
summary: This method will create a new user with the trial account and licence
description: This method will create a new user with the trial account and licence
parameters:
- name: token
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TrialRequest'
example:
product: string
startDate: string
termMonths: string
volume: string
companyName: string
contactFirstname: string
contactSurname: string
contactEmailAddress: string
contactPhoneNumber: string
responses:
'201':
description: Created - trial account created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Trial'
example:
status: string
apiKey: string
product: string
startDate: string
endDate: string
volume: 0
remainingVolume: 0
'400':
description: Bad Request - the apiKey or token is missing
content:
application/json:
schema:
type: string
'403':
description: Forbidden - the authentication token is invalid
content:
application/json:
schema:
type: string
'409':
description: Conflict - a user with this email address already exists
content:
application/json:
schema:
type: string
'500':
description: Internal Server Error - an unexpected error has occured
content:
application/json:
schema:
type: string
'503':
description: Service Unavailable - this or a dependent service is unavailable
content:
application/json:
schema:
type: string
components:
securitySchemes:
apiKeyHeader:
type: apiKey
name: Ocp-Apim-Subscription-Key
in: header
apiKeyQuery:
type: apiKey
name: subscription-key
in: query
schemas:
BrandApiModel:
description: "This model represents a Brand configuration. \r\nIt is normally used for co-branded\
\ Property Valuation Reports."
type: object
properties:
brandName:
description: [Required on creation] The name of the brand. This field is required when
first creating the brand, but can be ignored on update.
type: string
branchName:
description: The name of the branch.
type: string
branchAddress:
description: The address of the branch
type: string
branchPostcode:
description: The postcode of the address of the branch
type: string
branchTelephoneNumber:
description: The telephone number of the branch
type: string
branchEmailAddress:
description: An email address of the branch
type: string
branchWebsite:
description: The website of the branch
type: string
reportName:
description: Name of the report, to be printed on all reports generated using this brand. E.g.
"Property Valuation Report" or "Market Appraisal".
type: string
hometrackLogoType:
format: int32
description: "Specifies the type of logo desired. It can be one of the following values:\r\n\
- 1: Standard Hometrack logo
- 2: Powered by Hometrack logo
"
maximum: 2
minimum: 1
type: integer
reportHeading:
description: Additional text heading shown in the last page of PDF report
type: string
reportText:
description: Additional text shown in the last page of PDF report
type: string
terms:
description: "[Required on creation] Terms and conditions text which will be shown in\
\ Hometrack's PVR plugin. \r\n This field is required when first creating the brand,\
\ but can be ignored on update."
type: string
showValueRangeOnly:
description: If set to 'true', only the capital value range will be displayed in PDF report
(no capital valuation).
type: boolean
defaultContactDetails:
description: "Details to be printed on the back page of the agent leave-behind if contact details\
\ are not supplied in the order form. \r\nAgent name Telephone number(s) Email address"
type: string
frontPageComments:
description: Agent comments to be displayed on the front page of the Agent leave behind.
type: string
customerPVRConfiguration:
format: int32
description: The ID of the PVR configuration desired for generating the PDF report.
type: integer
agentPVRConfiguration:
format: int32
description: (Obsolete)
type: integer
minimumConfidenceBand:
description: "Low limit for the confidence level which will appear in the PVR. \r\nYou should\
\ provide a decimal value in a range from 1 to 7, or the value 0 if you want to allow any\
\ confidence level.
\r\nI.e. if the requested PVR would show a confidence level lower\
\ than that specified here, \r\nthe Low Confidence Level error message will be displayed and\
\ the report will not be generated.
\r\nIf not provided, this setting will default to\
\ 0 - all confidence levels allowed."
type: string
brandLogoColour:
description: The hex code for the brand's logo colour, to be used on the front and back page
of the Agent Leave behind.
type: string
highlightColour:
description: "The hex code for the brand's accent colour, to be used to frame headers in the\
\ Agent Leave behind. \r\nIf no accent colour, please repeat the logo colour."
type: string
accentColourIcons:
type: boolean
logo:
description: "A Base64-encoded image representing the brand's logo. \r\nIf set, this logo will\
\ be visible on the PDF report.
\r\nWe accept images with or without the data URL scheme.\
\ Considering that <data> is the Base64 encoded string representing your logo,\r\nthe\
\ data URL scheme is of this form:
data:[<mediatype>][;base64],<data>
\r\
\nExample: \r\ndata:image/png;base64,iVBORw0KGgo...
"
type: string
branchPhoto:
description: "A Base64-encoded image representing the branch photo. \r\nIf set, this logo will\
\ be visible on the last page of the PDF report.
"
type: string
Licence:
description: Licence response model
type: object
properties:
product:
description: Product code
type: string
status:
description: Status (Licensed/Expired/Suspended)
type: string
type:
description: AccessOnly or Volume.
type: string
startDate:
format: date-time
description: The start date
type: string
endDate:
format: date-time
description: The end date
type: string
volume:
format: int32
description: The licence volume if applicable
type: integer
remainingVolume:
format: int32
description: Shows how many reports can be created for this licence
type: integer
PartnerResponse:
type: object
properties:
partnerId:
type: string
partnerType:
type: string
apiKey:
type: string
principalName:
type: string
principalUniqueId:
format: uuid
type: string
example: 00000000-0000-0000-0000-000000000000
createDate:
format: date-time
type: string
modifyDate:
format: date-time
type: string
PartnerCreateRequest:
required:
- accountApiKey
- partnerId
- partnerType
type: object
properties:
accountApiKey:
description: [Required] The API Key for the associated Account.
type: string
partnerId:
description: [Required] The partner ID.
type: string
partnerType:
description: '[Required] The partner type: ''zoopla'' or ''PSG''.'
type: string
GratisOrder:
type: object
properties:
NodeId:
format: int32
type: integer
Firstname:
type: string
Surname:
type: string
EmailAddress:
type: string
ValidationCode:
type: string
Product:
$ref: '#/components/schemas/Product'
ReportPostcode:
type: string
ReportAddress:
type: string
BrandName:
type: string
BrandCode:
type: string
Telephone:
type: string
PreparedFor:
type: string
Product:
type: object
properties:
Name:
type: string
Type:
type: string
Description:
type: string
Price:
format: double
type: number
InputTypes:
type: string
InputValues:
type: string
Enquiry:
description: Enquiry model.
type: object
properties:
Contact:
$ref: '#/components/schemas/Contact'
description: Contact details
BrandCode:
description: Brand code
type: string
Contact:
description: The Contact model. Used for Create/Update/Retrieve operations with salesforce
type: object
properties:
Email:
description: Email address
type: string
Firstname:
description: Firstname
type: string
Lastname:
description: Lastname
type: string
Phone:
description: Phone number
type: string
Company:
description: Company name
type: string
JobTitle:
description: Job title
type: string
PvrConfigsResponse:
description: Used for getting Pvr configuration from umbraco
type: object
properties:
pvrConfigs:
description: An array of v1 configurations
type: array
items:
$ref: '#/components/schemas/PvrConfigModel'
pvrV2Configs:
description: An array of v2 configurations
type: array
items:
$ref: '#/components/schemas/PvrConfigModel'
PvrConfigModel:
description: Used for getting Pvr configuration from umbraco
type: object
properties:
name:
description: Configuration name
type: string
id:
format: int32
description: Configuration Id
type: integer
CreatedReportModel:
description: Used to pass the data required to send the report to a customer.
type: object
properties:
AccountApiKey:
format: uuid
type: string
example: 00000000-0000-0000-0000-000000000000
OrderUniqueIdentifier:
format: uuid
description: ''
type: string
example: 00000000-0000-0000-0000-000000000000
UniqueIdentifier:
description: Report unique identifier to get and update the ReportProductionLog record.
type: string
OrderNumber:
description: ''
type: string
ReportType:
description: ''
type: string
BrandCode:
description: ''
type: string
Recipient:
description: ''
type: string
PreparedFor:
description: Used in PVR header
type: string
ContactDetail:
$ref: '#/components/schemas/ProcessContact'
description: Customer details
ReportParameters:
description: ''
type: object
additionalProperties:
type: string
FileName:
description: This is the report file name, including extension.
type: string
FilePath:
description: This is the full path with the file name and extension.
type: string
IsApiReport:
description: If true the email will be not sent.
type: boolean
IsLandingPageReport:
description: "If true, then several steps in transformation process will be ignored to improve\
\ performance.\r\nTransactionId value will be required too."
type: boolean
TransactionReference:
description: Required to retrieve the report path for a landing page order
type: string
AdditionalReportDetails:
description: "Used to pass the additional information to the report transformation process.\r\
\nWill be NOT stored anywhere(Salesforce, DB, Logs), and only used to produce the report."
type: object
additionalProperties:
type: object
DateCreated:
format: date-time
type: string
ProcessContact:
type: object
properties:
UniqueId:
format: uuid
type: string
example: 00000000-0000-0000-0000-000000000000
Title:
type: string
Firstname:
type: string
Surname:
type: string
EmailAddress:
type: string
CompanyName:
type: string
JobTitle:
type: string
Fullname:
type: string
DeliveryEmail:
type: string
Telephone:
type: string
PropertyValuationReportRequest:
description: Property valuation report request model.
required:
- Address
- Postcode
- Bedrooms
- PropertyType
- Token
- TransactionId
type: object
properties:
Address:
description: '[Required] Address'
type: string
Postcode:
description: '[Required] Postcode'
type: string
Bedrooms:
format: int32
description: '[Required] Bedroom count. Must be an integer 1 to 10.'
maximum: 10
minimum: 1
type: integer
PropertyType:
description: "[Required] Property type. It should be one of the following values:\r\n- Bungalow\
\ - Semi-Detached
- Bungalow - Detached
- Bungalow - End Terrace
- Bungalow\
\ - Mid Terrace
- Flat - Converted
- Flat - Purpose Built
- House - End\
\ Terrace
- House - Mid Terrace
- House - Semi-Detached
- House - Detached
\r\
\nWe also accept the following alternative values:\r\n- semi detached bungalow
- detached\
\ bungalow
- end terrace bungalow
- mid terrace bungalow
- converted flat
- purpose\
\ built flat
- end terrace house
- mid terrace house
- semi detached house
- detached\
\ house
"
type: string
Receptions:
format: int32
description: '[Optional] Receptions count. Must be an integer 1 to 5.'
maximum: 5
minimum: 1
type: integer
YearBuilt:
format: int32
description: "[Optional] Year built. \r\nAn integer between 1500 and the current year, or null."
type: integer
FloorArea:
format: double
description: '[Optional] Floor area, in sq m.'
type: number
ValuationDate:
format: date-time
description: "[Optional] Date to apply to the valuation. \r\nValid range is from 1 Jan 1999\
\ to today.\r\nIf null, then today's date applied."
type: string
Bathrooms:
format: int32
description: '[Optional] The number of bathrooms.'
maximum: 10
minimum: 1
type: integer
BrandCode:
description: '[Optional] If a brand with this code is set up in our system, the report will
be generated with the respective brand options.'
type: string
NoBill:
description: "[Optional] If set to true, the NoBillSecret will be checked against the whitelist.\r\
\nOn success the report will be created in test mode and transaction will not be synced to\
\ Salesforce."
type: boolean
NoBillSecret:
description: "[Optional] If a value is supplied and paired with NoBill set to true, it will\
\ be checked against the whitelist.\r\nOn success the report will be created in test mode\
\ and transaction will not be synced to Salesforce."
type: string
PreparedFor:
description: '[Optional] If specified, will be displayed on front page before valuation address'
type: string
BranchId:
description: '[Optional] Zoopla partner/ branch ID'
type: string
Token:
description: '[Required] Once authenticated, the client will use the received token for all
subsequent API calls.'
type: string
TransactionId:
description: '[Required] A unique ID for the transaction request, generated by the customer.
The field allows only alphanumeric characters, hyphens (-) and underscores (_).'
type: string
Trial:
type: object
properties:
status:
type: string
apiKey:
type: string
product:
type: string
startDate:
format: date-time
type: string
endDate:
format: date-time
type: string
volume:
format: int32
type: integer
remainingVolume:
format: int32
type: integer
TrialRequest:
description: Represents the request to TrialApi endpoint
type: object
properties:
product:
description: 'The product code. Ex.: PVR, SAR, Dashboard...'
type: string
startDate:
format: date-time
description: Trial start date
type: string
termMonths:
description: Trial term in months.
type: string
volume:
description: Trial volume limit.
type: string
companyName:
description: Contact company name
type: string
contactFirstname:
description: First name of the contact
type: string
contactSurname:
description: Last name of the contact
type: string
contactEmailAddress:
description: Contact email address
type: string
contactPhoneNumber:
description: Contact phone number.
type: string
ZooplaPartnerCreateRequest:
type: object
properties:
BranchId:
description: Partner / branch ID
type: string
Name:
description: Partner / branch Name
type: string
ApiAuthenticationApiKeyPost201TextPlainResponse:
type: string
LicenceArray:
type: array
items:
$ref: '#/components/schemas/Licence'
Token:
format: uuid
x-apim-inline: true
ApiPvrpluginDomainGet200ApplicationJsonResponse:
type: object
ApiPvrpluginDomainGet200TextJsonResponse:
type: object
ApiPvrpluginDomainGet200ApplicationXmlResponse:
type: object
ApiPvrpluginDomainGet200TextXmlResponse:
type: object
Partnerid:
format: int32
x-apim-inline: true
ApiPvrpluginDomainPartneridGet200ApplicationJsonResponse:
type: object
ApiPvrpluginDomainPartneridGet200TextJsonResponse:
type: object
ApiPvrpluginDomainPartneridGet200ApplicationXmlResponse:
type: object
ApiPvrpluginDomainPartneridGet200TextXmlResponse:
type: object
ApiPvrpluginOrderTokenPost200ApplicationJsonResponse:
type: object
ApiPvrpluginOrderTokenPost200TextJsonResponse:
type: object
ApiPvrpluginOrderTokenPost200ApplicationXmlResponse:
type: object
ApiPvrpluginOrderTokenPost200TextXmlResponse:
type: object
ApiPvrpluginEnquiryTokenPost200ApplicationJsonResponse:
type: object
ApiPvrpluginEnquiryTokenPost200TextJsonResponse:
type: object
ApiPvrpluginEnquiryTokenPost200ApplicationXmlResponse:
type: object
ApiPvrpluginEnquiryTokenPost200TextXmlResponse:
type: object
ApiReportingTestGetGet200ApplicationXmlResponse:
type: object
ApiReportingTestGetGet200TextXmlResponse:
type: object
ApiReportingTestGetGet200ApplicationJsonResponse:
type: object
ApiReportingTestGetGet200TextJsonResponse:
type: object
ApiReportingMoveToBlobStorageGet200ApplicationXmlResponse:
type: object
ApiReportingMoveToBlobStorageGet200TextXmlResponse:
type: object
ApiReportingMoveToBlobStorageGet200ApplicationJsonResponse:
type: object
ApiReportingMoveToBlobStorageGet200TextJsonResponse:
type: object
ApiReportingPropertyValuationTokenTransactionReferenceGet200ApplicationPdfRe:
type: object
ApiReportingPropertyValuationTokenTransactionReferenceGet200ApplicationXmlRe:
type: object
ApiReportingPropertyValuationTokenTransactionReferenceGet202ApplicationPdfRe:
type: object
ApiReportingPropertyValuationTokenTransactionReferenceGet202ApplicationXmlRe:
type: object
ApiReportingTokenPost200ApplicationXmlResponse:
type: object
ApiReportingTokenPost200TextXmlResponse:
type: object
ApiReportingTokenPost200ApplicationJsonResponse:
type: object
ApiReportingTokenPost200TextJsonResponse:
type: object
ApiReportingTestPostPost200ApplicationXmlResponse:
type: object
ApiReportingTestPostPost200TextXmlResponse:
type: object
ApiReportingTestPostPost200ApplicationJsonResponse:
type: object
ApiReportingTestPostPost200TextJsonResponse:
type: object
security:
- {}
- apiKeyHeader: []
- apiKeyQuery: []