Alto (Vebra / Zoopla) Partners API

The Partners API from Alto (Vebra / Zoopla) — 3 operation(s) for partners.

Operations 3

GET /opt-out-status/{linkedType}/{linkedId} Get the integration opt-out status #
GET /partners/integration Get the integration activation state #
POST /partners/integration/status Update the integration activation state #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/alto-vebra-partners-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

alto-vebra-partners-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Alto Partners API
  version: '1.0'
servers:
- url: https://api.alto.zoopladev.co.uk
  description: Sandbox
- url: https://api.alto.zoopla.co.uk
  description: Production
security:
- Bearer: []
tags:
- name: Partners
paths:
  /opt-out-status/{linkedType}/{linkedId}:
    get:
      tags:
      - Partners
      summary: Get the integration opt-out status
      description: Returns the opt-out status for a linked entity. The linked entity is identified by its type and id. Currently only Property entities are supported.
      operationId: GetIntegrationOptOutStatus
      parameters:
      - name: linkedType
        in: path
        description: The type of the linked entity (e.g. Property)
        required: true
        schema:
          type: string
      - name: linkedId
        in: path
        description: The id of the linked entity
        required: true
        schema:
          type: integer
          format: int64
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the opt-out status for the linked entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptOutResponse'
        '400':
          description: When the request does not contain the expected information
        '401':
          description: When access has not been granted
        '404':
          description: The linked entity is not found
      security:
      - appAuth:
        - alto/route:get-opt-out-status-linkedtype-linkedid
  /partners/integration:
    get:
      tags:
      - Partners
      summary: Get the integration activation state
      description: Get the current integration activation state for the authenticated partner and agency.
      parameters:
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the integration activation state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateResponse'
        '401':
          description: When access has not been granted
        '404':
          description: When the integration is not enabled for the agency
      security:
      - appAuth:
        - alto/route:get-partners-integration
      operationId: getPartnersIntegration
      x-operation-id-source: derived
  /partners/integration/status:
    post:
      tags:
      - Partners
      summary: Update the integration activation state
      description: Update the provider status for the calling partner's integrated services on the requested branches.
      parameters:
      - name: AgencyRef
        in: header
        description: A GUID required in the header of all API requests that grants access to an agent's data
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/UpdateIntegrationStatusRequest'
      responses:
        '200':
          description: Returns the applied provider status and the affected records
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateIntegrationStatusResponse'
        '400':
          description: When the request does not contain a recognised provider status
        '401':
          description: When access has not been granted
        '404':
          description: When no integrated services were found for the partner and requested branches
      security:
      - appAuth:
        - alto/route:post-partners-integration-status
      operationId: postPartnersIntegrationStatus
      x-operation-id-source: derived
components:
  schemas:
    ModelType:
      enum:
      - Unknown
      - Group
      - User
      - Role
      - Product
      - Transaction
      - SecurityRelationship
      - OtherSecurityResource
      - UserCode
      - ProductRole
      - Code
      - CodeText
      - Company
      - Brand
      - Branch
      - BranchUser
      - BranchBankAccount
      - BranchBrand
      - MatchArea
      - BranchMatchArea
      - CustomLocation
      - RecurringEvent
      - BatchList
      - BatchListItem
      - BatchTask
      - BatchTaskSchedule
      - BatchRun
      - BatchCounter
      - BatchError
      - BatchRunTask
      - GroupLock
      - GroupLockHistory
      - GroupReport
      - ServiceRequestHistory
      - SecuritySessionHistory
      - ValueDomain
      - Parameter
      - ParameterList
      - ParameterTable
      - ValueDomainItem
      - CodeList
      - ParameterValue
      - GroupCodeList
      - ParameterListValue
      - ParameterTableKey
      - ParameterTableKeyValue
      - ParameterTableValue
      - ReportStructure
      - ReportSection
      - ReportColumn
      - ReportFilter
      - Applicant
      - Property
      - Contact
      - PropertySale
      - PropertyRental
      - Room
      - Media
      - PostalAddress
      - Phone
      - EmailAddress
      - GroupBankAccount
      - GroupBankBranch
      - Vendor
      - Landlord
      - Tenant
      - Guarantor
      - Supplier
      - Tenancy
      - ThirdParty
      - ClientBankAccount
      - DefaultFee
      - FeeInstruction
      - DiaryEvent
      - DiaryEventParty
      - Viewing
      - PropertyValuation
      - PropertyMatchArea
      - PropertyFeature
      - RoomMedia
      - PropertyContact
      - ContactRelationship
      - Offer
      - AgreedOffer
      - Communication
      - DiaryEventRecurringSchedule
      - DiaryEventRecurringException
      - HistoryEvent
      - HistoryEventParty
      - ComparableProperty
      - PropertyBullet
      - PropertyLease
      - Requirement
      - RequirementItem
      - DiaryEventReminder
      - AuditedChange
      - CommunicationError
      - DocumentTemplate
      - FollowUp
      - MediaFile
      - PropertyInsurance
      - PropertyUploadIndex
      - SavedSearch
      - UploadRequest
      - KeySet
      - ReportConfiguration
      - ReportSchedule
      - Report
      - LetterRackItem
      - Timeline
      - FinancialTransaction
      - CashBookItem
      - Charge
      - PurchaseInvoice
      - PurchaseInvoiceItem
      - SalesInvoice
      - SalesInvoiceItem
      - PropertyRelationship
      - ReportConfigurationItem
      - PendingDocument
      - PendingDocumentParty
      - MarketingEvent
      - MarketingEventProperty
      - Help
      - ChainLink
      - ChainLinkParty
      - UnknownProperty
      - UnknownContact
      - Progression
      - ManyToMany
      - ManyToManyItem
      - SMSRequest
      - PropertyTemplate
      - AdvertRun
      - AdvertRunProperty
      - BoardManagement
      - StandardParagraph
      - LocalCacheItemContainer
      - ChainLinkSolicitor
      - DefaultExpense
      - MatchAreaGroup
      - GroupData
      - Lead
      - PropertyWebStatistic
      - ProductDocumentation
      - WebStatisticsProvider
      - PropertyMatchOn
      - ExternalEmailAttachment
      - Email
      - SavedMatchList
      - SavedMatchListRow
      - ImportExternalKeyMapping
      - EmailTemplate
      - SelfBillingInvoice
      - PropertyUtility
      - PaymentGroup
      - PaymentGroupProperty
      - TaxExemptionPeriod
      - LinkedAccount
      - TenancyUtilityReading
      - TenancyEvent
      - TenancyDepositProtection
      - TenancyMarketing
      - WorkOrder
      - WorkOrderEvent
      - PaymentMethod
      - ManagementDateAttribute
      - DepositScheme
      - BranchSequenceNumber
      - FrequencyAttribute
      - Accounts
      - SupplierService
      - ChargeToPost
      - AccountTransaction
      - BacsFileExtension
      - BacsFileContent
      - DestinationBankAccount
      - TransactionHistory
      - DefaultPMFee
      - OpeningBalance
      - HeldMoney
      - Retention
      - AuditItem
      - OpeningBalanceHistory
      - AccountingDocumentRequest
      - EffectivePermission
      - AccountingDocumentGenerationRun
      - ChargeTemplate
      - PropertyOwnership
      - FollowUpEvent
      - ReviewNotes
      - PendingReportRequest
      - SendGridEvent
      - BookingRequest
      - TdsCommunicationState
      - SigningRequest
      - ContactOwnedPropertiesCollection
      - MaintenanceRequest
      - AccountsExportProfile
      - AccountsDataExport
      - SecurityAttribute
      type: string
    OptOutResponse:
      type: object
      properties:
        linkedType:
          allOf:
          - $ref: '#/components/schemas/ModelType'
        linkedId:
          type: integer
          format: int64
        optOutStatus:
          allOf:
          - $ref: '#/components/schemas/EntityOptOutStatus'
        optedOutAt:
          type:
          - string
          - 'null'
          format: date-time
        optedOutBy:
          type:
          - integer
          - 'null'
          format: int32
      additionalProperties: false
    IntegrationStateResponse:
      type: object
      properties:
        integrationId:
          type: string
          format: uuid
        integrationName:
          type:
          - string
          - 'null'
        agencyName:
          type:
          - string
          - 'null'
        requestedBy:
          type:
          - string
          - 'null'
        agencyIntegrationData: {}
        branches:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/IntegrationBranchResponse'
      additionalProperties: false
    PartnerIntegrationStatus:
      enum:
      - Pending
      - Active
      type: string
    UpdateIntegrationStatusRequest:
      type: object
      properties:
        partnerIntegrationStatus:
          type:
          - string
          - 'null'
        partnerIntegrationStatusDescription:
          type:
          - string
          - 'null'
      additionalProperties: false
    EntityOptOutStatus:
      enum:
      - OptedIn
      - OptedOut
      type: string
    UpdateIntegrationStatusResponse:
      type: object
      properties:
        partnerIntegrationStatus:
          allOf:
          - $ref: '#/components/schemas/PartnerIntegrationStatus'
        partnerIntegrationStatusDescription:
          type:
          - string
          - 'null'
        partnerIntegrationStatusUpdatedOn:
          type: string
          format: date-time
        updatedRecordCount:
          type: integer
          format: int32
        updatedBranchIds:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int32
      additionalProperties: false
    IntegrationBranchResponse:
      type: object
      properties:
        branchRef:
          type:
          - string
          - 'null'
        branchId:
          type: integer
          format: int32
        branchName:
          type:
          - string
          - 'null'
        branchAddress:
          allOf:
          - $ref: '#/components/schemas/BranchAddressResponse'
        overridesAgencyIntegrationData:
          type: boolean
        integrationData: {}
      additionalProperties: false
    BranchAddressResponse:
      type: object
      properties:
        subDwelling:
          type:
          - string
          - 'null'
        nameNumber:
          type:
          - string
          - 'null'
        street:
          type:
          - string
          - 'null'
        locality:
          type:
          - string
          - 'null'
        town:
          type:
          - string
          - 'null'
        county:
          type:
          - string
          - 'null'
        postCode:
          type:
          - string
          - 'null'
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: apiKey
      description: Please enter JWT with Bearer into field
      name: Authorization
      in: header