Alto (Vebra / Zoopla) · AsyncAPI Specification

Zoopla Lead Push Service

Version 1.0.0

Real-time delivery of Zoopla portal leads to a partner-hosted endpoint. Faithfully transcribed by API Evangelist from the push-service documentation Zoopla publishes at https://developers.zoopla.co.uk/leads/docs/push-service — Zoopla publishes no AsyncAPI document. The push service is the event-driven twin of the polled REST Leads API (openapi/zoopla-leads-api-openapi.json): the two share the same payload, so the message schemas below are carried verbatim from the published Swagger definitions. Historically these leads were delivered as XML over FTP; push and poll are the two supported replacements.

View Spec View on GitHub Real-EstateUnited KingdomPropTechProperty ListingsCRMProperty ManagementRentalsConveyancingEstate AgencyTenancyWebhookEventLettingsSales ProgressionProperty DataReal Estate SoftwareAsyncAPIWebhooksEvents

Channels

zooplaLeads
Zoopla sends one HTTP POST per lead. The top-level key is the discriminator: "applicant" for consumers looking to buy or rent, "appraisal" for consumers looking to sell or let. Delivery can be filtered per endpoint on four independent flags — applicant leads, appraisal leads, sales leads and lettings leads.

Messages

ApplicantLead
Applicant lead
A consumer enquiry from the Zoopla portal about buying or renting a property.
AppraisalLead
Appraisal lead
A consumer request from the Zoopla portal for a valuation — selling or letting.

Servers

https
partnerEndpoint
The data-recipient endpoint the partner supplies. A single endpoint may receive both lead kinds — they are distinguished by the top-level payload key — or separate applicant and appraisal endpoints may be configured.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
id: urn:apievangelist:alto-vebra:zoopla-leads-push
info:
  title: Zoopla Lead Push Service
  version: 1.0.0
  description: 'Real-time delivery of Zoopla portal leads to a partner-hosted endpoint. Faithfully transcribed
    by API Evangelist from the push-service documentation Zoopla publishes at https://developers.zoopla.co.uk/leads/docs/push-service
    — Zoopla publishes no AsyncAPI document. The push service is the event-driven twin of the polled REST
    Leads API (openapi/zoopla-leads-api-openapi.json): the two share the same payload, so the message
    schemas below are carried verbatim from the published Swagger definitions. Historically these leads
    were delivered as XML over FTP; push and poll are the two supported replacements.'
  contact:
    name: Zoopla Member Services
    email: members@zoopla.co.uk
    url: https://developers.zoopla.co.uk/leads/docs/push-service
  externalDocs:
    url: https://developers.zoopla.co.uk/leads/docs/push-service
    description: Zoopla lead push service
defaultContentType: application/json
servers:
  partnerEndpoint:
    host: '{partnerHost}'
    pathname: /{partnerPath}
    protocol: https
    description: The data-recipient endpoint the partner supplies. A single endpoint may receive both
      lead kinds — they are distinguished by the top-level payload key — or separate applicant and appraisal
      endpoints may be configured.
    variables:
      partnerHost:
        default: example.partner.com
      partnerPath:
        default: zoopla/leads
    security:
    - $ref: '#/components/securitySchemes/oauth2ClientCredentials'
    - $ref: '#/components/securitySchemes/apiKeyAuth'
channels:
  zooplaLeads:
    address: /
    title: Zoopla leads
    description: 'Zoopla sends one HTTP POST per lead. The top-level key is the discriminator: "applicant"
      for consumers looking to buy or rent, "appraisal" for consumers looking to sell or let. Delivery
      can be filtered per endpoint on four independent flags — applicant leads, appraisal leads, sales
      leads and lettings leads.'
    servers:
    - $ref: '#/servers/partnerEndpoint'
    messages:
      ApplicantLead:
        $ref: '#/components/messages/ApplicantLead'
      AppraisalLead:
        $ref: '#/components/messages/AppraisalLead'
operations:
  receiveZooplaLead:
    action: receive
    channel:
      $ref: '#/channels/zooplaLeads'
    title: Receive a Zoopla lead
    summary: Zoopla POSTs a single applicant or appraisal lead to the partner endpoint.
    description: Zoopla retries a failed delivery until the receiving service recovers or 24 hours have
      elapsed. After that window the lead is retained for a further 29 days (30 in total) but there is
      no automatic replay — a prolonged outage has to be resolved with Zoopla manually. The polled REST
      API (GET /applicant-leads, GET /appraisal-leads) reads the same 30-day store and is the documented
      recovery path.
    messages:
    - $ref: '#/channels/zooplaLeads/messages/ApplicantLead'
    - $ref: '#/channels/zooplaLeads/messages/AppraisalLead'
    bindings:
      http:
        method: POST
components:
  securitySchemes:
    oauth2ClientCredentials:
      type: oauth2
      description: 'Zoopla calls a token endpoint the partner supplies with grant_type=client_credentials
        and the client_id/client_secret the partner issues, then presents the returned token as Authorization:
        Bearer. Only the client_credentials grant is supported. An audience may be required depending
        on configuration.'
      flows:
        clientCredentials:
          tokenUrl: https://partner.example.com/oauth2/token
          availableScopes: {}
      scopes: []
    apiKeyAuth:
      type: httpApiKey
      name: Authorization
      in: header
      description: The partner-supplied key is used verbatim as the Authorization header value.
  messages:
    ApplicantLead:
      name: ApplicantLead
      title: Applicant lead
      contentType: application/json
      summary: A consumer enquiry from the Zoopla portal about buying or renting a property.
      payload:
        $ref: '#/components/schemas/ApplicantLeadEnvelope'
    AppraisalLead:
      name: AppraisalLead
      title: Appraisal lead
      contentType: application/json
      summary: A consumer request from the Zoopla portal for a valuation — selling or letting.
      payload:
        $ref: '#/components/schemas/AppraisalLeadEnvelope'
  schemas:
    Applicant:
      type: object
      properties:
        consumerPostcode:
          type: string
          x-go-name: ConsumerPostcode
        consumerSituation:
          type: string
          enum:
          - CONSUMER_SITUATION_UNSPECIFIED
          - CONSUMER_SITUATION_OTHER
          - CONSUMER_SITUATION_PROPERTY_TO_SELL
          - CONSUMER_SITUATION_PROPERTY_TO_LET
          - CONSUMER_SITUATION_OFFER_ON_OWN_PROPERTY
          - CONSUMER_SITUATION_RECENTLY_SOLD
          - CONSUMER_SITUATION_FIRST_TIME_BUYER
          - CONSUMER_SITUATION_BUYER_NOT_FIRST_TIME
          - CONSUMER_SITUATION_LOOKING_TO_INVEST
          - CONSUMER_SITUATION_NO_PROPERTY_TO_SELL
          x-go-enum-desc: 'CONSUMER_SITUATION_UNSPECIFIED Unspecified

            CONSUMER_SITUATION_OTHER Other

            CONSUMER_SITUATION_PROPERTY_TO_SELL PropertyToSell

            CONSUMER_SITUATION_PROPERTY_TO_LET PropertyToLet

            CONSUMER_SITUATION_OFFER_ON_OWN_PROPERTY OfferOnOwnProperty

            CONSUMER_SITUATION_RECENTLY_SOLD RecentlySold

            CONSUMER_SITUATION_FIRST_TIME_BUYER FirstTimeBuyer

            CONSUMER_SITUATION_BUYER_NOT_FIRST_TIME BuyerNotFirstTime

            CONSUMER_SITUATION_LOOKING_TO_INVEST LookingToInvest

            CONSUMER_SITUATION_NO_PROPERTY_TO_SELL NoPropertyToSell'
          x-go-name: ConsumerSituation
        contact:
          $ref: '#/components/schemas/Contact'
        createdAt:
          type: string
          format: date-time
          x-go-name: CreatedAt
        enquiryType:
          type: string
          enum:
          - ENQUIRY_TYPE_UNSPECIFIED
          - ENQUIRY_TYPE_SALES
          - ENQUIRY_TYPE_LETTINGS
          x-go-enum-desc: 'ENQUIRY_TYPE_UNSPECIFIED Unspecified

            ENQUIRY_TYPE_SALES Sales

            ENQUIRY_TYPE_LETTINGS Lettings'
          x-go-name: EnquiryType
        id:
          type: string
          x-go-name: ID
        intent:
          x-go-name: Intent
        isOverseas:
          type: boolean
          x-go-name: IsOverseas
        leadSource:
          $ref: '#/components/schemas/ApplicantSource'
        listingDetails:
          $ref: '#/components/schemas/ListingDetails'
        message:
          type: string
          x-go-name: Message
        organiseViewing:
          type: boolean
          x-go-name: OrganiseViewing
        portalBranchId:
          type: string
          x-go-name: PortalBranchID
        portalCompanyId:
          type: string
          x-go-name: PortalCompanyID
        portalGroupId:
          type: string
          x-go-name: PortalGroupID
        portalLeadId:
          type: string
          x-go-name: PortalLeadID
        portalSource:
          x-go-name: PortalSource
        propertyUse:
          type: string
          enum:
          - PROPERTY_USE_UNSPECIFIED
          - PROPERTY_USE_RESIDENTIAL
          - PROPERTY_USE_COMMERCIAL
          x-go-enum-desc: 'PROPERTY_USE_UNSPECIFIED Unspecified

            PROPERTY_USE_RESIDENTIAL Residential

            PROPERTY_USE_COMMERCIAL Commercial'
          x-go-name: PropertyUse
        recipientEmail:
          type: string
          x-go-name: RecipientEmail
        requestPropertyDetails:
          type: boolean
          x-go-name: RequestPropertyDetails
        searchCriteria:
          $ref: '#/components/schemas/SearchCriteria'
        sourceBranchId:
          type: string
          x-go-name: SourceBranchID
        viewingTimes:
          type: array
          items:
            $ref: '#/components/schemas/ViewingTime'
          x-go-name: ViewingTimes
      x-go-name: View
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/applicant
    ApplicantSource:
      description: 'ApplicantSource is an enum representing the mechanism by which the lead was ingested

        either a portal or social media product'
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/applicant/applicantSource
    Appraisal:
      type: object
      properties:
        contact:
          $ref: '#/components/schemas/Contact'
        createdAt:
          type: string
          format: date-time
          x-go-name: CreatedAt
        enquiryType:
          type: string
          enum:
          - ENQUIRY_TYPE_UNSPECIFIED
          - ENQUIRY_TYPE_SALES
          - ENQUIRY_TYPE_LETTINGS
          x-go-enum-desc: 'ENQUIRY_TYPE_UNSPECIFIED Unspecified

            ENQUIRY_TYPE_SALES Sales

            ENQUIRY_TYPE_LETTINGS Lettings'
          x-go-name: EnquiryType
        id:
          type: string
          x-go-name: ID
        intent:
          x-go-name: Intent
        isOverseas:
          type: boolean
          x-go-name: IsOverseas
        justCurious:
          type: boolean
          x-go-name: JustCurious
        leadSource:
          $ref: '#/components/schemas/AppraisalSource'
        message:
          type: string
          x-go-name: Message
        portalBranchId:
          type: string
          x-go-name: PortalBranchID
        portalCompanyId:
          type: string
          x-go-name: PortalCompanyID
        portalGroupId:
          type: string
          x-go-name: PortalGroupID
        portalLeadId:
          type: string
          x-go-name: PortalLeadID
        portalSource:
          x-go-name: PortalSource
        propertyDetails:
          $ref: '#/components/schemas/Property'
        propertyUse:
          type: string
          enum:
          - PROPERTY_USE_UNSPECIFIED
          - PROPERTY_USE_RESIDENTIAL
          - PROPERTY_USE_COMMERCIAL
          x-go-enum-desc: 'PROPERTY_USE_UNSPECIFIED Unspecified

            PROPERTY_USE_RESIDENTIAL Residential

            PROPERTY_USE_COMMERCIAL Commercial'
          x-go-name: PropertyUse
        recipientEmail:
          type: string
          x-go-name: RecipientEmail
        sourceBranchId:
          type: string
          x-go-name: SourceBranchID
        urgency:
          $ref: '#/components/schemas/Urgency'
      x-go-name: View
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/appraisal
    AppraisalSource:
      description: 'AppraisalSource is an enum representing the mechanism by which the lead was ingested

        either a portal or social media product'
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/appraisal/appraisalSource
    ConfidenceBand:
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/property/estimate
    Contact:
      type: object
      properties:
        email:
          type: string
          x-go-name: Email
        firstName:
          type: string
          x-go-name: FirstName
        lastName:
          type: string
          x-go-name: LastName
        phoneNumber:
          type: string
          x-go-name: PhoneNumber
        preferences:
          $ref: '#/components/schemas/ContactPreferences'
      x-go-name: View
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/contact
    ContactMethod:
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/contact/contactMethod
    ContactPreferences:
      type: object
      properties:
        method:
          $ref: '#/components/schemas/ContactMethod'
        time:
          $ref: '#/components/schemas/TimePreference'
      x-go-name: PreferencesView
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/contact
    Energy:
      type: object
      properties:
        efficiency:
          type: integer
          format: uint8
          x-go-name: Efficiency
        rating:
          type: string
          x-go-name: Rating
      x-go-name: EnergyView
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/property
    Estimate:
      type: object
      properties:
        confidence:
          type: integer
          format: int64
          x-go-name: Confidence
        confidenceBand:
          $ref: '#/components/schemas/ConfidenceBand'
        lowerRange:
          type: integer
          format: int64
          x-go-name: LowerRange
        upperRange:
          type: integer
          format: int64
          x-go-name: UpperRange
        value:
          type: integer
          format: int64
          x-go-name: Value
      x-go-name: View
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/property/estimate
    ImageView:
      type: object
      properties:
        cdnUrl:
          type: string
          x-go-name: CdnURL
        filename:
          type: string
          x-go-name: Filename
        original:
          type: string
          x-go-name: Original
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/listing
    LifeCycleStatus:
      description: LifeCycleStatus is an enum representing the current status of the listing at the time
        of the enquiry
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/listing/lifeCycleStatus
    ListingDetails:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/ListingDetailsAddress'
        bathrooms:
          type: integer
          format: int32
          x-go-name: Bathrooms
        bedrooms:
          type: integer
          format: int32
          x-go-name: Bedrooms
        branchId:
          type: integer
          format: int64
          x-go-name: BranchID
        estimate:
          $ref: '#/components/schemas/Estimate'
        id:
          type: string
          x-go-name: ID
        images:
          type: array
          items:
            $ref: '#/components/schemas/ImageView'
          x-go-name: Images
        lifeCycleStatus:
          $ref: '#/components/schemas/LifeCycleStatus'
        pricing:
          $ref: '#/components/schemas/Pricing'
        propertyId:
          type: integer
          format: int32
          x-go-name: PropertyID
        propertyType:
          type: string
          enum:
          - PROPERTY_TYPE_UNSPECIFIED
          - PROPERTY_TYPE_FLAT
          - PROPERTY_TYPE_DETACHED
          - PROPERTY_TYPE_SEMI_DETACHED
          - PROPERTY_TYPE_TERRACED
          - PROPERTY_TYPE_END_TERRACE
          - PROPERTY_TYPE_DETACHED_BUNGALOW
          - PROPERTY_TYPE_BUNGALOW
          - PROPERTY_TYPE_STUDIO
          - PROPERTY_TYPE_MAISONETTE
          - PROPERTY_TYPE_TOWN_HOUSE
          - PROPERTY_TYPE_COTTAGE
          - PROPERTY_TYPE_SEMI_DETACHED_BUNGALOW
          - PROPERTY_TYPE_LAND
          - PROPERTY_TYPE_PARK_HOME
          - PROPERTY_TYPE_LINK_DETACHED
          - PROPERTY_TYPE_BARN_CONVERSION
          - PROPERTY_TYPE_MEWS
          - PROPERTY_TYPE_CHALET
          - PROPERTY_TYPE_VILLA
          - PROPERTY_TYPE_FARMHOUSE
          - PROPERTY_TYPE_COUNTRY_HOUSE
          - PROPERTY_TYPE_TERRACED_BUNGALOW
          - PROPERTY_TYPE_PARKING
          - PROPERTY_TYPE_BLOCK_OF_FLATS
          - PROPERTY_TYPE_EQUESTRIAN
          - PROPERTY_TYPE_LODGE
          - PROPERTY_TYPE_HOUSEBOAT
          - PROPERTY_TYPE_FARM
          - PROPERTY_TYPE_CHATEAU
          - PROPERTY_TYPE_FARM_BARN
          - PROPERTY_TYPE_FINCA
          - PROPERTY_TYPE_HOTEL
          - PROPERTY_TYPE_INDUSTRIAL
          - PROPERTY_TYPE_JUNK
          - PROPERTY_TYPE_LEISURE
          - PROPERTY_TYPE_LIGHT_INDUSTRIAL
          - PROPERTY_TYPE_LONGERE
          - PROPERTY_TYPE_OFFICE
          - PROPERTY_TYPE_PUB_BAR
          - PROPERTY_TYPE_RESTAURANT
          - PROPERTY_TYPE_RETAIL
          - PROPERTY_TYPE_RIAD
          - PROPERTY_TYPE_WAREHOUSE
          - PROPERTY_TYPE_MID_TERRACE
          x-go-enum-desc: 'PROPERTY_TYPE_UNSPECIFIED Unspecified

            PROPERTY_TYPE_FLAT Flat

            PROPERTY_TYPE_DETACHED Detached

            PROPERTY_TYPE_SEMI_DETACHED SemiDetached

            PROPERTY_TYPE_TERRACED Terraced

            PROPERTY_TYPE_END_TERRACE EndTerrace

            PROPERTY_TYPE_DETACHED_BUNGALOW DetachedBungalow

            PROPERTY_TYPE_BUNGALOW Bungalow

            PROPERTY_TYPE_STUDIO Studio

            PROPERTY_TYPE_MAISONETTE Maisonette

            PROPERTY_TYPE_TOWN_HOUSE TownHouse

            PROPERTY_TYPE_COTTAGE Cottage

            PROPERTY_TYPE_SEMI_DETACHED_BUNGALOW SemiDetachedBungalow

            PROPERTY_TYPE_LAND Land

            PROPERTY_TYPE_PARK_HOME ParkHome

            PROPERTY_TYPE_LINK_DETACHED LinkDetached

            PROPERTY_TYPE_BARN_CONVERSION BarnConversion

            PROPERTY_TYPE_MEWS Mews

            PROPERTY_TYPE_CHALET Chalet

            PROPERTY_TYPE_VILLA Villa

            PROPERTY_TYPE_FARMHOUSE Farmhouse

            PROPERTY_TYPE_COUNTRY_HOUSE CountryHouse

            PROPERTY_TYPE_TERRACED_BUNGALOW TerracedBungalow

            PROPERTY_TYPE_PARKING Parking

            PROPERTY_TYPE_BLOCK_OF_FLATS BlockOfFlats

            PROPERTY_TYPE_EQUESTRIAN Equestrian

            PROPERTY_TYPE_LODGE Lodge

            PROPERTY_TYPE_HOUSEBOAT Houseboat

            PROPERTY_TYPE_FARM Farm

            PROPERTY_TYPE_CHATEAU Chateau

            PROPERTY_TYPE_FARM_BARN FarmBarn

            PROPERTY_TYPE_FINCA Finca

            PROPERTY_TYPE_HOTEL Hotel

            PROPERTY_TYPE_INDUSTRIAL Industrial

            PROPERTY_TYPE_JUNK Junk

            PROPERTY_TYPE_LEISURE Leisure

            PROPERTY_TYPE_LIGHT_INDUSTRIAL LightIndustrial

            PROPERTY_TYPE_LONGERE Longere

            PROPERTY_TYPE_OFFICE Office

            PROPERTY_TYPE_PUB_BAR PubBar

            PROPERTY_TYPE_RESTAURANT Restaurant

            PROPERTY_TYPE_RETAIL Retail

            PROPERTY_TYPE_RIAD Riad

            PROPERTY_TYPE_WAREHOUSE Warehouse

            PROPERTY_TYPE_MID_TERRACE MidTerrace'
          x-go-name: PropertyType
        receptions:
          type: integer
          format: int32
          x-go-name: Receptions
        sourceId:
          type: string
          x-go-name: SourceID
        uprn:
          type: integer
          format: int64
          x-go-name: UPRN
        url:
          type: string
          x-go-name: URL
      x-go-name: View
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/listing
    ListingDetailsAddress:
      type: object
      properties:
        countryCode:
          type: string
          x-go-name: CountryCode
        locality:
          type: string
          x-go-name: Locality
        postcode:
          type: string
          x-go-name: Postcode
        propertyNumberOrName:
          type: string
          x-go-name: PropertyNumberOrName
        streetName:
          type: string
          x-go-name: StreetName
        townOrCity:
          type: string
          x-go-name: TownOrCity
      x-go-name: AddressView
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/listing
    LocationView:
      type: object
      properties:
        alias:
          type: string
          x-go-name: Alias
        area:
          type: string
          x-go-name: Area
        areaStreet:
          type: string
          x-go-name: AreaStreet
        country:
          type: string
          x-go-name: Country
        countryCode:
          type: string
          x-go-name: CountryCode
        countyArea:
          type: string
          x-go-name: CountyArea
        district:
          type: string
          x-go-name: District
        incode:
          type: string
          x-go-name: Incode
        outcode:
          type: string
          x-go-name: Outcode
        postTown:
          type: string
          x-go-name: PostTown
        postalArea:
          type: string
          x-go-name: PostalArea
        region:
          type: string
          x-go-name: Region
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/searchCriteria
    Pricing:
      type: object
      properties:
        currencyCode:
          type: string
          x-go-name: CurrencyCode
        price:
          type: number
          format: float
          x-go-name: Price
        rentFrequency:
          $ref: '#/components/schemas/RentFrequency'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
      x-go-name: PricingView
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/listing
    Property:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/PropertyDetailsAddress'
        bathrooms:
          type: integer
          format: int64
          x-go-name: Bathrooms
        bedrooms:
          type: integer
          format: int64
          x-go-name: Bedrooms
        energy:
          $ref: '#/components/schemas/Energy'
        estimate:
          $ref: '#/components/schemas/Estimate'
        floorArea:
          type: integer
          format: int64
          x-go-name: FloorArea
        lastSalePrice:
          type: number
          format: float
          x-go-name: LastSalePrice
        latitude:
          type: number
          format: double
          x-go-name: Latitude
        longitude:
          type: number
          format: double
          x-go-name: Longitude
        propertyId:
          type: string
          x-go-name: PropertyID
        propertyType:
          type: string
          enum:
          - PROPERTY_TYPE_UNSPECIFIED
          - PROPERTY_TYPE_FLAT
          - PROPERTY_TYPE_DETACHED
          - PROPERTY_TYPE_SEMI_DETACHED
          - PROPERTY_TYPE_TERRACED
          - PROPERTY_TYPE_END_TERRACE
          - PROPERTY_TYPE_DETACHED_BUNGALOW
          - PROPERTY_TYPE_BUNGALOW
          - PROPERTY_TYPE_STUDIO
          - PROPERTY_TYPE_MAISONETTE
          - PROPERTY_TYPE_TOWN_HOUSE
          - PROPERTY_TYPE_COTTAGE
          - PROPERTY_TYPE_SEMI_DETACHED_BUNGALOW
          - PROPERTY_TYPE_LAND
          - PROPERTY_TYPE_PARK_HOME
          - PROPERTY_TYPE_LINK_DETACHED
          - PROPERTY_TYPE_BARN_CONVERSION
          - PROPERTY_TYPE_MEWS
          - PROPERTY_TYPE_CHALET
          - PROPERTY_TYPE_VILLA
          - PROPERTY_TYPE_FARMHOUSE
          - PROPERTY_TYPE_COUNTRY_HOUSE
          - PROPERTY_TYPE_TERRACED_BUNGALOW
          - PROPERTY_TYPE_PARKING
          - PROPERTY_TYPE_BLOCK_OF_FLATS
          - PROPERTY_TYPE_EQUESTRIAN
          - PROPERTY_TYPE_LODGE
          - PROPERTY_TYPE_HOUSEBOAT
          - PROPERTY_TYPE_FARM
          - PROPERTY_TYPE_CHATEAU
          - PROPERTY_TYPE_FARM_BARN
          - PROPERTY_TYPE_FINCA
          - PROPERTY_TYPE_HOTEL
          - PROPERTY_TYPE_INDUSTRIAL
          - PROPERTY_TYPE_JUNK
          - PROPERTY_TYPE_LEISURE
          - PROPERTY_TYPE_LIGHT_INDUSTRIAL
          - PROPERTY_TYPE_LONGERE
          - PROPERTY_TYPE_OFFICE
          - PROPERTY_TYPE_PUB_BAR
          - PROPERTY_TYPE_RESTAURANT
          - PROPERTY_TYPE_RETAIL
          - PROPERTY_TYPE_RIAD
          - PROPERTY_TYPE_WAREHOUSE
          - PROPERTY_TYPE_MID_TERRACE
          x-go-enum-desc: 'PROPERTY_TYPE_UNSPECIFIED Unspecified

            PROPERTY_TYPE_FLAT Flat

            PROPERTY_TYPE_DETACHED Detached

            PROPERTY_TYPE_SEMI_DETACHED SemiDetached

            PROPERTY_TYPE_TERRACED Terraced

            PROPERTY_TYPE_END_TERRACE EndTerrace

            PROPERTY_TYPE_DETACHED_BUNGALOW DetachedBungalow

            PROPERTY_TYPE_BUNGALOW Bungalow

            PROPERTY_TYPE_STUDIO Studio

            PROPERTY_TYPE_MAISONETTE Maisonette

            PROPERTY_TYPE_TOWN_HOUSE TownHouse

            PROPERTY_TYPE_COTTAGE Cottage

            PROPERTY_TYPE_SEMI_DETACHED_BUNGALOW SemiDetachedBungalow

            PROPERTY_TYPE_LAND Land

            PROPERTY_TYPE_PARK_HOME ParkHome

            PROPERTY_TYPE_LINK_DETACHED LinkDetached

            PROPERTY_TYPE_BARN_CONVERSION BarnConversion

            PROPERTY_TYPE_MEWS Mews

            PROPERTY_TYPE_CHALET Chalet

            PROPERTY_TYPE_VILLA Villa

            PROPERTY_TYPE_FARMHOUSE Farmhouse

            PROPERTY_TYPE_COUNTRY_HOUSE CountryHouse

            PROPERTY_TYPE_TERRACED_BUNGALOW TerracedBungalow

            PROPERTY_TYPE_PARKING Parking

            PROPERTY_TYPE_BLOCK_OF_FLATS BlockOfFlats

            PROPERTY_TYPE_EQUESTRIAN Equestrian

            PROPERTY_TYPE_LODGE Lodge

            PROPERTY_TYPE_HOUSEBOAT Houseboat

            PROPERTY_TYPE_FARM Farm

            PROPERTY_TYPE_CHATEAU Chateau

            PROPERTY_TYPE_FARM_BARN FarmBarn

            PROPERTY_TYPE_FINCA Finca

            PROPERTY_TYPE_HOTEL Hotel

            PROPERTY_TYPE_INDUSTRIAL Industrial

            PROPERTY_TYPE_JUNK Junk

            PROPERTY_TYPE_LEISURE Leisure

            PROPERTY_TYPE_LIGHT_INDUSTRIAL LightIndustrial

            PROPERTY_TYPE_LONGERE Longere

            PROPERTY_TYPE_OFFICE Office

            PROPERTY_TYPE_PUB_BAR PubBar

            PROPERTY_TYPE_RESTAURANT Restaurant

            PROPERTY_TYPE_RETAIL Retail

            PROPERTY_TYPE_RIAD Riad

            PROPERTY_TYPE_WAREHOUSE Warehouse

            PROPERTY_TYPE_MID_TERRACE MidTerrace'
          x-go-name: PropertyType
        receptions:
          type: integer
          format: int64
          x-go-name: Receptions
        tenure:
          $ref: '#/components/schemas/Tenure'
        uprn:
          type: integer
          format: int64
          x-go-name: UPRN
      x-go-name: View
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/property
    PropertyDetailsAddress:
      type: object
      properties:
        county:
          type: string
          x-go-name: County
        line1:
          type: string
          x-go-name: Line1
        line2:
          type: string
          x-go-name: Line2
        line3:
          type: string
          x-go-name: Line3
        postcode:
          type: string
          x-go-name: Postcode
        town:
          type: string
          x-go-name: Town
      x-go-name: AddressView
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/property
    RentFrequency:
      description: RentFrequency is an enum representing how often the rent is required for a listing
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/listing/rentFrequency
    SearchCriteria:
      type: object
      properties:
        location:
          $ref: '#/components/schemas/LocationView'
        maximumBedrooms:
          type: integer
          format: int32
          x-go-name: MaximumBedrooms
        maximumPrice:
          type: number
          format: double
          x-go-name: MaximumPrice
        minimumBedrooms:
          type: integer
          format: int32
          x-go-name: MinimumBedrooms
        minimumPrice:
          type: number
          format: double
          x-go-name: MinimumPrice
        priceFrequency:
          $ref: '#/components/schemas/RentFrequency'
        propertySubType:
          type: string
          x-go-name: PropertySubType
        propertyType:
          type: string
          enum:
          - PROPERTY_TYPE_UNSPECIFIED
          - PROPERTY_TYPE_FLAT
          - PROPERTY_TYPE_DETACHED
          - PROPERTY_TYPE_SEMI_DETACHED
          - PROPERTY_TYPE_TERRACED
          - PROPERTY_TYPE_END_TERRACE
          - PROPERTY_TYPE_DETACHED_BUNGALOW
          - PROPERTY_TYPE_BUNGALOW
          - PROPERTY_TYPE_STUDIO
          - PROPERTY_TYPE_MAISONETTE
          - PROPERTY_TYPE_TOWN_HOUSE
          - PROPERTY_TYPE_COTTAGE
          - PROPERTY_TYPE_SEMI_DETACHED_BUNGALOW
          - PROPERTY_TYPE_LAND
          - PROPERTY_TYPE_PARK_HOME
          - PROPERTY_TYPE_LINK_DETACHED
          - PROPERTY_TYPE_BARN_CONVERSION
          - PROPERTY_TYPE_MEWS
          - PROPERTY_TYPE_CHALET
          - PROPERTY_TYPE_VILLA
          - PROPERTY_TYPE_FARMHOUSE
          - PROPERTY_TYPE_COUNTRY_HOUSE
          - PROPERTY_TYPE_TERRACED_BUNGALOW
          - PROPERTY_TYPE_PARKING
          - PROPERTY_TYPE_BLOCK_OF_FLATS
          - PROPERTY_TYPE_EQUESTRIAN
          - PROPERTY_TYPE_LODGE
          - PROPERTY_TYPE_HOUSEBOAT
          - PROPERTY_TYPE_FARM
          - PROPERTY_TYPE_CHATEAU
          - PROPERTY_TYPE_FARM_BARN
          - PROPERTY_TYPE_FINCA
          - PROPERTY_TYPE_HOTEL
          - PROPERTY_TYPE_INDUSTRIAL
          - PROPERTY_TYPE_JUNK
          - PROPERTY_TYPE_LEISURE
          - PROPERTY_TYPE_LIGHT_INDUSTRIAL
          - PROPERTY_TYPE_LONGERE
          - PROPERTY_TYPE_OFFICE
          - PROPERTY_TYPE_PUB_BAR
          - PROPERTY_TYPE_RESTAURANT
          - PROPERTY_TYPE_RETAIL
          - PROPERTY_TYPE_RIAD
          - PROPERTY_TYPE_WAREHOUSE
          - PROPERTY_TYPE_MID_TERRACE
          x-go-enum-desc: 'PROPERTY_TYPE_UNSPECIFIED Unspecified

            PROPERTY_TYPE_FLAT Flat

            PROPERTY_TYPE_DETACHED Detached

            PROPERTY_TYPE_SEMI_DETACHED SemiDetached

            PROPERTY_TYPE_TERRACED Terraced

            PROPERTY_TYPE_END_TERRACE EndTerrace

            PROPERTY_TYPE_DETACHED_BUNGALOW DetachedBungalow

            PROPERTY_TYPE_BUNGALOW Bungalow

            PROPERTY_TYPE_STUDIO Studio

            PROPERTY_TYPE_MAISONETTE Maisonette

            PROPERTY_TYPE_TOWN_HOUSE TownHouse

            PROPERTY_TYPE_COTTAGE Cottage

            PROPERTY_TYPE_SEMI_DETACHED_BUNGALOW SemiDetachedBungalow

            PROPERTY_TYPE_LAND Land

            PROPERTY_TYPE_PARK_HOME ParkHome

            PROPERTY_TYPE_LINK_DETACHED LinkDetached

            PROPERTY_TYPE_BARN_CONVERSION BarnConversion

            PROPERTY_TYPE_MEWS Mews

            PROPERTY_TYPE_CHALET Chalet

            PROPERTY_TYPE_VILLA Villa

            PROPERTY_TYPE_FARMHOUSE Farmhouse

            PROPERTY_TYPE_COUNTRY_HOUSE CountryHouse

            PROPERTY_TYPE_TERRACED_BUNGALOW TerracedBungalow

            PROPERTY_TYPE_PARKING Parking

            PROPERTY_TYPE_BLOCK_OF_FLATS BlockOfFlats

            PROPERTY_TYPE_EQUESTRIAN Equestrian

            PROPERTY_TYPE_LODGE Lodge

            PROPERTY_TYPE_HOUSEBOAT Houseboat

            PROPERTY_TYPE_FARM Farm

            PROPERTY_TYPE_CHATEAU Chateau

            PROPERTY_TYPE_FARM_BARN FarmBarn

            PROPERTY_TYPE_FINCA Finca

            PROPERTY_TYPE_HOTEL Hotel

            PROPERTY_TYPE_INDUSTRIAL Industrial

            PROPERTY_TYPE_JUNK Junk

            PROPERTY_TYPE_LEISURE Leisure

            PROPERTY_TYPE_LIGHT_INDUSTRIAL LightIndustrial

            PROPERTY_TYPE_LONGERE Longere

            PROPERTY_TYPE_OFFICE Office

            PROPERTY_TYPE_PUB_BAR PubBar

            PROPERTY_TYPE_RESTAURANT Restaurant

            PROPERTY_TYPE_RETAIL Retail

            PROPERTY_TYPE_RIAD Riad

            PROPERTY_TYPE_WAREHOUSE Warehouse

            PROPERTY_TYPE_MID_TERRACE MidTerrace'
          x-go-name: PropertyType
        radius:
          type: number
          format: double
          x-go-name: Radius
      x-go-name: View
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/searchCriteria
    Tenure:
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/property/attributes
    TimePreference:
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/contact/timePreference
    TransactionType:
      description: TransactionType is an enum representing the type financial transaction that would occur
        for a given listing
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/zoopla/listing/transactionType
    Urgency:
      type: string
      x-go-package: gitlab.com/zoopla/internal/zoopla-software/leads/lead-services/internal/schemas/enquiry/urgency
    ViewingTim

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alto-vebra/refs/heads/main/asyncapi/alto-vebra-zoopla-leads-push-asyncapi.yml