Skip to main content
GET
/
api
/
v1
/
appointments
curl --request GET \
  --url https://anivahealth.com/api/v1/appointments \
  --header 'x-api-key: YOUR_API_KEY'
[
  {
    "id": "c9f3e2a1-7d6b-4c5e-b3a2-1f0e9d8c7b6a",
    "profile_id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
    "location_id": "b7e2d1f5-3c4a-4e8b-a2f1-9d0c1e2f3a4b",
    "scheduled_at": "2026-05-15T12:30:00+02:00",
    "status": "confirmed",
    "test_method": "practitioner",
    "created_at": "2026-04-01T09:45:00Z",
    "updated_at": null,
    "profile": {
      "id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
      "handle": null,
      "first_name": "Maria",
      "last_name": "Schmidt",
      "email": "maria.schmidt@example.com",
      "phone": "+4930123456789",
      "sex": 2,
      "date_of_birth": "1985-03-22",
      "height": 168,
      "weight": 65,
      "language": "de",
      "created_at": "2026-04-01T09:14:32Z",
      "updated_at": null
    },
    "panels": [
      {
        "panel_id": "f1c2d4a3-7b8e-4f2a-9c1d-2e3f4a5b6c7d",
        "added_at": "2026-04-01T09:50:00Z"
      }
    ],
    "shipments": [
      {
        "id": "P2604154821",
        "added_at": "2026-04-15T07:00:00Z"
      }
    ]
  }
]
Retrieve a list of blood draw appointments. Each appointment includes the embedded patient profile. When profile_id is provided, returns all appointments for that profile with no time restriction. When omitted, returns all accessible appointments within a default time window (past 2 months to future 1 month).
Requires test_sessions_view or test_sessions_schedule scope.

Request

Query parameters

profile_id
string
Filter by profile UUID. When provided, all appointments for this profile are returned regardless of scheduling date. When omitted, the default time window applies.

Response

On success, the API returns 200 OK with an array of appointment objects.
id
string
required
Unique appointment identifier (UUID).
profile_id
string
required
UUID of the profile this appointment belongs to.
location_id
string
UUID of the test location. null for home kit appointments.
scheduled_at
string
Scheduled appointment datetime in ISO 8601 format, returned with the test location’s offset (e.g. 2026-05-15T12:30:00+02:00). May be null.
status
string
required
Current appointment status. One of pending, confirmed, blood_drawn, or cancelled. Lab-result completion granularity is derived from Get Results; finer-grained shipment progression from each entry in the inline shipments array (see below) followed to Get Shipment.
test_method
string
Method used for the blood draw. One of practitioner or home. May be null.
created_at
string
required
ISO 8601 timestamp of when the appointment was created.
updated_at
string
ISO 8601 timestamp of the last update. May be null.
profile
object
required
The patient profile associated with this appointment.
panels
AppointmentPanel[]
required
Panels currently attached to this appointment. Excludes cancelled attachments. Look up panel details (name, biomarkers) via List Panels.
shipments
AppointmentShipmentLink[]
required
Shipments linked to this appointment, oldest-link first. Empty array when no shipments are linked. Cross-reference each id against Get Shipment for the full shipment payload (status, tracking number, status updates, etc.).

Error responses

StatusDescription
403Forbidden — your API key does not have access to this operation, or the requested profile is outside your permission scope.
500Internal server error.
curl --request GET \
  --url https://anivahealth.com/api/v1/appointments \
  --header 'x-api-key: YOUR_API_KEY'
[
  {
    "id": "c9f3e2a1-7d6b-4c5e-b3a2-1f0e9d8c7b6a",
    "profile_id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
    "location_id": "b7e2d1f5-3c4a-4e8b-a2f1-9d0c1e2f3a4b",
    "scheduled_at": "2026-05-15T12:30:00+02:00",
    "status": "confirmed",
    "test_method": "practitioner",
    "created_at": "2026-04-01T09:45:00Z",
    "updated_at": null,
    "profile": {
      "id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
      "handle": null,
      "first_name": "Maria",
      "last_name": "Schmidt",
      "email": "maria.schmidt@example.com",
      "phone": "+4930123456789",
      "sex": 2,
      "date_of_birth": "1985-03-22",
      "height": 168,
      "weight": 65,
      "language": "de",
      "created_at": "2026-04-01T09:14:32Z",
      "updated_at": null
    },
    "panels": [
      {
        "panel_id": "f1c2d4a3-7b8e-4f2a-9c1d-2e3f4a5b6c7d",
        "added_at": "2026-04-01T09:50:00Z"
      }
    ],
    "shipments": [
      {
        "id": "P2604154821",
        "added_at": "2026-04-15T07:00:00Z"
      }
    ]
  }
]