---
title: "List lab packages"
method: GET
path: "/api/v1/lab-packages"
tags: ["Lab Packages"]
---

# List lab packages

`GET /api/v1/lab-packages`

## Request

- Base URL: `https://www.vitalsvault.com`
- URL: `https://www.vitalsvault.com/api/v1/lab-packages`
- Auth: none declared

Get a paginated list of available lab test packages

## Query parameters

- `page` integer
- `pageSize` integer
- `sortBy` string
- `sortOrder` 'asc' | 'desc'
- `search` string
- `category` string
- `condition` string
- `minPrice` number, float
- `maxPrice` number, float
- `sampleType` 'blood' | 'urine' | 'saliva' | 'stool'
- `isActive` boolean

## Response `200`

Successfully retrieved lab packages

- object
  - `success` boolean, required: Indicates if the request was successful
  - `data` object: Response data (only present if success is true)
    - `data` object[]
      - `id` string, uuid, required
      - `slug` string, required
      - `name` string, required
      - `description` string
      - `price` number, float, required
      - `compareAtPrice` number, float
      - `currency` string
      - `biomarkerIds` string[], required
      - `biomarkerCount` integer
      - `categoryFocus` string[]
      - `targetConditions` string[]
      - `sampleType` 'blood' | 'urine' | 'saliva' | 'stool'
      - `fastingRequired` boolean
      - `turnaroundTime` string
      - `popularityScore` integer
      - `junctionTestIds` string[]
      - `preparationInstructions` string[]
      - `isActive` boolean
      - `displayOrder` integer
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
    - `pagination` object
      - `page` integer, required: Current page number
      - `pageSize` integer, required: Number of items per page
      - `totalCount` integer, required: Total number of items
      - `totalPages` integer, required: Total number of pages
      - `hasNextPage` boolean: Whether there is a next page
      - `hasPreviousPage` boolean: Whether there is a previous page
      - `hasNext` boolean: Whether there is a next page
      - `hasPrevious` boolean: Whether there is a previous page
      - `cursor` string: Cursor representing the current offset
      - `next_cursor` string, nullable: Cursor for the next page; null when hasNext is false
  - `error` object
    - `code` string, required: Error code for programmatic handling
    - `message` string, required: Human-readable error message
    - `details` string: Additional error details
  - `meta` object
    - `queryTime` integer: Query execution time in milliseconds
    - `cached` boolean: Whether the response was served from cache

## Other responses

- `400`: Bad request
- `500`: Internal server error

---

[API](https://skmtc.dev/vitalsvault/apis/vitals-vault-educational-api.md) · [All operations](https://skmtc.dev/vitalsvault/apis/vitals-vault-educational-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vitalsvault/apis/vitals-vault-educational-api/revisions/957d19299c33?raw)
