Appointments
List Appointments
Retrieve blood draw appointments accessible to your API key
GET
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
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 returns200 OK with an array of appointment objects.
Unique appointment identifier (UUID).
UUID of the profile this appointment belongs to.
UUID of the test location.
null for home kit appointments.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.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.Method used for the blood draw. One of
practitioner or home. May be null.ISO 8601 timestamp of when the appointment was created.
ISO 8601 timestamp of the last update. May be
null.The patient profile associated with this appointment.
Panels currently attached to this appointment. Excludes cancelled attachments. Look up panel
details (name, biomarkers) via List Panels.
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
| Status | Description |
|---|---|
403 | Forbidden — your API key does not have access to this operation, or the requested profile is outside your permission scope. |
500 | Internal server error. |