> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anivahealth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Overview of the Aniva Partner API

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

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/authentication">
    Authenticate requests with your partner API key.
  </Card>

  <Card title="Quick Start" icon="bolt" href="/quickstart">
    Make your first API call in minutes with step-by-step examples.
  </Card>

  <Card title="Profiles" icon="user" href="/concepts/profiles">
    Learn how patient profiles work and what data they hold.
  </Card>

  <Card title="Appointments" icon="calendar" href="/concepts/appointments">
    Understand the appointment lifecycle from scheduling to confirmation.
  </Card>
</CardGroup>

## 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

All instants on the wire are **UTC ISO 8601** (`Z` suffix). Calendar-only fields use **wall-clock
pieces** (`YYYY-MM-DD`, `HH:MM`).

| Bucket             | Format                                                                 | Used for                                                                                                                                                                                                     |
| ------------------ | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Instant**        | ISO 8601 in UTC (`Z` suffix, e.g. `2026-04-15T08:30:00Z`)              | Every datetime on output — appointment `scheduled_at`, availability `slots[]`, shipment `pickup.from` / `pickup.till`, `created_at`, `updated_at`, `added_at`. Render in any local timezone client-side.     |
| **Provider event** | ISO 8601 with the upstream provider's offset (passed through verbatim) | Shipment `status_updates[].time` only — the offset reflects what the courier reported.                                                                                                                       |
| **Wall-clock**     | `YYYY-MM-DD` for dates, `HH:MM` for times — no offset                  | Calendar-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`. Both forms encode the same instant; the response always
  re-renders `scheduled_at` as UTC `Z`. Use the location's `timezone` field (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 `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.

<Note>Contact Aniva to receive your partner API key.</Note>
