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

# List contacts

> List current user contacts



## OpenAPI

````yaml /openapi.json get /contacts/
openapi: 3.1.0
info:
  title: Cal ID API
  description: >-
    API documentation for external developers integrating with Cal ID. This
    documentation is auto-generated from our OpenAPI specification and includes
    details on all available endpoints, request/response schemas, and
    authentication methods.


    Authentication is required for all endpoints and can be done using API key
    generated from the Cal ID dashboard under the `settings/developer/api-keys`
    page. Use the Authorization header with the Bearer scheme to authenticate
    your requests.


    Example:

    - API Key: `Authorization: Bearer calid_xxxxx`


    Note: To manage Team's resources use the Team's owner/admin API key
  version: 1.0.0
  contact:
    name: API Support
    email: support@cal.id
    url: https://cal.id
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.cal.id
    description: 'Production server '
security:
  - bearerAuth: []
tags:
  - name: Health
    description: Health check endpoints
  - name: Users
    description: User management endpoints
  - name: Event Types
    description: Event type management endpoints
  - name: Teams
    description: Team management endpoints
  - name: Team Event Types
    description: Event type management endpoints for teams
  - name: Team Memberships
    description: Membership management endpoints for teams
  - name: Team Schedules
    description: Schedule management endpoints for teams
  - name: Availability
    description: User availability management endpoints
  - name: Schedule
    description: User schedule management endpoints
  - name: Slots
    description: Available slots retrieval endpoints
  - name: Booking
    description: Event booking endpoints
paths:
  /contacts/:
    get:
      tags:
        - Contacts
      summary: List contacts
      description: List current user contacts
      operationId: list_contacts
      parameters:
        - schema:
            type: string
            example: jane
          in: query
          name: search
          required: false
          description: Search by name, email, phone, or notes.
        - schema:
            type: string
            enum:
              - name
              - email
              - createdAt
              - updatedAt
            default: name
            example: name
          in: query
          name: sortBy
          required: false
          description: Field used for sorting contacts.
        - schema:
            type: string
            enum:
              - asc
              - desc
            default: asc
            example: asc
          in: query
          name: sortDirection
          required: false
          description: Sort direction.
        - schema:
            type: string
            enum:
              - gt
              - lt
            example: gt
          in: query
          name: createdAtOperator
          required: false
          description: Comparison operator for createdAtValue.
        - schema:
            type: string
            format: date-time
            example: '2026-05-01T00:00:00.000Z'
          in: query
          name: createdAtValue
          required: false
          description: ISO datetime used with createdAtOperator.
        - schema:
            type: string
            enum:
              - gt
              - lt
            example: lt
          in: query
          name: lastMeetingOperator
          required: false
          description: Comparison operator for lastMeetingValue.
        - schema:
            type: string
            format: date-time
            example: '2026-05-01T00:00:00.000Z'
          in: query
          name: lastMeetingValue
          required: false
          description: ISO datetime used with lastMeetingOperator.
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
            example: 10
          in: query
          name: limit
          required: false
          description: Maximum number of contacts returned.
        - schema:
            type: integer
            minimum: 0
            default: 0
            example: 0
          in: query
          name: offset
          required: false
          description: Zero-based row offset.
      responses:
        '200':
          description: Contacts retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: object
                    properties:
                      rows:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            name:
                              type: string
                            email:
                              type: string
                            phone:
                              type: string
                            metadata:
                              anyOf:
                                - anyOf:
                                    - type: object
                                      additionalProperties: {}
                                    - type: array
                                      items: {}
                                    - type: string
                                    - type: number
                                    - type: boolean
                                - type: 'null'
                            notes:
                              type: string
                            createdAt:
                              type: string
                              format: date-time
                            updatedAt:
                              type: string
                              format: date-time
                            lastMeetingAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                - type: 'null'
                          required:
                            - id
                            - name
                            - email
                            - phone
                            - metadata
                            - notes
                            - createdAt
                            - updatedAt
                            - lastMeetingAt
                          additionalProperties: false
                      meta:
                        type: object
                        properties:
                          totalRowCount:
                            type: integer
                          limit:
                            type: integer
                          offset:
                            type: integer
                          hasMore:
                            type: boolean
                        required:
                          - totalRowCount
                          - limit
                          - offset
                          - hasMore
                        additionalProperties: false
                    required:
                      - rows
                      - meta
                    additionalProperties: false
                  message:
                    type: string
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          page:
                            type: number
                          limit:
                            type: number
                          total:
                            type: number
                          totalPages:
                            type: number
                        required:
                          - page
                          - limit
                          - total
                          - totalPages
                        additionalProperties: false
                    additionalProperties: {}
                required:
                  - success
                additionalProperties: false
                description: Contacts retrieved
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Unauthorized
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT | API Key
      description: |-

        Use the Authorization header with Bearer scheme.

        Examples:
        - API Key: Authorization: Bearer calid_xxxxx
            

````

## Related topics

- [Work with contacts](/docs/developers/guides/work-with-contacts.md)
- [List a contact's meetings](/docs/api-reference/contacts/list-a-contacts-meetings.md)
- [Managing Your Contacts in Cal ID](/docs/getting-started/contacts.md)
- [Delete a contact](/docs/api-reference/contacts/delete-a-contact.md)
- [Get a contact](/docs/api-reference/contacts/get-a-contact.md)
