Skip to main content
The Aniva Partner API is a REST API that lets healthcare partners manage patient profiles, schedule blood draw appointments at test locations, and trigger lab order pipelines. You interact with the API over HTTPS using your partner API key.

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/panels to discover panel IDs and biomarker membership.
  • Biomarker catalog — Browse the available biomarkers with GET /api/v1/biomarkers to 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.
https://anivahealth.com/api/v1/
Breaking changes will be introduced under a new version prefix. The v1 API will remain available with advance notice of any deprecations.

Dates and timezones

The API uses two wire formats: ISO 8601 with offset for instants, and wall-clock pieces (YYYY-MM-DD, HH:MM) for tz-less calendar values. The offset on an instant tells you where the value is anchored.
BucketFormatUsed for
Schedule-bound instantISO 8601 with the relevant location offset (e.g. 2026-04-15T10:30:00+02:00); often accompanied by an IANA timezone fieldTimes the user-facing schedule cares about — appointment scheduled_at, availability slots[], shipment pickup.from / pickup.till, shipment status_updates[].time (offset comes from the upstream provider). The wall-clock you read in the string is the wall-clock at the location.
System-audit instantISO 8601 in UTC (with Z suffix, e.g. 2026-04-15T08:30:00Z)Audit timestamps not anchored to any user-facing location — created_at, updated_at, added_at.
Wall-clock piecesYYYY-MM-DD for dates, HH:MM for times — no offsetCalendar-only or time-of-day values — date_of_birth, results tested_at, availability start_date / end_date, shipment pickup_date / pickup_time_from / pickup_time_till, location open_hours.
Specific notes:
  • Inputs that take a datetime (e.g. scheduled_at on POST / PATCH /api/v1/appointments) must include a timezone designator — either Z or an explicit offset like +02:00. Naive datetimes are rejected with 400. The instant you sent is the instant we store, but the response always re-renders scheduled_at in the test location’s offset — so the wall-clock you read in the response string matches the wall-clock at the location, regardless of which designator you sent. (new Date(response.scheduled_at) returns the same UTC instant either way; only the human-readable rendering changes.)
  • Wall-clock inputs are interpreted in the timezone of the resource they target: availability dates use the timezone query param (defaults to the location’s timezone); shipment pickup_date / pickup_time_* are interpreted in the origin location’s timezone.
  • Date-only response fields (e.g. tested_at, availability availability[].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.