> ## 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.

# Search clinic clients

> Searches for clinic clients by name, email, phone number, or zip code using structured field-level matching. Email and phone searches match any address or number on the client, not only the primary contact.

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/search/
openapi: 3.1.0
info:
  description: ''
  title: NinjaAPI
  version: 2.0.0
servers:
  - url: https://connect.vetcove.com/
security: []
paths:
  /ext/v2/clinic-clients/search/:
    get:
      tags:
        - Clients And Patients
      summary: Search clinic clients
      description: >-
        Searches for clinic clients by name, email, phone number, or zip code
        using structured field-level matching. Email and phone searches match
        any address or number on the client, not only the primary contact.


        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_search
      parameters:
        - description: >-
            Searches for clients whose name matches this value. Automatically
            trimmed and lowercased. Requires `name_operator` when provided.
          in: query
          name: name
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Searches for clients whose name matches this value. Automatically
              trimmed and lowercased. Requires `name_operator` when provided.
            title: Name
        - description: The match mode to use for the `name` field.
          in: query
          name: name_operator
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/NameOperator'
              - type: 'null'
            description: The match mode to use for the `name` field.
        - description: >-
            Searches for clients whose email matches this value. Automatically
            trimmed and lowercased. Requires `email_operator` when provided.
          in: query
          name: email
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Searches for clients whose email matches this value. Automatically
              trimmed and lowercased. Requires `email_operator` when provided.
            title: Email
        - description: The match mode to use for the `email` field.
          in: query
          name: email_operator
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/EmailOperator'
              - type: 'null'
            description: The match mode to use for the `email` field.
        - description: >-
            Searches for clients whose phone number matches this value.
            Non-numeric characters are automatically stripped. Requires
            `phone_number_operator` when provided.
          in: query
          name: phone_number
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Searches for clients whose phone number matches this value.
              Non-numeric characters are automatically stripped. Requires
              `phone_number_operator` when provided.
            title: Phone Number
        - description: The match mode to use for the `phone_number` field.
          in: query
          name: phone_number_operator
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/PhoneNumberOperator'
              - type: 'null'
            description: The match mode to use for the `phone_number` field.
        - description: >-
            Searches for clients whose zip code matches this value.
            Automatically trimmed and lowercased. Requires `zip_code_operator`
            when provided.
          in: query
          name: zip_code
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Searches for clients whose zip code matches this value.
              Automatically trimmed and lowercased. Requires `zip_code_operator`
              when provided.
            title: Zip Code
        - description: The match mode to use for the `zip_code` field.
          in: query
          name: zip_code_operator
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/ZipCodeOperator'
              - type: 'null'
            description: The match mode to use for the `zip_code` field.
        - description: Filters to clients with the given active status.
          in: query
          name: is_active
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
            description: Filters to clients with the given active status.
            title: Is Active
        - description: The page number to return.
          in: query
          name: page
          required: false
          schema:
            default: 1
            description: The page number to return.
            minimum: 1
            title: Page
            type: integer
        - description: The number of results per page.
          in: query
          name: page_size
          required: false
          schema:
            default: 20
            description: The number of results per page.
            maximum: 100
            minimum: 1
            title: Page Size
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalClinicClientSearchSchemaList'
          description: OK
      security:
        - ExternalAPIAuth: []
components:
  schemas:
    NameOperator:
      enum:
        - EXACT
        - PREFIX
        - CONTAINS
      title: NameOperator
      type: string
    EmailOperator:
      enum:
        - EXACT
        - CONTAINS
      title: EmailOperator
      type: string
    PhoneNumberOperator:
      enum:
        - EXACT
        - SUFFIX
      title: PhoneNumberOperator
      type: string
    ZipCodeOperator:
      enum:
        - EXACT
        - PREFIX
        - CONTAINS
      title: ZipCodeOperator
      type: string
    ExternalClinicClientSearchSchemaList:
      properties:
        data:
          description: A single page of data contained within this list.
          items:
            $ref: '#/components/schemas/ExternalClinicClientSearchSchema'
          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: ExternalClinicClientSearchSchemaList
      type: object
    ExternalClinicClientSearchSchema:
      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
        secondary_emails:
          description: >-
            Additional email addresses on this clinic client besides the primary
            email. Only addresses that can match an email search are included.
          items:
            type: string
          title: Secondary Emails
          type: array
        secondary_phone_numbers:
          description: >-
            Additional phone numbers on this clinic client besides the primary
            phone number. Only numbers that can match a phone search are
            included.
          items:
            type: integer
          title: Secondary Phone Numbers
          type: array
      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
        - secondary_emails
        - secondary_phone_numbers
      title: ExternalClinicClientSearchSchema
      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

````