> ## 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 patient labs

> Returns a list of all patient lab results across all clinics in the organization. The results are sorted by creation date, with the most recent appearing first.

A **patient lab** represents a diagnostic lab test result for a clinic patient (e.g., bloodwork, urinalysis, fecal test).



## OpenAPI

````yaml get /ext/v2/patient-labs/
openapi: 3.1.0
info:
  description: ''
  title: NinjaAPI
  version: 2.0.0
servers:
  - url: https://connect.vetcove.com/
security: []
paths:
  /ext/v2/patient-labs/:
    get:
      tags:
        - Labs
      summary: List all patient labs
      description: >-
        Returns a list of all patient lab results across all clinics in the
        organization. The results are sorted by creation date, with the most
        recent appearing first.


        A **patient lab** represents a diagnostic lab test result for a clinic
        patient (e.g., bloodwork, urinalysis, fecal test).
      operationId: patient_labs_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 patient labs for the clinic with the given ID.
          in: query
          name: clinic_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: Filters to patient labs for the clinic with the given ID.
            title: Clinic Id
        - description: Filters to patient labs for the patient with the given ID.
          in: query
          name: clinic_patient_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: Filters to patient labs for the patient with the given ID.
            title: Clinic Patient Id
        - description: Filters to patient labs with the given status.
          in: query
          name: status
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/LabOrderDashboardStatus'
              - type: 'null'
            description: Filters to patient labs with the given status.
        - description: >-
            Filters to patient labs with the given list of types. IN_CLINIC and
            EXTERNAL are ordered labs.
          in: query
          name: types
          required: false
          schema:
            anyOf:
              - items:
                  $ref: '#/components/schemas/PatientLabType'
                type: array
              - type: 'null'
            description: >-
              Filters to patient labs with the given list of types. IN_CLINIC
              and EXTERNAL are ordered labs.
            title: Types
        - description: >-
            When true, each patient lab in the response includes a nested
            'results' array with structured lab result data. Default is false
            for performance.
          in: query
          name: include_results
          required: false
          schema:
            default: false
            description: >-
              When true, each patient lab in the response includes a nested
              'results' array with structured lab result data. Default is false
              for performance.
            title: Include Results
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalPatientLabListItemSchemaList'
          description: OK
      security:
        - ExternalAPIAuth: []
components:
  schemas:
    LabOrderDashboardStatus:
      description: >-
        Filters that FE might pass in for lab order list 'status' (map to
        result_states)
      enum:
        - PENDING
        - COMPLETE
        - ERROR
        - IMPORTED
      title: LabOrderDashboardStatus
      type: string
    PatientLabType:
      description: The different kinds of labs for dashboard
      enum:
        - IN_CLINIC
        - EXTERNAL
        - MANUAL
        - IMPORTED
      title: PatientLabType
      type: string
    ExternalPatientLabListItemSchemaList:
      properties:
        data:
          description: A single page of data contained within this list.
          items:
            $ref: '#/components/schemas/ExternalPatientLabListItemSchema'
          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: ExternalPatientLabListItemSchemaList
      type: object
    ExternalPatientLabListItemSchema:
      properties:
        clinic_id:
          description: The ID of the clinic the patient lab belongs to.
          title: Clinic Id
          type: integer
        clinic_patient_id:
          description: The ID of the patient the patient lab belongs to.
          title: Clinic Patient Id
          type: integer
        code:
          description: >-
            The lab panel code (e.g., test code from the lab provider). Empty
            string if no code is available.
          title: Code
          type: string
        collected_at:
          description: The date and time the lab was collected.
          format: date-time
          title: Collected At
          type: string
        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
        id:
          description: The ID of the patient lab.
          title: Id
          type: integer
        is_deleted:
          description: Whether this record is soft deleted or not.
          title: Is Deleted
          type: boolean
        is_pending:
          description: Whether the patient lab results are still pending.
          title: Is Pending
          type: boolean
        lab_provider_name:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The name of the lab provider who provided this lab. Only available
            for integrated labs.
          title: Lab Provider Name
        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
        name:
          description: The display name of the patient lab.
          title: Name
          type: string
        ordering_clinic_user_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the clinic user who ordered this lab, if available.
          title: Ordering Clinic User Id
        ordering_clinic_user_name:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The display name of the clinic user who ordered this lab, if
            available.
          title: Ordering Clinic User Name
        results:
          anyOf:
            - items:
                $ref: '#/components/schemas/ExternalLabResultSchema'
              type: array
            - type: 'null'
          description: >-
            The structured results of the patient lab test. Only included when
            include_results=true is passed as a query parameter.
          title: Results
        reviewed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: The date and time the lab was completed.
          title: Reviewed At
        status:
          $ref: '#/components/schemas/LabOrderDashboardStatus'
          description: The status of the patient lab.
        type:
          $ref: '#/components/schemas/PatientLabType'
          description: The type of patient lab.  IN_CLINIC and EXTERNAL are ordered labs.
      required:
        - created
        - modified
        - is_deleted
        - deleted
        - id
        - clinic_id
        - clinic_patient_id
        - name
        - code
        - type
        - status
        - is_pending
        - collected_at
      title: ExternalPatientLabListItemSchema
      type: object
    ExternalLabResultSchema:
      properties:
        category:
          anyOf:
            - type: string
            - type: 'null'
          description: The category of the test result.
          title: Category
        code:
          anyOf:
            - type: string
            - type: 'null'
          description: The test code.
          title: Code
        critical_range_high:
          anyOf:
            - type: number
            - type: 'null'
          description: The high end of the critical range.
          title: Critical Range High
        critical_range_low:
          anyOf:
            - type: number
            - type: 'null'
          description: The low end of the critical range.
          title: Critical Range Low
        id:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            Stable identifier for this individual lab result. Null for manual
            lab results. Present for integrated labs (VCP, Antech, PACS) and
            imported labs.
          title: Id
        is_abnormal:
          anyOf:
            - type: boolean
            - type: 'null'
          description: Whether this result is abnormal.
          title: Is Abnormal
        name:
          anyOf:
            - type: string
            - type: 'null'
          description: The name of the test or analyte.
          title: Name
        notes:
          anyOf:
            - type: string
            - type: 'null'
          description: Any notes associated with this result.
          title: Notes
        reference_range_high:
          anyOf:
            - type: number
            - type: 'null'
          description: The high end of the normal reference range.
          title: Reference Range High
        reference_range_low:
          anyOf:
            - type: number
            - type: 'null'
          description: The low end of the normal reference range.
          title: Reference Range Low
        result_date:
          anyOf:
            - type: string
            - type: 'null'
          description: The date/time the result was recorded (ISO 8601).
          title: Result Date
        status:
          anyOf:
            - type: string
            - type: 'null'
          description: The status of this individual result.
          title: Status
        type:
          anyOf:
            - type: string
            - type: 'null'
          description: 'The result type: NUMERIC, TEXT, or IMAGE.'
          title: Type
        units:
          anyOf:
            - type: string
            - type: 'null'
          description: The unit of measurement for the result value.
          title: Units
        value:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The result value. For IMAGE type results, this is a presigned S3 URL
            (1-hour expiry).
          title: Value
      required:
        - name
        - code
        - value
        - type
        - units
        - reference_range_low
        - reference_range_high
        - critical_range_low
        - critical_range_high
        - is_abnormal
        - status
        - result_date
        - category
        - notes
      title: ExternalLabResultSchema
      type: object
  securitySchemes:
    ExternalAPIAuth:
      scheme: bearer
      type: http

````