TestWell Lab Tests

Cash-pay lab tests: catalog search, all-in quotes by state, draw sites by ZIP, reviewed ranges.

사용해야 할까요

품질 및 안전성

A
설명 품질
99%
스키마 완전성
91%
이름 품질
92%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains role marker that could confuse chat modelscreate_checkout에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~9,902토큰 (도구 정의)
~5.1 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 7.74%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "testwell": {
      "url": "https://www.test-well.com/mcp"
    }
  }
}

원격 엔드포인트

https://www.test-well.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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).

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

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

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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": {}
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 18개
검증됨버전이 기록되지 않음도구 18개