Alto (Vebra / Zoopla) Contacts API

The Contacts API from Alto (Vebra / Zoopla) — 13 operation(s) for contacts.

Operations 18

GET /contacts Get Contact(s) by Id(s) #
POST /contacts Create Contact #
GET /contacts/{contactId} Get Person(s) by Contact Id #
PATCH /contacts/{contactId} Update Contact by Id #
POST /contacts/{contactId}/applicant-requirements Create Applicant Requirement #
PATCH /contacts/{contactId}/applicant-requirements/{requirementId} Update Applicant Requirement by Id #
GET /contacts/{contactId}/bank-accounts Get Bank Accounts by Contact Id #
POST /contacts/{contactId}/forwarding-address Create Contact Forwarding Address #
GET /contacts/{contactId}/persons Get Person(s) by Contact Id #
PATCH /contacts/{contactId}/persons/{personId} Update Person by Contact Id #
GET /contacts/{contactId}/persons/{personId} Get Person by Contact Id #
GET /contacts/{contactId}/preferences Get Marketing Preferences by Contact Id #
POST /contacts/{contactId}/preferences Update Contact Marketing Preferences
GET /contacts/{contactId}/relationship Get Relationships by Contact Id #
POST /contacts/{contactId}/relationship Create Contact Relationship #
DELETE /contacts/{contactId}/relationship/{contactRelationshipId} Delete Contact Relationship #
GET /contacts/all Get All Contacts #
GET /contacts/search Search All Contacts

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-contacts-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-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Alto Contacts 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: Contacts
paths:
  /contacts:
    get:
      tags:
      - Contacts
      summary: Get Contact(s) by Id(s)
      description: See glossary for definition of <a href="https://developers.zoopla.co.uk/docs/glossary#person">Person</a> and <a href="https://developers.zoopla.co.uk/docs/glossary#contact">Contact</a>.
      operationId: GetContactsById
      parameters:
      - name: id
        in: query
        description: The IDs for the Contacts being requested.
        schema:
          maxItems: 50
          type: array
          items:
            type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Contact returned for Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.Contact'
        '400':
          description: Validation error e.g. invalid Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts
    post:
      tags:
      - Contacts
      summary: Create Contact
      operationId: CreateContact
      parameters:
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactRequest'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactRequest'
      responses:
        '201':
          description: Contact created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.Contact'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '409':
          description: Duplicate contacts found. Check Location response headers for URI.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts
  /contacts/{contactId}:
    get:
      tags:
      - Contacts
      summary: Get Person(s) by Contact Id
      description: See glossary for definition of <a href="https://developers.zoopla.co.uk/docs/glossary#person">Person</a> and <a href="https://developers.zoopla.co.uk/docs/glossary#contact">Contact</a>.
      operationId: GetContact
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Contact returned for Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.Contact'
        '400':
          description: Validation error e.g. invalid Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Contact not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts-contactid
    patch:
      tags:
      - Contacts
      summary: Update Contact by Id
      description: See glossary for definition of <a href="https://developers.zoopla.co.uk/docs/glossary#contact">Contact</a>.
      operationId: UpdateContact
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: integer
          format: int32
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      requestBody:
        description: ContactPatchDocument payload with the intended changes.
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.Contacts.Api.Models.Requests.PatchContactRequest'
      responses:
        '200':
          description: Returns the updated Contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.Contact'
        '400':
          description: Invalid Patch request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Contact not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts-contactid
  /contacts/{contactId}/applicant-requirements:
    post:
      tags:
      - Contacts
      summary: Create Applicant Requirement
      operationId: CreateApplicantRequirement
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: integer
          format: int32
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      requestBody:
        description: The payload describing the requirements.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostApplicantRequirementRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostApplicantRequirementRequest'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostApplicantRequirementRequest'
      responses:
        '201':
          description: Contact created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.ApplicantRequirement'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Applicant not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:post-contacts-contactid-applicant-requirements
  /contacts/{contactId}/applicant-requirements/{requirementId}:
    patch:
      tags:
      - Contacts
      summary: Update Applicant Requirement by Id
      operationId: UpdateApplicantRequirement
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: string
      - name: requirementId
        in: path
        description: The unique identifier for the Applicant Requirement.
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      requestBody:
        description: ApplicantRequirement patch request payload with the intended changes.
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.Contacts.Api.Models.Requests.PatchApplicantRequirement'
      responses:
        '200':
          description: Returns the updated Applicant Requirement.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.PatchApplicantRequirement'
        '400':
          description: Invalid Patch request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Applicant not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:patch-contacts-contactid-applicant-requirements-requirementid
  /contacts/{contactId}/bank-accounts:
    get:
      tags:
      - Contacts
      summary: Get Bank Accounts by Contact Id
      operationId: ListBankAccounts
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Bank accounts returned for Contact Id.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alto.Contacts.Core.Models.Domain.BankAccount'
        '204':
          description: No bank accounts found for Contact Id.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alto.Contacts.Core.Models.Domain.BankAccount'
        '400':
          description: Validation error e.g. invalid Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Contact not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/read:contact_bank_accounts
        - alto/route:get-contacts-contactid-bank-accounts
  /contacts/{contactId}/forwarding-address:
    post:
      tags:
      - Contacts
      summary: Create Contact Forwarding Address
      operationId: CreateForwardingAddress
      parameters:
      - name: contactId
        in: path
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostForwardingAddressRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostForwardingAddressRequest'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostForwardingAddressRequest'
      responses:
        '201':
          description: Contact forwarding address created.
          content:
            application/json:
              schema:
                type: integer
                format: int32
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:post-contacts-contactid-forwarding-address
  /contacts/{contactId}/persons:
    get:
      tags:
      - Contacts
      summary: Get Person(s) by Contact Id
      description: See glossary for definition of <a href="https://developers.zoopla.co.uk/docs/glossary#person">Person</a> and <a href="https://developers.zoopla.co.uk/docs/glossary#contact">Contact</a>.
      operationId: GetPersons
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Contact returned for Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.Contact'
        '400':
          description: Validation error e.g. invalid Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Contact not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts-contactid-persons
  /contacts/{contactId}/persons/{personId}:
    patch:
      tags:
      - Contacts
      summary: Update Person by Contact Id
      description: See glossary for definition of <a href="https://developers.zoopla.co.uk/docs/glossary#person">Person</a>.
      operationId: UpdatePerson
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: string
      - name: personId
        in: path
        description: The Person identifier within the Contact.
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      requestBody:
        description: PersonPatchDocument payload with the intended changes.
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/SystemTextJsonPatch.JsonPatchDocument1_Alto.Contacts.Api.Models.Requests.PatchPersonRequest'
      responses:
        '200':
          description: Returns the updated Person.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.PatchPersonResponse'
        '400':
          description: Invalid Patch request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Contact or Person not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:patch-contacts-contactid-persons-personid
    get:
      tags:
      - Contacts
      summary: Get Person by Contact Id
      description: See glossary for definition of <a href="https://developers.zoopla.co.uk/docs/glossary#person">Person</a>.
      operationId: GetPerson
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: string
      - name: personId
        in: path
        description: The Person identifier within the Contact.
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Person returned for Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.PersonSingle'
        '400':
          description: Validation error e.g. invalid Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Person not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:patch-contacts-contactid-persons-personid
  /contacts/{contactId}/preferences:
    get:
      tags:
      - Contacts
      summary: Get Marketing Preferences by Contact Id
      description: See glossary for definition of <a href="https://developers.zoopla.co.uk/docs/glossary#person">Person</a> and <a href="https://developers.zoopla.co.uk/docs/glossary#contact">Contact</a>.
      operationId: GetPreferences
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Contact Consent Preferences returned for ContactId.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alto.Internal.DomainModels.Contacts.ContactConsentPreference'
        '400':
          description: Validation error e.g. invalid ContactId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:post-contacts-contactid-preferences
    post:
      tags:
      - Contacts
      summary: Update Contact Marketing Preferences
      description: Update contact marketing preferences, changing the opt-in status for each preference type and optionally setting notes.
      parameters:
      - name: contactId
        in: path
        description: The unique identifier for the Contact.
        required: true
        schema:
          type: integer
          format: int32
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      requestBody:
        description: JSON array of preference changes.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactConsentPreferencesRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactConsentPreferencesRequest'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactConsentPreferencesRequest'
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:post-contacts-contactid-preferences
  /contacts/{contactId}/relationship:
    get:
      tags:
      - Contacts
      summary: Get Relationships by Contact Id
      description: Get all relationships for a contact, such as guarantors and forwarding addresses.
      operationId: GetContactRelationship
      parameters:
      - name: contactId
        in: path
        required: true
        schema:
          type: string
      - name: relationshipType
        in: query
        schema:
          type: array
          items:
            type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Relationship returned for Contact Id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.GetContactRelationshipResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts-contactid-relationship
    post:
      tags:
      - Contacts
      summary: Create Contact Relationship
      description: Create a relationship between a contact and a non-marketable relationship contact, such as a guarantor.
      operationId: CreateContactRelationship
      parameters:
      - name: contactId
        in: path
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactRelationshipRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactRelationshipRequest'
          application/*+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Alto.Contacts.Api.Models.Requests.PostContactRelationshipRequest'
      responses:
        '201':
          description: Contact relationship created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.ContactRelationshipResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
        '409':
          description: Duplicate contact relationships found. Check Location response headers for URI.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts-contactid-relationship
  /contacts/{contactId}/relationship/{contactRelationshipId}:
    delete:
      tags:
      - Contacts
      summary: Delete Contact Relationship
      description: Delete a relationship between a contact and a non-marketable relationship contact, such as a guarantor.
      operationId: DeleteContactRelationship
      parameters:
      - name: contactId
        in: path
        required: true
        schema:
          type: string
      - name: contactRelationshipId
        in: path
        required: true
        schema:
          type: string
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Contact relationship deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.ContactRelationshipResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:delete-contacts-contactid-relationship-contactrelationshipid
  /contacts/all:
    get:
      tags:
      - Contacts
      summary: Get All Contacts
      operationId: GetAllContacts
      parameters:
      - name: active
        in: query
        description: Filter only active or non-active contacts.
        schema:
          type: boolean
          example: true
        example: true
      - name: category
        in: query
        description: Filters contacts by the category of the contact.
        schema:
          enum:
          - Unknown
          - Client
          - Solicitor
          - BuildingSociety
          - Bank
          - Publication
          - EstateAgent
          - ManagingAgent
          - Developer
          - Builder
          - Utility
          - Service
          - PreviousClient
          - Miscellaneous
          - FinancialAdvisor
          - Maintenance
          - OnSiteSales
          - ExternalPrinter
          - OtherCategory1
          - EstateAgentLocal
          - Surveyor
          - Supplier
          - ContactRelationship
          - Accountant
          type: string
          example: Client
        example: Client
      - name: persona
        in: query
        description: 'Filters contacts by persona within the Contact category of Client.

          A contact is included in the response if they match any of the specified personas.'
        schema:
          type: array
          items:
            enum:
            - Applicant
            - Vendor
            - Landlord
            - Tenant
            type: string
      - name: next-token
        in: query
        description: The token for the next page of results.
        schema:
          type: string
      - name: max-results
        in: query
        description: The maximum number of results to return. The default value is 50, and the maximum value is 250
        schema:
          type: integer
          format: int32
      - name: created-from
        in: query
        description: The start date for by created date.
        schema:
          type: string
          format: date-time
      - name: created-to
        in: query
        description: The end date for by created date.
        schema:
          type: string
          format: date-time
      - name: modified-from
        in: query
        description: The start date for by modified date.
        schema:
          type: string
          format: date-time
      - name: modified-to
        in: query
        description: The end date for by modified date.
        schema:
          type: string
          format: date-time
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Contacts matching the query returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Services.SDK.Pagination.PagedResponse1_Alto.Contacts.Api.Models.Responses.ContactListItem'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts-all
  /contacts/search:
    get:
      tags:
      - Contacts
      summary: Search All Contacts
      description: Search for all matching contacts and return a paginated list of results.
      parameters:
      - name: query
        in: query
        description: 'The query term to search for contacts. This can match on names, addresses, email addresses, phone numbers,

          unique identifiers, reference codes, and company names where applicable.'
        required: true
        schema:
          type: string
          example: 07700 900000
        example: 07700 900000
      - name: archived
        in: query
        description: Optional filter to only show or exclude archived contacts.
        schema:
          type: boolean
          example: false
        example: false
      - name: contact-type
        in: query
        description: Optional filter to only search a single contact type.
        schema:
          enum:
          - Unknown
          - Client
          - Solicitor
          - BuildingSociety
          - Bank
          - Publication
          - EstateAgent
          - ManagingAgent
          - Developer
          - Builder
          - Utility
          - Service
          - PreviousClient
          - Miscellaneous
          - FinancialAdvisor
          - Maintenance
          - OnSiteSales
          - ExternalPrinter
          - OtherCategory1
          - EstateAgentLocal
          - Surveyor
          - Supplier
          - Accountant
          type: string
          example: Client
        example: Client
      - name: next-token
        in: query
        description: The token for the next page of results.
        schema:
          type: string
      - name: max-results
        in: query
        description: The maximum number of results to return. The default value is 50, and the maximum value is 250
        schema:
          type: integer
          format: int32
      - name: created-from
        in: query
        description: The start date for by created date.
        schema:
          type: string
          format: date-time
      - name: created-to
        in: query
        description: The end date for by created date.
        schema:
          type: string
          format: date-time
      - name: modified-from
        in: query
        description: The start date for by modified date.
        schema:
          type: string
          format: date-time
      - name: modified-to
        in: query
        description: The end date for by modified date.
        schema:
          type: string
          format: date-time
      - name: AgencyRef
        in: header
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Services.SDK.Pagination.PagedResponse1_Alto.Contacts.Api.Models.Responses.ContactSearchItemResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alto.Api.Material.Models.Responses.ErrorsResponse'
      security:
      - appAuth:
        - alto/route:get-contacts-search
components:
  schemas:
    Alto.Services.SDK.Pagination.PagedResponse1_Alto.Contacts.Api.Models.Responses.ContactListItem:
      type: object
      properties:
        meta:
          allOf:
          - $ref: '#/components/schemas/Alto.Services.SDK.Pagination.Meta'
        items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Alto.Contacts.Api.Models.Responses.ContactListItem'
      additionalProperties: false
    Alto.Api.Material.Models.Responses.ErrorsResponse:
    

# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alto-vebra/refs/heads/main/openapi/alto-vebra-contacts-api-openapi.yml