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.
- Panel catalog — Browse available panels with
GET /api/v1/panelsto discover panel IDs and biomarker membership. - Biomarker catalog — Browse the available biomarkers with
GET /api/v1/biomarkersto discover IDs. - Blood draw confirmation — Submit a barcode after a draw to trigger the lab order pipeline.
- Shipment pickup — Record courier pickup of blood samples in batch.
- 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.
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.
API versioning
The current API version is v1. All endpoints are prefixed with/api/v1/. 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.