---
title: "List all patient labs"
method: GET
path: "/ext/v2/patient-labs/"
tags: ["Labs"]
---

# List all patient labs

`GET /ext/v2/patient-labs/`

## Request

- Base URL: `https://connect.vetcove.com`
- URL: `https://connect.vetcove.com/ext/v2/patient-labs/`
- Auth: HTTP bearer

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

## Query parameters

- `ids` integer[], nullable: When provided, filters to objects with these IDs.
- `ending_before` integer, nullable: 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`.
- `starting_after` integer, nullable: 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`.
- `limit` integer: The maximum number of items to return per page.
- `cursor` string, nullable: 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.
- `modified__gte` string, date-time, nullable: 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.
- `modified__lte` string, date-time, nullable: 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.
- `is_deleted` 'FALSE' | 'TRUE' | 'ALL': 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.
- `clinic_id` integer, nullable: Filters to patient labs for the clinic with the given ID.
- `clinic_patient_id` integer, nullable: Filters to patient labs for the patient with the given ID.
- `status` 'PENDING' | 'COMPLETE' | 'ERROR' | 'IMPORTED': Filters that FE might pass in for lab order list 'status' (map to result_states)
- `types` PatientLabType[], nullable: Filters to patient labs with the given list of types. IN_CLINIC and EXTERNAL are ordered labs.
- `include_results` boolean: When true, each patient lab in the response includes a nested 'results' array with structured lab result data. Default is false for performance.

## Response `200`

OK

- ExternalPatientLabListItemSchemaList
  - `data` ExternalPatientLabListItemSchema[], required: A single page of data contained within this list.
    - `clinic_id` integer, required: The ID of the clinic the patient lab belongs to.
    - `clinic_patient_id` integer, required: The ID of the patient the patient lab belongs to.
    - `code` string, required: The lab panel code (e.g., test code from the lab provider). Empty string if no code is available.
    - `collected_at` string, date-time, required: The date and time the lab was collected.
    - `created` string, date-time, required: The datetime this object was created.
    - `deleted` string, date-time, nullable, required: The datetime this record was soft deleted.
    - `id` integer, required: The ID of the patient lab.
    - `is_deleted` boolean, required: Whether this record is soft deleted or not.
    - `is_pending` boolean, required: Whether the patient lab results are still pending.
    - `lab_provider_name` string, nullable: The name of the lab provider who provided this lab. Only available for integrated labs.
    - `modified` string, date-time, required: The datetime this object was last modified; changes to related entities will not update this field.
    - `name` string, required: The display name of the patient lab.
    - `ordering_clinic_user_id` integer, nullable: The ID of the clinic user who ordered this lab, if available.
    - `ordering_clinic_user_name` string, nullable: The display name of the clinic user who ordered this lab, if available.
    - `results` ExternalLabResultSchema[], nullable: The structured results of the patient lab test. Only included when include_results=true is passed as a query parameter.
      - `category` string, nullable, required: The category of the test result.
      - `code` string, nullable, required: The test code.
      - `critical_range_high` number, nullable, required: The high end of the critical range.
      - `critical_range_low` number, nullable, required: The low end of the critical range.
      - `id` integer, nullable: Stable identifier for this individual lab result. Null for manual lab results. Present for integrated labs (VCP, Antech, PACS) and imported labs.
      - `is_abnormal` boolean, nullable, required: Whether this result is abnormal.
      - `name` string, nullable, required: The name of the test or analyte.
      - `notes` string, nullable, required: Any notes associated with this result.
      - `reference_range_high` number, nullable, required: The high end of the normal reference range.
      - `reference_range_low` number, nullable, required: The low end of the normal reference range.
      - `result_date` string, nullable, required: The date/time the result was recorded (ISO 8601).
      - `status` string, nullable, required: The status of this individual result.
      - `type` string, nullable, required: The result type: NUMERIC, TEXT, or IMAGE.
      - `units` string, nullable, required: The unit of measurement for the result value.
      - `value` string, nullable, required: The result value. For IMAGE type results, this is a presigned S3 URL (1-hour expiry).
    - `reviewed_at` string, date-time, nullable: The date and time the lab was completed.
    - `status` 'PENDING' | 'COMPLETE' | 'ERROR' | 'IMPORTED', required: Filters that FE might pass in for lab order list 'status' (map to result_states)
    - `type` 'IN_CLINIC' | 'EXTERNAL' | 'MANUAL' | 'IMPORTED', required: The different kinds of labs for dashboard
  - `has_more` boolean: Whether there are more pages or data in this list.
  - `next_page` string, required: A URL linking to the next page of this list.
  - `type` string: Type of this object. Always `list`.

---

[API](https://skmtc.dev/vetcove/apis/ninjaapi.md) - [All operations](https://skmtc.dev/vetcove/apis/ninjaapi/llms.txt) - [OpenAPI document](https://skmtc.dev/vetcove/apis/ninjaapi/revisions/4ceaed956e15?raw)
