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 AgencyTenancyWebhooksEventsLettingsSales 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