What you can do
- Profile management — Create, retrieve, and update patient demographic profiles.
- Appointment scheduling — Book blood draw appointments at Aniva test locations.
- Panel management — Add or remove lab test panels on an existing appointment.
- Individual biomarkers — Attach or detach individual biomarkers on an appointment without picking a panel.
- Home kit orders — Send a mail-home test kit to a patient, track its parcels, and report when the sample was collected.
- Panel catalog — Browse available panels with
GET /api/v1/panelsto discover panel IDs and biomarker membership. - Biomarker catalog — Browse the biomarkers you can order at a location or in a home kit with
GET /api/v1/biomarkersto discover IDs. - Blood draw confirmation — Submit the lab code(s) after a draw to trigger the lab order pipeline.
- Lab results — Retrieve clinical and genetic results and download lab report PDFs.
- Location discovery — List available test locations to present to patients.
- Shipment logistics — Create, track, modify, and cancel courier shipment orders.
- Webhooks — Get an HTTPS call when an appointment, a home kit order, its results, a location, a profile or a shipment changes. See Webhooks.
Explore the docs
Authentication
Authenticate requests with your partner API key.
Quick Start
Make your first API call in minutes with step-by-step examples.
Profiles
Learn how patient profiles work and what data they hold.
Appointments
Understand the appointment lifecycle from scheduling to confirmation.
Home Kit Orders
Send a test kit to a patient’s home and follow it until the sample reaches the lab.
API versioning
The current API version is v1. All endpoints are prefixed with/api/v1/, except List panels (v2) at /api/v2/panels. The base URL is https://anivahealth.com.
Dates and timezones
All instants on the wire are UTC ISO 8601 (Z suffix). Calendar-only fields use wall-clock
pieces (YYYY-MM-DD, HH:MM).
Specific notes:
- Inputs that take a datetime (e.g.
scheduled_atonPOST/PATCH /api/v1/appointments) must include a timezone designator — eitherZor an explicit offset like+02:00. Naive datetimes are rejected with400. Both forms encode the same instant; the response always re-rendersscheduled_atas UTCZ. Use the location’stimezonefield (or any other IANA identifier) to format the instant in local wall-clock time when displaying it. - Wall-clock inputs are interpreted in the timezone of the resource they target: availability
dates use the
timezonequery param (defaults to the location’s timezone); shipmentpickup_date/pickup_time_*are interpreted in the origin location’s timezone. - Date-only response fields (e.g.
tested_at, availabilityavailability[].date) are calendar dates with no timezone.
Getting access
API keys are issued per partner by Aniva.Contact Aniva to receive your partner API key.