> ## Documentation Index
> Fetch the complete documentation index at: https://ai-api-docs.getbreezyapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List contacts



## OpenAPI

````yaml /openapi.public.json get /contacts
openapi: 3.1.1
info:
  title: Breezy Public API
  version: 1.0.0
  description: Curated Breezy customer API for user JWT and service API key clients.
servers:
  - url: https://ai-api.getbreezyapp.com/api/v1
    description: Production
security:
  - userJwtBearer: []
  - serviceApiKeyBearer: []
tags:
  - name: API Keys
    description: Create, list, reveal, and revoke service API keys.
  - name: Company Settings
    description: Read and update tenant company settings and service zones.
  - name: Contacts
    description: Read contacts and update customer attribution fields.
  - name: Service Requests
    description: Read and triage customer service requests.
  - name: Users
    description: Read public user identity and team user records.
  - name: Webhooks
    description: Create, update, rotate, and delete webhook endpoints.
paths:
  /contacts:
    get:
      tags:
        - Contacts
      summary: List contacts
      operationId: contacts.list
      parameters:
        - name: search
          in: query
          schema:
            type: string
          allowEmptyValue: true
          allowReserved: true
        - name: leadSourceId
          in: query
          schema:
            anyOf:
              - type: string
                pattern: ^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$
                description: Unique identifier (UUID)
              - type: array
                minItems: 1
                items:
                  type: string
                  pattern: ^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$
                  description: Unique identifier (UUID)
          style: deepObject
          explode: true
          allowEmptyValue: true
          allowReserved: true
        - name: sortBy
          in: query
          schema:
            enum:
              - createdAt
              - updatedAt
              - firstName
              - lastName
              - companyName
              - leadSourceName
              - email
              - phone
              - totalJobs
              - referenceNumber
            type: string
          allowEmptyValue: true
          allowReserved: true
        - name: sortDirection
          in: query
          schema:
            enum:
              - asc
              - desc
            type: string
          allowEmptyValue: true
          allowReserved: true
        - name: offset
          in: query
          schema:
            type: integer
            minimum: 0
            maximum: 9007199254740991
          allowEmptyValue: true
          allowReserved: true
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
          allowEmptyValue: true
          allowReserved: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          pattern: >-
                            ^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$
                          description: Unique identifier (UUID)
                        referenceNumber:
                          type: string
                        firstName:
                          anyOf:
                            - type: string
                            - type: 'null'
                        lastName:
                          anyOf:
                            - type: string
                            - type: 'null'
                        companyName:
                          anyOf:
                            - type: string
                            - type: 'null'
                        email:
                          anyOf:
                            - type: string
                            - type: 'null'
                        phoneNumber:
                          anyOf:
                            - type: string
                            - type: 'null'
                        leadSourceId:
                          anyOf:
                            - type: string
                              pattern: >-
                                ^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$
                              description: Unique identifier (UUID)
                            - type: 'null'
                        leadSourceName:
                          anyOf:
                            - type: string
                            - type: 'null'
                        totalJobs:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        webChatJobs:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        voiceCallJobs:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                        excludedFromReporting:
                          type: boolean
                        manuallyExcludedFromReporting:
                          type: boolean
                        createdAt:
                          type: string
                        updatedAt:
                          anyOf:
                            - type: string
                            - type: 'null'
                      required:
                        - id
                        - referenceNumber
                        - firstName
                        - lastName
                        - companyName
                        - email
                        - phoneNumber
                        - leadSourceId
                        - leadSourceName
                        - totalJobs
                        - webChatJobs
                        - voiceCallJobs
                        - excludedFromReporting
                        - manuallyExcludedFromReporting
                        - createdAt
                        - updatedAt
                      readOnly: true
                  total:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  offset:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  limit:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  hasMore:
                    type: boolean
                required:
                  - items
                  - total
                  - offset
                  - limit
                  - hasMore
                readOnly: true
      security:
        - userJwtBearer: []
        - serviceApiKeyBearer: []
components:
  securitySchemes:
    userJwtBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        User JWT bearer token. User principals can manage API keys and call
        tenant-scoped customer endpoints.
    serviceApiKeyBearer:
      type: http
      scheme: bearer
      bearerFormat: bzy_live_...
      description: >-
        Service API key bearer token beginning with bzy_live_. Service API keys
        use tenant scope and cannot manage API keys or call user-only endpoints.

````