Skip to main content
GET
Returns a single biomarker by its numeric id. Useful for resolving the IDs returned by List Panels or appointment payloads into full details (name, unit, material, category) without scanning the entire catalog. It serves the same catalog as List Biomarkers, so send the same origin. An archived biomarker returns 404. So does a biomarker you cannot order at that origin with the labs your key may use. Requires the panels_access scope. The pricing object also requires the prices_view scope.

Path parameters

number
required
Biomarker identifier.

Query parameters

The origin is one of two shapes: a test location or a home kit. Send exactly one. Neither or both returns 400.
string
required
The location the appointment is drawn at. The biomarker returns 404 unless its order draws only into the containers that location holds.
string
Override which rate card price_cents uses: retail, or the id of a rate card your key may use. Get Rate Card returns that id. Defaults to the card on your API key’s billing account, else retail.

Response

number
Stable biomarker identifier.
string
URL-safe identifier.
string
Display name.
string | null
Long-form description, when available.
string | null
Primary category (e.g. Hormones, Vitamins).
string | null
Secondary category.
"clinical" | "genetic"
Whether this biomarker is a clinical measurement or a genetic marker.
string | null
Sample material required (e.g. serum, whole_blood).
object | null
Default measurement unit. Use id to dereference against List Units if you need stable identity across renames.
object | null
What this biomarker costs and how it is sold — see price objects. null only when your key lacks the prices_view scope; a biomarker Aniva has not priced is still returned, with pricing.price_cents: null.

Error responses