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

# List all clinic clients

> Returns a list of all clinic clients (pet parents) across all clinics in the organization. The clinic clients are sorted by creation date, with the most recent clinic clients appearing first. When using modified filters, results are sorted in descending modification date instead.

A **clinic client** represents a pet parent at a specific clinic location. Each clinic client belongs to exactly one clinic and can be associated with one or more clinic patients (pets). When the same person visits multiple clinics in the organization, they will have a separate clinic client record at each location, linked by a shared organization client ID.



## OpenAPI

````yaml get /ext/v2/clinic-clients/
openapi: 3.1.0
info:
  description: ''
  title: NinjaAPI
  version: 2.0.0
servers:
  - url: https://connect.vetcove.com/
security: []
paths:
  /ext/v2/clinic-clients/:
    get:
      tags:
        - Clients And Patients
      summary: List all clinic clients
      description: >-
        Returns a list of all clinic clients (pet parents) across all clinics in
        the organization. The clinic clients are sorted by creation date, with
        the most recent clinic clients appearing first. When using modified
        filters, results are sorted in descending modification date instead.


        A **clinic client** represents a pet parent at a specific clinic
        location. Each clinic client belongs to exactly one clinic and can be
        associated with one or more clinic patients (pets). When the same person
        visits multiple clinics in the organization, they will have a separate
        clinic client record at each location, linked by a shared organization
        client ID.
      operationId: clinic_clients_list
      parameters:
        - description: When provided, filters to objects with these IDs.
          in: query
          name: ids
          required: false
          schema:
            anyOf:
              - items:
                  type: integer
                type: array
              - type: 'null'
            description: When provided, filters to objects with these IDs.
            title: Ids
        - description: >-
            A cursor used for pagination. Fetches the page of results ending
            immediately before the object with the given ID. Cannot be used at
            the same time as `starting_after`.
          in: query
          name: ending_before
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              A cursor used for pagination. Fetches the page of results ending
              immediately before the object with the given ID. Cannot be used at
              the same time as `starting_after`.
            title: Ending Before
        - description: >-
            A cursor used for pagination. Fetches the page of results starting
            immediately after the given ID. Cannot be used at the same time as
            `ending_before`.
          in: query
          name: starting_after
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              A cursor used for pagination. Fetches the page of results starting
              immediately after the given ID. Cannot be used at the same time as
              `ending_before`.
            title: Starting After
        - description: The maximum number of items to return per page.
          in: query
          name: limit
          required: false
          schema:
            default: 10
            description: The maximum number of items to return per page.
            maximum: 100
            minimum: 1
            title: Limit
            type: integer
        - description: >-
            A cursor token used for pagination. This token contains encoded
            information about the last seen record in order to continue
            pagination. Cannot be used with `starting_after` or `ending_before`
            parameters.
          in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              A cursor token used for pagination. This token contains encoded
              information about the last seen record in order to continue
              pagination. Cannot be used with `starting_after` or
              `ending_before` parameters.
            title: Cursor
        - description: >-
            Filters to objects modified on or after this datetime (ISO8601 UTC,
            e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or
            `ending_before` parameters.
          in: query
          name: modified__gte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Filters to objects modified on or after this datetime (ISO8601
              UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with
              `starting_after` or `ending_before` parameters.
            title: Modified  Gte
        - description: >-
            Filters to objects modified on or before this datetime (ISO8601 UTC,
            e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or
            `ending_before` parameters.
          in: query
          name: modified__lte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Filters to objects modified on or before this datetime (ISO8601
              UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with
              `starting_after` or `ending_before` parameters.
            title: Modified  Lte
        - description: >-
            When 'FALSE' (default), filters to non-deleted records only. When
            'TRUE', filters to soft-deleted records only. When 'ALL', returns
            both deleted and non-deleted records.
          in: query
          name: is_deleted
          required: false
          schema:
            allOf:
              - enum:
                  - 'FALSE'
                  - 'TRUE'
                  - ALL
                title: DeletedFilterOption
                type: string
            default: 'FALSE'
            description: >-
              When 'FALSE' (default), filters to non-deleted records only. When
              'TRUE', filters to soft-deleted records only. When 'ALL', returns
              both deleted and non-deleted records.
        - description: Filters to clients for the clinic with this ID.
          in: query
          name: clinic_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: Filters to clients for the clinic with this ID.
            title: Clinic Id
        - description: Filters to clients associated with the organization client ID.
          in: query
          name: organization_client_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: Filters to clients associated with the organization client ID.
            title: Organization Client Id
        - description: When provided, filters to clients with this exact email address
          in: query
          name: email
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: When provided, filters to clients with this exact email address
            title: Email
        - description: >-
            When provided, filters to clients with this exact 10-digit phone
            number
          in: query
          name: phone_number
          required: false
          schema:
            anyOf:
              - maximum: 9999999999
                minimum: 1000000000
                type: integer
              - type: 'null'
            description: >-
              When provided, filters to clients with this exact 10-digit phone
              number
            title: Phone Number
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalClinicClientSchemaList'
          description: OK
      security:
        - ExternalAPIAuth: []
components:
  schemas:
    ExternalClinicClientSchemaList:
      properties:
        data:
          description: A single page of data contained within this list.
          items:
            $ref: '#/components/schemas/ExternalClinicClientSchema'
          title: Data
          type: array
        has_more:
          default: false
          description: Whether there are more pages or data in this list.
          title: Has More
          type: boolean
        next_page:
          description: A URL linking to the next page of this list.
          title: Next Page
          type: string
        type:
          default: list
          description: Type of this object. Always `list`.
          title: Type
          type: string
      required:
        - data
        - next_page
      title: ExternalClinicClientSchemaList
      type: object
    ExternalClinicClientSchema:
      properties:
        can_be_called:
          description: Whether the clinic can call the client.
          title: Can Be Called
          type: boolean
        client_notes:
          description: The notes on the client.
          title: Client Notes
          type: string
        clinic_id:
          description: The ID of the clinic this client belongs to.
          title: Clinic Id
          type: integer
        created:
          description: The datetime this object was created.
          format: date-time
          title: Created
          type: string
        deleted:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: The datetime this record was soft deleted.
          title: Deleted
        email:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The primary email address for this client account. This is selected
            from the available contact methods across all ClientUsers. When
            updating via the Client update endpoint, changes are applied to the
            primary ClientUser.
          title: Email
        external_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The ID from a clinic's legacy PIMS system, if the data was imported
            from there.
          title: External Id
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The first name of the primary clinic client user. For clinic clients
            with multiple clinic client users (has_multiple_users=true), this
            represents only the primary clinic client user's name.
          title: First Name
        has_multiple_users:
          description: >-
            Whether this client has multiple users (co-owners) associated with
            it. The first_name and last_name fields on this Client represent the
            primary ClientUser only. Use the /clinic-client-users/ endpoints to
            view and manage all ClientUsers for this Client.
          title: Has Multiple Users
          type: boolean
        has_unread_messages_for_clinic:
          description: >-
            Whether there are unread inbound messages from the client (for
            clinic's perspective)
          title: Has Unread Messages For Clinic
          type: boolean
        id:
          description: The ID of the clinic client
          title: Id
          type: integer
        is_active:
          description: Whether the client is active.
          title: Is Active
          type: boolean
        is_deleted:
          description: Whether this record is soft deleted or not.
          title: Is Deleted
          type: boolean
        is_email_unsubscribed:
          anyOf:
            - type: boolean
            - type: 'null'
          description: >-
            Whether the client has unsubscribed from marketing emails, if they
            have an email on file. A null value indicates they do not have an
            email on file.
          title: Is Email Unsubscribed
        is_subscribed:
          description: Whether the client is subscribed to receive info from the clinic.
          title: Is Subscribed
          type: boolean
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The last name of the primary clinic client user. For clinic clients
            with multiple clinic client users (has_multiple_users=true), this
            represents only the primary clinic client user's name.
          title: Last Name
        last_visit_date:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: The date of the client's most recent appointment or invoice.
          title: Last Visit Date
        modified:
          description: >-
            The datetime this object was last modified; changes to related
            entities will not update this field.
          format: date-time
          title: Modified
          type: string
        organization_client_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The organization client ID corresponding to this clinic client.
          title: Organization Client Id
        phone_number:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            The primary phone number for this client account. This is selected
            from the available contact methods across all ClientUsers. When
            updating via the Client update endpoint, changes are applied to the
            primary ClientUser.
          title: Phone Number
        pim_id:
          anyOf:
            - type: string
            - type: 'null'
          description: The ID of the clinic client in the clinic's PIMS.
          title: Pim Id
        primary_address:
          anyOf:
            - $ref: '#/components/schemas/ExternalAddressSchema'
            - type: 'null'
          description: The primary address of the clinic client.
        primary_client_user_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            The ID of the primary ClientUser (account owner) for this client.
            This is the 'main' owner whose name is reflected in the Client's
            `first_name` and `last_name` fields.
          title: Primary Client User Id
        primary_payment_method_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the primary payment method of the clinic client
          title: Primary Payment Method Id
      required:
        - created
        - modified
        - is_deleted
        - deleted
        - id
        - clinic_id
        - pim_id
        - organization_client_id
        - is_email_unsubscribed
        - is_active
        - external_id
        - can_be_called
        - is_subscribed
        - has_unread_messages_for_clinic
        - last_visit_date
        - client_notes
        - has_multiple_users
        - primary_client_user_id
      title: ExternalClinicClientSchema
      type: object
    ExternalAddressSchema:
      properties:
        address_one:
          description: The first line of the address.
          maxLength: 100
          title: Address One
          type: string
        address_two:
          default: ''
          description: The second line of the address.
          maxLength: 100
          title: Address Two
          type: string
        city:
          description: The city of the address.
          maxLength: 100
          title: City
          type: string
        country:
          allOf:
            - $ref: '#/components/schemas/Countries'
          default: US
          description: The 2-letter code of the country of the address.
        county:
          default: ''
          description: The county of the address.
          maxLength: 100
          title: County
          type: string
        id:
          description: The ID of the address.
          title: Id
          type: integer
        name:
          default: ''
          description: The name of the address.
          maxLength: 100
          title: Name
          type: string
        phone_number:
          anyOf:
            - type: integer
            - type: 'null'
          description: The phone number of the address.
          title: Phone Number
        state:
          description: >-
            The 2-letter code of the state/province/region of the address.
            Legacy data could deviate from the 2-letter code convention.
          title: State
          type: string
        zipcode:
          description: The zip code/postal code of the address.
          maxLength: 10
          title: Zipcode
          type: string
      required:
        - address_one
        - city
        - state
        - zipcode
        - id
      title: ExternalAddressSchema
      type: object
    Countries:
      enum:
        - CA
        - US
        - AS
        - GU
        - MP
        - PR
        - VI
      title: Countries
      type: string
  securitySchemes:
    ExternalAPIAuth:
      scheme: bearer
      type: http

````