Skip to main content
Use this guide to find a test location, create an appointment for a patient profile, and attach the test panels to run. Complete these steps before the patient arrives for their blood draw. Required scope: TEST_SESSIONS_SCHEDULE (also accepts LOCATIONS_VIEW for the location lookup)
1

Browse available locations

Retrieve the list of test locations available on your account by sending a GET request to /api/v1/locations.
curl --request GET \
  --url https://anivahealth.com/api/v1/locations \
  --header 'x-api-key: YOUR_API_KEY'
The response is an array of location objects:
[
  {
    "id": "b7e2d914-1c3a-4f08-9e5b-6d0f7a83c421",
    "name": "Aniva Berlin Mitte",
    "company_name": "Aniva GmbH",
    "address_line_1": "Friedrichstraße 112",
    "address_line_2": null,
    "city": "Berlin",
    "state": "Berlin",
    "postal_code": "10117",
    "country_name": "Germany",
    "country_code": "DE",
    "timezone": "Europe/Berlin",
    "contact_phone": "+4930987654321",
    "email": "berlin-mitte@anivahealth.com",
    "website": "https://anivahealth.com",
    "google_maps_url": null,
    "image_url": null,
    "open_hours": {
      "monday": [{ "open": "08:00", "close": "17:00" }],
      "tuesday": [{ "open": "08:00", "close": "17:00" }],
      "wednesday": [{ "open": "08:00", "close": "17:00" }],
      "thursday": [{ "open": "08:00", "close": "17:00" }],
      "friday": [{ "open": "08:00", "close": "15:00" }],
      "saturday": [],
      "sunday": []
    }
  }
]
Use the timezone field from the location object when constructing your scheduled_at timestamp. Converting the appointment time to the location’s local timezone helps you avoid scheduling outside of open hours.
2

Create the appointment

Send a POST request to /api/v1/appointments with the profile ID, location ID, and your desired appointment time.
scheduled_at must be a future datetime in ISO 8601 format, for example 2026-05-12T09:30:00+02:00. Timestamps in the past are rejected with a 400 error.
curl --request POST \
  --url https://anivahealth.com/api/v1/appointments \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "profile_id": "a3f1c2e4-58b7-4d9e-b012-3c7f8a2e1d56",
    "location_id": "b7e2d914-1c3a-4f08-9e5b-6d0f7a83c421",
    "scheduled_at": "2026-05-12T09:30:00+02:00"
  }'
A successful request returns 201 Created with the appointment object:
{
  "id": "c9d4e827-3b6f-4a1c-8d2e-5f0b9c7e3a12",
  "profile_id": "a3f1c2e4-58b7-4d9e-b012-3c7f8a2e1d56",
  "location_id": "b7e2d914-1c3a-4f08-9e5b-6d0f7a83c421",
  "scheduled_at": "2026-05-12T09:30:00+02:00",
  "status": "scheduled",
  "test_method": "practitioner",
  "created_at": "2026-04-01T11:02:47Z",
  "updated_at": null,
  "profile": {
    "id": "a3f1c2e4-58b7-4d9e-b012-3c7f8a2e1d56",
    "first_name": "Emma",
    "last_name": "Müller",
    "email": "emma.muller@example.com"
  }
}
Save the appointment id — you’ll need it to add panels and confirm the blood draw.
3

Add test panels

Attach the test panels you want run on the blood sample by sending a POST request to /api/v1/appointments/{id}/panels.Panel IDs are UUIDs provided by Aniva for your partner account. Contact Aniva if you need the list of available panel IDs.
Panels cannot be added after the blood draw has been confirmed. Add all required panels before confirmation — see Confirm Blood Draw for details.
curl --request POST \
  --url https://anivahealth.com/api/v1/appointments/c9d4e827-3b6f-4a1c-8d2e-5f0b9c7e3a12/panels \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "panel_ids": [
      "d1f5a302-7c8e-4b2d-9f1a-0e3c6d4b8a27",
      "e2a7b491-5d9f-4c3e-8a2b-1f4d7e5c9b38"
    ]
  }'
A successful request returns 200 OK confirming the panels have been added:
{
  "success": true
}

Error handling

StatusCauseResolution
400 Bad RequestA required field is missing, scheduled_at is in the past, or panel_ids is empty.Check the error body for the validation message and correct the request.
403 ForbiddenYour API key is missing the TEST_SESSIONS_SCHEDULE scope.Contact Aniva to confirm your key has the required scope.
404 Not FoundThe profile_id or location_id does not exist, or the appointment ID is invalid when adding panels.Verify the IDs are correct and belong to your account.
409 ConflictYou attempted to add panels to an appointment that has already been confirmed.Panels cannot be added after confirmation. No further changes are possible.