TestWell Lab Tests
Cash-pay lab tests: catalog search, all-in quotes by state, draw sites by ZIP, reviewed ranges.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (2)
- HIGH
- LOWin create_checkout
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"testwell": {
"url": "https://www.test-well.com/mcp"
}
}
}Remote-Endpunkte
https://www.test-well.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (18)
🟢search_tests(query, type, category, orderableOnly, limit, ...)
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).
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Keyword, biomarker, CPT code or health goal, e.g. 'vitamin d', 'TSH', '80053', 'cholesterol'"
},
"type": {
"description": "Restrict to individual tests or bundled panels",
"type": "string",
"enum": [
"test",
"panel"
]
},
"category": {
"description": "Catalog category, e.g. 'Thyroid', 'Heart Health'",
"type": "string",
"maxLength": 60
},
"orderableOnly": {
"description": "Exclude items listed as coming soon (default true)",
"type": "boolean"
},
"limit": {
"description": "Max results (default 10)",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"lang": {
"description": "Return Spanish names/descriptions where a translation exists (default en)",
"type": "string",
"enum": [
"en",
"es"
]
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"lang": {
"type": "string"
},
"count": {
"type": "number"
},
"labFee": {
"type": "number",
"description": "USD"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"test",
"panel"
]
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"description": {
"type": "string"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"cpt": {
"description": "CPT code when verified",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"biomarkers": {
"type": "array",
"items": {
"type": "string"
}
},
"biomarkerCount": {
"type": "number"
},
"sampleType": {
"type": "string"
},
"fastingRequired": {
"type": "boolean"
},
"resultsIn": {
"description": "Turnaround, e.g. '1-3 business days'",
"type": "string"
},
"measuredTurnaround": {
"description": "Measured medians from real orders (specimen at lab → results), per lab; published only when n ≥ 30. Empty until enough data exists.",
"type": "array",
"items": {
"type": "object",
"properties": {
"lab": {
"type": "string"
},
"n": {
"type": "number"
},
"medianDays": {
"type": "number"
},
"p90Days": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"asOf": {
"type": "string"
}
},
"required": [
"lab",
"n",
"medianDays",
"asOf"
],
"additionalProperties": false
}
},
"prepInstructions": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"labs": {
"description": "Labs that run it: Quest, Labcorp, BioReference",
"type": "array",
"items": {
"type": "string"
}
},
"prices": {
"type": "object",
"properties": {
"quest": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
},
"labcorp": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
},
"bioreference": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {},
"description": "Sticker price per lab; null where the lab does not run the item"
},
"labFee": {
"description": "Flat per-order lab processing fee (charged once per order)",
"type": "number"
},
"currency": {
"type": "string"
},
"orderable": {
"type": "boolean"
},
"url": {
"type": "string",
"description": "Absolute https URL on test-well.com"
},
"markdownUrl": {
"type": "string",
"description": "Absolute https URL on test-well.com"
},
"orderUrl": {
"description": "Prefilled cart link",
"type": "string"
},
"reviewedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"popular": {
"type": "boolean"
}
},
"additionalProperties": {}
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢get_test(slug, lang)
Full public detail for one TestWell test or panel by slug or id: description, biomarkers, CPT, per-lab prices, labs, fasting/prep, turnaround, included tests (panels), FAQ, related conditions, order URL and a Markdown page URL.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Catalog slug (from search_tests) or id, e.g. 'tsh', 'general-wellness-panel'"
},
"lang": {
"description": "Spanish prose where a translation exists (default en)",
"type": "string",
"enum": [
"en",
"es"
]
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"item": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"test",
"panel"
]
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"description": {
"type": "string"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"cpt": {
"description": "CPT code when verified",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"biomarkers": {
"type": "array",
"items": {
"type": "string"
}
},
"biomarkerCount": {
"type": "number"
},
"sampleType": {
"type": "string"
},
"fastingRequired": {
"type": "boolean"
},
"resultsIn": {
"description": "Turnaround, e.g. '1-3 business days'",
"type": "string"
},
"measuredTurnaround": {
"description": "Measured medians from real orders (specimen at lab → results), per lab; published only when n ≥ 30. Empty until enough data exists.",
"type": "array",
"items": {
"type": "object",
"properties": {
"lab": {
"type": "string"
},
"n": {
"type": "number"
},
"medianDays": {
"type": "number"
},
"p90Days": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"asOf": {
"type": "string"
}
},
"required": [
"lab",
"n",
"medianDays",
"asOf"
],
"additionalProperties": false
}
},
"prepInstructions": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"labs": {
"description": "Labs that run it: Quest, Labcorp, BioReference",
"type": "array",
"items": {
"type": "string"
}
},
"prices": {
"type": "object",
"properties": {
"quest": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
},
"labcorp": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
},
"bioreference": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {},
"description": "Sticker price per lab; null where the lab does not run the item"
},
"labFee": {
"description": "Flat per-order lab processing fee (charged once per order)",
"type": "number"
},
"currency": {
"type": "string"
},
"orderable": {
"type": "boolean"
},
"url": {
"type": "string",
"description": "Absolute https URL on test-well.com"
},
"markdownUrl": {
"type": "string",
"description": "Absolute https URL on test-well.com"
},
"orderUrl": {
"description": "Prefilled cart link",
"type": "string"
},
"reviewedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"popular": {
"type": "boolean"
}
},
"additionalProperties": {}
},
"suggestions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢list_panels(category, maxPrice, limit)
List TestWell's bundled panels (multi-test packages priced below the sum of their tests), optionally filtered by category or maximum price. Sorted by price.
Eingabe-Schema
{
"type": "object",
"properties": {
"category": {
"description": "Catalog category, e.g. 'Hormones', 'General Health'",
"type": "string",
"maxLength": 60
},
"maxPrice": {
"description": "Only panels at or under this sticker price (USD)",
"type": "number",
"exclusiveMinimum": 0
},
"limit": {
"description": "Max results (default 25)",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"labFee": {
"type": "number",
"description": "USD"
},
"panels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"price": {
"type": "number",
"description": "USD"
},
"prices": {
"type": "object",
"properties": {
"quest": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
},
"labcorp": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
},
"bioreference": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {},
"description": "Sticker price per lab; null where the lab does not run the item"
},
"tests": {
"description": "Number of tests in the panel",
"type": "number"
},
"biomarkers": {
"description": "Number of biomarkers reported",
"type": "number"
},
"category": {
"type": "string"
},
"labs": {
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"type": "string",
"description": "Absolute https URL on test-well.com"
},
"orderUrl": {
"type": "string",
"description": "Absolute https URL on test-well.com"
}
},
"additionalProperties": {}
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢recommend_tests(goals, symptoms, budget)
Suggest TestWell panels and tests for stated health goals (e.g. 'annual checkup', 'heart health', 'TRT monitoring') and/or symptoms (e.g. 'fatigue', 'hair loss'). Prefers a curated pre-built panel when one fits; otherwise assembles individual tests within a budget. Educational matching, not a diagnosis.
Eingabe-Schema
{
"type": "object",
"properties": {
"goals": {
"description": "Health goals, e.g. ['energy', 'thyroid']",
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"maxLength": 60
}
},
"symptoms": {
"description": "Symptoms, e.g. ['always cold', 'weight gain']",
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"maxLength": 60
}
},
"budget": {
"description": "Budget band: low ≈ $80, medium ≈ $200, high ≈ $400",
"type": "string",
"enum": [
"low",
"medium",
"high",
"no_limit"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"goals": {
"type": "array",
"items": {
"type": "string"
}
},
"symptoms": {
"type": "array",
"items": {
"type": "string"
}
},
"byGoal": {
"description": "Recommended panel and alternatives for the stated goals",
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"bySymptom": {
"description": "Panels, individual tests and explanations for the stated symptoms",
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"labFee": {
"type": "number",
"description": "USD"
},
"next": {
"description": "Suggested next tool call",
"type": "string"
},
"disclaimer": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢quote_order(items, state, lab)
Price a set of tests/panels exactly as TestWell's checkout would: per-lab prices for the user's state (New York and New Jersey route to BioReference; Rhode Island is not served), the single $6 lab processing fee, the total, items that can't be ordered and why, and a prefilled cart URL. Use this before quoting any total to a user.
Eingabe-Schema
{
"type": "object",
"properties": {
"items": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": "Catalog slugs or ids, e.g. ['tsh', 'vitamin-d']"
},
"state": {
"description": "US state code or name where the user will be drawn, e.g. 'FL' or 'Florida'",
"type": "string",
"minLength": 2,
"maxLength": 40
},
"lab": {
"description": "Preferred lab outside NY/NJ (default quest)",
"type": "string",
"enum": [
"quest",
"labcorp",
"bioreference"
]
}
},
"required": [
"items"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"error": {
"description": "Present when ok=false, e.g. state not served",
"type": "string"
},
"state": {
"type": "string"
},
"lab": {
"type": "string"
},
"labName": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"type": {
"type": "string"
},
"name": {
"type": "string"
},
"lab": {
"type": "string"
},
"price": {
"type": "number",
"description": "USD"
},
"url": {
"type": "string",
"description": "Absolute https URL on test-well.com"
}
},
"additionalProperties": {}
}
},
"unavailable": {
"description": "Requested items the routed lab cannot run in this state",
"type": "array",
"items": {}
},
"subtotal": {
"type": "number",
"description": "USD"
},
"labFee": {
"type": "number",
"description": "USD"
},
"total": {
"description": "All-in total: subtotal + the single lab processing fee",
"type": "number"
},
"currency": {
"type": "string"
},
"checkoutUrl": {
"description": "Prefilled cart on test-well.com — purchases complete there; null when nothing is orderable",
"anyOf": [
{
"type": "string",
"description": "Absolute https URL on test-well.com"
},
{
"type": "null"
}
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟡create_checkout(items, state, buyer, dry_run)
Start a TestWell order for the user: tests/panels, the US state where they will visit the lab (required for pricing and lab routing), and the buyer's name, email and phone. Returns priced line items in cents, the single $6 lab fee, the total, any blocking messages, and pay_online_url — a prefilled cart the user can pay in a browser when the platform has no payment token. Use dry_run to preview without creating a session.
Eingabe-Schema
{
"type": "object",
"properties": {
"items": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Test or panel slug/id"
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 1
}
},
"required": [
"id"
]
}
},
"state": {
"description": "US state code or name where the blood will be drawn",
"type": "string",
"minLength": 2,
"maxLength": 40
},
"buyer": {
"type": "object",
"properties": {
"first_name": {
"type": "string",
"maxLength": 80
},
"last_name": {
"type": "string",
"maxLength": 80
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"phone_number": {
"type": "string",
"maxLength": 20
}
}
},
"dry_run": {
"description": "Price only; do not create a session",
"type": "boolean"
}
},
"required": [
"items"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"not_ready_for_payment",
"ready_for_payment",
"in_progress",
"completed",
"canceled"
]
},
"currency": {
"type": "string",
"const": "usd"
},
"line_items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"item": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"quantity": {
"type": "number"
}
},
"required": [
"id",
"quantity"
],
"additionalProperties": false
},
"base_amount": {
"type": "number"
},
"subtotal": {
"type": "number"
},
"total": {
"type": "number"
},
"name": {
"type": "string"
},
"lab": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"id",
"item",
"base_amount",
"subtotal",
"total"
],
"additionalProperties": {}
}
},
"totals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"display_text": {
"type": "string"
},
"amount": {
"type": "number"
}
},
"required": [
"type",
"display_text",
"amount"
],
"additionalProperties": false
}
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"info",
"error"
]
},
"content": {
"type": "string"
},
"param": {
"type": "string"
}
},
"required": [
"type",
"content"
],
"additionalProperties": {}
}
},
"fulfillment_options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "digital"
},
"id": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"type",
"id",
"title"
],
"additionalProperties": {}
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"type",
"url"
],
"additionalProperties": false
}
},
"pay_online_url": {
"description": "Prefilled cart for browser payment when the platform has no payment token",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"order": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"checkout_session_id": {
"type": "string"
},
"permalink_url": {
"type": "string"
}
},
"required": [
"id",
"checkout_session_id",
"permalink_url"
],
"additionalProperties": false
},
"dry_run": {
"type": "boolean"
}
},
"required": [
"id",
"status",
"currency",
"line_items",
"totals",
"messages",
"fulfillment_options",
"links"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟡update_checkout(checkout_session_id, items, state, buyer)
Change items, state or buyer details on an open checkout session and get it re-priced. Returns the same session object as create_checkout.
Eingabe-Schema
{
"type": "object",
"properties": {
"checkout_session_id": {
"type": "string",
"minLength": 8,
"maxLength": 80
},
"items": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 1
}
},
"required": [
"id"
]
}
},
"state": {
"type": "string",
"minLength": 2,
"maxLength": 40
},
"buyer": {
"type": "object",
"properties": {
"first_name": {
"type": "string",
"maxLength": 80
},
"last_name": {
"type": "string",
"maxLength": 80
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"phone_number": {
"type": "string",
"maxLength": 20
}
}
}
},
"required": [
"checkout_session_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string"
},
"line_items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"total": {
"type": "number"
}
},
"required": [
"id",
"total"
],
"additionalProperties": {}
}
},
"totals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"display_text": {
"type": "string"
},
"amount": {
"type": "number"
}
},
"required": [
"type",
"display_text",
"amount"
],
"additionalProperties": false
}
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"info",
"error"
]
},
"content": {
"type": "string"
}
},
"required": [
"type",
"content"
],
"additionalProperties": {}
}
}
},
"required": [
"id",
"status",
"line_items",
"totals",
"messages"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢get_checkout(checkout_session_id)
Current state of a checkout session (status, line items, totals, messages, order once paid). Read-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"checkout_session_id": {
"type": "string",
"minLength": 8,
"maxLength": 80
}
},
"required": [
"checkout_session_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string"
},
"line_items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"total": {
"type": "number"
}
},
"required": [
"id",
"total"
],
"additionalProperties": {}
}
},
"totals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"display_text": {
"type": "string"
},
"amount": {
"type": "number"
}
},
"required": [
"type",
"display_text",
"amount"
],
"additionalProperties": false
}
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"info",
"error"
]
},
"content": {
"type": "string"
}
},
"required": [
"type",
"content"
],
"additionalProperties": {}
}
}
},
"required": [
"id",
"status",
"line_items",
"totals",
"messages"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🔴cancel_checkout(checkout_session_id)
Cancel an open (unpaid) checkout session. Paid sessions cannot be canceled here — the patient's complete-details email explains refunds.
Eingabe-Schema
{
"type": "object",
"properties": {
"checkout_session_id": {
"type": "string",
"minLength": 8,
"maxLength": 80
}
},
"required": [
"checkout_session_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"id",
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟡complete_checkout(checkout_session_id, buyer, payment_data, idempotency_key)
Charge the payment credential the platform obtained for a session that is ready_for_payment and create the order. Input follows the ChatGPT payment-sheet contract: checkout_session_id, buyer, payment_data { token, provider: 'stripe', billing_address }. The token is a Stripe shared payment token (spt_…); platforms without one should send the user to pay_online_url from create_checkout. After payment the patient gets an email link to add date of birth, sex, phone and consent — the lab requisition is issued when that is done.
Eingabe-Schema
{
"type": "object",
"properties": {
"checkout_session_id": {
"type": "string",
"minLength": 8,
"maxLength": 80
},
"buyer": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 160
},
{
"type": "null"
}
]
},
"first_name": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"last_name": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
]
},
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phone_number": {
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "null"
}
]
}
}
},
{
"type": "null"
}
]
},
"payment_data": {
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 4,
"maxLength": 400
},
"provider": {
"description": "'stripe'",
"type": "string",
"maxLength": 40
},
"billing_address": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"line_one": {
"type": "string"
},
"line_two": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"postal_code": {
"type": "string"
}
}
},
{
"type": "null"
}
]
}
},
"required": [
"token"
]
},
"idempotency_key": {
"type": "string",
"maxLength": 128
}
},
"required": [
"checkout_session_id",
"payment_data"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string"
},
"totals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"display_text": {
"type": "string"
},
"amount": {
"type": "number"
}
},
"required": [
"type",
"display_text",
"amount"
],
"additionalProperties": false
}
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"info",
"error"
]
},
"content": {
"type": "string"
}
},
"required": [
"type",
"content"
],
"additionalProperties": {}
}
},
"order": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"checkout_session_id": {
"type": "string"
},
"permalink_url": {
"type": "string"
}
},
"required": [
"id",
"checkout_session_id",
"permalink_url"
],
"additionalProperties": false
}
},
"required": [
"id",
"status",
"totals",
"messages"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢find_draw_sites(zip, radiusMiles, lab, limit)
Find Quest Diagnostics, Labcorp and BioReference patient service centers near a US ZIP code, with address, distance, phone and hours. Walk-ins are accepted at most sites; the requisition arrives by email after physician authorization.
Eingabe-Schema
{
"type": "object",
"properties": {
"zip": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "5-digit US ZIP code"
},
"radiusMiles": {
"description": "Search radius in miles (snapped to 10/20/25/50/100; default 25)",
"type": "integer",
"minimum": 5,
"maximum": 100
},
"lab": {
"description": "Limit to one lab",
"type": "string",
"enum": [
"quest",
"labcorp",
"bioreference"
]
},
"limit": {
"description": "Max sites (default 10)",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"zip"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"zip": {
"type": "string"
},
"radiusMiles": {
"type": "number"
},
"count": {
"type": "number"
},
"sites": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"zip": {
"type": "string"
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"lab": {
"type": "string"
},
"distance": {
"description": "Miles from the ZIP centroid",
"type": "number"
},
"hours": {}
},
"additionalProperties": {}
}
},
"mapUrl": {
"type": "string",
"description": "Absolute https URL on test-well.com"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢lookup_reference_range(marker, sex, age, pregnancy, postmenopausal)
Physician-reviewed reference range for a blood test marker (130+ markers), filtered by sex and age when they matter, with what high and low values suggest, retest cadence, how to get tested, cited sources and the review date. Educational; the user's own report range takes precedence.
Eingabe-Schema
{
"type": "object",
"properties": {
"marker": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Marker name or alias, e.g. 'TSH', 'ferritin', 'HbA1c', 'LDL'"
},
"sex": {
"type": "string",
"enum": [
"male",
"female"
]
},
"age": {
"type": "integer",
"minimum": 0,
"maximum": 120
},
"pregnancy": {
"type": "boolean"
},
"postmenopausal": {
"type": "boolean"
}
},
"required": [
"marker"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"marker": {
"type": "string"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"category": {
"type": "string"
},
"units": {
"type": "array",
"items": {
"type": "string"
}
},
"measures": {
"type": "string"
},
"filteredToQuery": {
"type": "boolean"
},
"ranges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"qualifier": {
"description": "Who the band applies to, e.g. 'Female, age 18+'",
"type": "string"
},
"range": {
"type": "string"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"unit": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"highSuggests": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"lowSuggests": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"retest": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"howToTest": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"kind": {
"type": "string"
},
"price": {
"type": "number",
"description": "USD"
},
"url": {
"type": "string",
"description": "Absolute https URL on test-well.com"
}
},
"additionalProperties": {}
}
},
"citations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"suggestions": {
"type": "array",
"items": {
"type": "string"
}
},
"browse": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢compare_prices(test)
For one blood test, the all-in single-test price (sticker + per-order fees) at TestWell and at every tracked direct-to-consumer provider with a verified equivalent — JustLabs, Quest, Labcorp OnDemand, Ulta Lab Tests, Walk-In Lab, HealthLabs and more — each with the date it was verified, plus typical hospital self-pay and Quest Direct reference prices. States the multi-test caveat (fees are paid once per order). Source: the TestWell Blood Test Price Index (CC BY 4.0).
Eingabe-Schema
{
"type": "object",
"properties": {
"test": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Test slug or name, e.g. 'tsh', 'lipid panel', 'vitamin-d'"
}
},
"required": [
"test"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"test": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"cpt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"category": {
"type": "string"
}
},
"additionalProperties": {}
},
"cheapestSingleTestAllIn": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"providerName": {
"type": "string"
},
"sticker": {
"type": "number",
"description": "USD"
},
"perOrderFees": {
"type": "number",
"description": "USD"
},
"allIn": {
"description": "Sticker + that provider's per-order fees, one test ordered alone",
"type": "number"
},
"pricedAt": {
"description": "Date the price was verified (YYYY-MM-DD)",
"type": "string"
},
"url": {
"type": "string"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {}
},
"providers": {
"description": "Sorted by all-in price, TestWell included",
"type": "array",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"providerName": {
"type": "string"
},
"sticker": {
"type": "number",
"description": "USD"
},
"perOrderFees": {
"type": "number",
"description": "USD"
},
"allIn": {
"description": "Sticker + that provider's per-order fees, one test ordered alone",
"type": "number"
},
"pricedAt": {
"description": "Date the price was verified (YYYY-MM-DD)",
"type": "string"
},
"url": {
"type": "string"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {}
}
},
"reference": {
"type": "object",
"properties": {
"hospitalTypical": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
},
"questDirect": {
"anyOf": [
{
"type": "number",
"description": "USD"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {}
},
"caveats": {
"type": "array",
"items": {
"type": "string"
}
},
"dataset": {
"type": "string",
"description": "Absolute https URL on test-well.com"
},
"methodology": {
"type": "string"
},
"license": {
"type": "string"
},
"query": {
"type": "string"
},
"hint": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢interpret_results(values, sex, age, pregnancy, postmenopausal)
Flag each pasted lab value as low / normal / high against TestWell's physician-reviewed reference catalog (130+ markers; sex- and age-specific bands where they exist), with the reviewed 'what high/low suggests' copy, retest guidance, cited sources and links to the marker's page and, where one exists, its high/low interpretation page. Stateless — values are not stored or logged. Educational, not a diagnosis; the user's own report range takes precedence.
Eingabe-Schema
{
"type": "object",
"properties": {
"values": {
"minItems": 1,
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"marker": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"value": {
"type": "number"
},
"unit": {
"type": "string",
"maxLength": 20
}
},
"required": [
"marker",
"value"
]
},
"description": "Results to explain, e.g. [{marker:'TSH', value:5.2, unit:'mIU/L'}, {marker:'ferritin', value:12}]"
},
"sex": {
"type": "string",
"enum": [
"male",
"female"
]
},
"age": {
"type": "integer",
"minimum": 0,
"maximum": 120
},
"pregnancy": {
"type": "boolean"
},
"postmenopausal": {
"type": "boolean"
}
},
"required": [
"values"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"input": {
"type": "object",
"properties": {
"marker": {
"type": "string"
},
"value": {
"type": "number"
},
"unit": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {}
},
"found": {
"type": "boolean"
},
"marker": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"flag": {
"type": "string",
"enum": [
"low",
"normal",
"high",
"unknown"
]
},
"range": {
"anyOf": [
{
"type": "object",
"properties": {
"qualifier": {
"type": "string"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"unit": {
"type": "string"
},
"text": {
"type": "string"
}
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"deviationPct": {
"description": "Distance outside the band as % of band width",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"unitMismatch": {
"type": "boolean"
},
"suggests": {
"description": "Reviewed copy for this direction",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"retest": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"citations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"links": {
"type": "object",
"properties": {
"biomarker": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"interpretation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"orderTest": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {}
},
"suggestions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
}
},
"summary": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"matched": {
"type": "number"
},
"high": {
"type": "number"
},
"low": {
"type": "number"
},
"normal": {
"type": "number"
},
"unknown": {
"type": "number"
}
},
"additionalProperties": {}
},
"disclaimer": {
"type": "string"
},
"reviewed": {
"type": "object",
"properties": {
"catalog": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"reviewer": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢convert_units(analyte, value, direction)
Convert a lab value between US conventional and SI units for 30 common analytes (glucose, cholesterol, testosterone, vitamin D, …) using published factors; hemoglobin A1c uses the NGSP↔IFCC master equation and also returns estimated average glucose.
Eingabe-Schema
{
"type": "object",
"properties": {
"analyte": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Analyte slug or name, e.g. 'glucose', 'total-cholesterol', 'testosterone', 'vitamin-d', 'a1c'"
},
"value": {
"type": "number",
"description": "The numeric value to convert"
},
"direction": {
"description": "Default toSI (US → SI)",
"type": "string",
"enum": [
"toSI",
"toConventional"
]
}
},
"required": [
"analyte",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"analyte": {
"type": "string"
},
"input": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string"
}
},
"additionalProperties": {}
},
"output": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string"
}
},
"additionalProperties": {}
},
"factor": {
"type": "number"
},
"method": {
"type": "string"
},
"estimatedAverageGlucose": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string"
}
},
"additionalProperties": {}
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"biomarkerUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"error": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢calculate_free_testosterone(totalT, totalTUnit, shbg, albuminGdL)
Calculate free and bioavailable testosterone from total testosterone, SHBG and albumin using the Vermeulen (1999) mass-action equation — the method behind lab-reported 'calculated free testosterone'. Educational; not a diagnosis.
Eingabe-Schema
{
"type": "object",
"properties": {
"totalT": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Total testosterone"
},
"totalTUnit": {
"description": "Default ng/dL",
"type": "string",
"enum": [
"ng/dL",
"nmol/L"
]
},
"shbg": {
"type": "number",
"exclusiveMinimum": 0,
"description": "SHBG in nmol/L"
},
"albuminGdL": {
"description": "Albumin in g/dL (default 4.3)",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 6
}
},
"required": [
"totalT",
"shbg"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"inputs": {
"type": "object",
"properties": {
"totalT": {
"type": "number"
},
"totalTUnit": {
"type": "string"
},
"shbg": {
"type": "number"
},
"albuminGdL": {
"type": "number"
}
},
"additionalProperties": {}
},
"freeTestosterone": {
"type": "object",
"properties": {
"pgmL": {
"type": "number"
},
"ngdL": {
"type": "number"
},
"nmolL": {
"type": "number"
}
},
"additionalProperties": {}
},
"bioavailableTestosterone": {
"type": "object",
"properties": {
"ngdL": {
"type": "number"
},
"nmolL": {
"type": "number"
}
},
"additionalProperties": {}
},
"freePercent": {
"type": "number"
},
"method": {
"type": "string"
},
"tests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"toolUrl": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢compare_provider(provider)
Honest side-by-side of TestWell and another direct-to-consumer lab service (Quest Direct, Labcorp OnDemand, Function Health, JustLabs, Ulta Lab Tests, …): pricing model, per-order fees, labs, turnaround, where each wins, spot prices on common tests as sticker AND all-in, with verification dates and sources. Call with no argument to list the providers covered.
Eingabe-Schema
{
"type": "object",
"properties": {
"provider": {
"description": "Competitor slug or name, e.g. 'quest-direct', 'Function Health', 'justlabs'",
"type": "string",
"maxLength": 60
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"competitor": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"pricingModel": {
"type": "string"
},
"perOrderFees": {},
"labPartners": {
"type": "array",
"items": {
"type": "string"
}
},
"statesServed": {
"type": "number"
}
},
"additionalProperties": {}
},
"testwell": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"verdict": {
"type": "string"
},
"spotPrices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"test": {
"type": "string"
},
"testwell": {},
"competitor": {},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {}
}
},
"testWellWinsAt": {
"type": "array",
"items": {
"type": "string"
}
},
"competitorWinsAt": {
"type": "array",
"items": {
"type": "string"
}
},
"testWellNotFor": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"description": "Date the competitor's prices were verified",
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"type": "string",
"description": "Absolute https URL on test-well.com"
},
"providers": {
"description": "Returned when no provider was named",
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": {}
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢get_guide(path, lang)
Return one of TestWell's educational pages as Markdown: guides (/guides/<slug>), condition workups (/conditions/<slug>), biomarker pages (/biomarkers/<slug>), state pages (/lab-locations/<slug>) or comparisons (/compare/<slug>). Call with no path to list the available guides and conditions.
Eingabe-Schema
{
"type": "object",
"properties": {
"path": {
"description": "Site path, e.g. '/guides/annual-blood-work' or 'conditions/anemia'",
"type": "string",
"maxLength": 160
},
"lang": {
"description": "Spanish version when one exists (default en)",
"type": "string",
"enum": [
"en",
"es"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"path": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "Absolute https URL on test-well.com"
},
"markdown": {
"description": "Full page as Markdown",
"type": "string"
},
"guides": {
"description": "Index, returned when no path was given",
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"title": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"title": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"answers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
},
"additionalProperties": {}
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}Community
Nachweis