---
title: "Search the TestWell catalog"
method: POST
path: "/api/agent/search_tests"
tags: ["catalog"]
---

# Search the TestWell catalog

`POST /api/agent/search_tests`

## Request

- Base URL: `https://www.test-well.com`
- URL: `https://www.test-well.com/api/agent/search_tests`
- Auth: none declared

Search TestWell's public catalog of cash-pay lab tests and panels by keyword, biomarker, CPT code, or category. Returns name, slug, per-lab prices, sample, fasting, turnaround and order URL. Prices are stickers; every order adds one $6 lab processing fee (see quote_order for all-in totals).

## Request body

- object
  - `query` string, required: Keyword, biomarker, CPT code or health goal, e.g. 'vitamin d', 'TSH', '80053', 'cholesterol'
  - `type` 'test' | 'panel': Restrict to individual tests or bundled panels
  - `category` string: Catalog category, e.g. 'Thyroid', 'Heart Health'
  - `orderableOnly` boolean: Exclude items listed as coming soon (default true)
  - `limit` integer: Max results (default 10)
  - `lang` 'en' | 'es': Return Spanish names/descriptions where a translation exists (default en)

## Response `200`

Tool result

- object
  - `tool` 'search_tests', required
  - `result` object, required
    - `query` string
    - `lang` string
    - `count` number
    - `labFee` number: USD
    - `items` object[]
      - `id` string
      - `slug` string
      - `type` 'test' | 'panel'
      - `name` string
      - `category` string
      - `description` string
      - `aliases` string[]
      - `cpt` string, nullable: CPT code when verified
      - `biomarkers` string[]
      - `biomarkerCount` number
      - `sampleType` string
      - `fastingRequired` boolean
      - `resultsIn` string: Turnaround, e.g. '1-3 business days'
      - `measuredTurnaround` object[]: Measured medians from real orders (specimen at lab → results), per lab; published only when n ≥ 30. Empty until enough data exists.
        - `lab` string, required
        - `n` number, required
        - `medianDays` number, required
        - `p90Days` number, nullable
        - `asOf` string, required
      - `prepInstructions` string, nullable
      - `labs` string[]: Labs that run it: Quest, Labcorp, BioReference
      - `prices` object: Sticker price per lab; null where the lab does not run the item
        - `quest` number, nullable: USD
        - `labcorp` number, nullable: USD
        - `bioreference` number, nullable: USD
      - `labFee` number: Flat per-order lab processing fee (charged once per order)
      - `currency` string
      - `orderable` boolean
      - `url` string: Absolute https URL on test-well.com
      - `markdownUrl` string: Absolute https URL on test-well.com
      - `orderUrl` string: Prefilled cart link
      - `reviewedAt` string, nullable
      - `popular` boolean

## Other responses

- `400`: Invalid input
- `429`: Rate limited

---

[API](https://skmtc.dev/test-well/apis/testwell-agent-api.md) · [All operations](https://skmtc.dev/test-well/apis/testwell-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/test-well/apis/testwell-agent-api/revisions/6e260731dfa4?raw)
