Skip to main content
GET
Returns a paginated catalog of the biomarkers your API key can order at one origin. Attach them to appointments or to home kits. Archived biomarkers are excluded. A biomarker lists when an order at a lab your key may use delivers it, and the order draws only into containers the origin holds. The sample tubes decide, not the analyte type. Requires the panels_access scope. The pricing object also requires the prices_view scope.

Request

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 appointments are drawn at. A biomarker lists when its order draws only into containers that location holds. Correlate with List Locations.
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. retail_cents is always the retail card.
number
Maximum results to return (1–1000). Omit to return the entire matching catalog — it’s bounded (a few thousand rows at most). When omitted, pagination.limit echoes back total.
number
default:"0"
Pagination offset. Must be ≥ 0.

Response

Biomarker[]
Array of biomarkers matching the query.
object

Price objects

Pricing has one shape everywhere it appears — biomarkers, panels, the appointment preview and a quote. Pricing explains the model behind it; this is the field reference. Every amount is integer cents.
integer | null
What this costs on your rate card. 0 is a real price of zero — the item is not sold on its own, and the requires or positions block beside it says how it is sold instead. null is different: Aniva has not priced it, it is not free, it cannot be ordered, and it adds nothing to any total.
integer | null
The same amount at the recommended retail card. Always present; equal to price_cents when your key is already on the retail card.
"routine" | "specialty"
Which of your card’s two Aniva rates priced this marker. Present only when it has a price of its own.
object[]
The commercial offers containing this biomarker, cheapest first. With price_cents: 0 these are the only way to order it; with a positive price_cents they are the bundles it also belongs to. A position bills once and is always delivered whole.
string
Stable position identifier. Joins via_position on an appointment bill.
string
Partner-facing position name.
integer | null
What the whole position costs on your card, billed once. retail_cents sits beside it.
number[]
Every biomarker the position delivers, including the one you queried.
number[]
The members other than the biomarker you queried — what rides along when you buy it.
object[]
Present when this biomarker is a ratio. Ordering it puts these components in the cart at their own prices, and a component is paid once per cart however many ratios lean on it. The ratio’s own price_cents is billed in addition to its components. Most ratios cost 0. Each entry carries id, name, price_cents and retail_cents.A ratio whose components are not all priced is absent from the catalog entirely — it never appears with price_cents: null.
Panels carry price_cents and retail_cents alone: a panel has a single catalog price and no positions or components.

Error responses