Appointments
Create Appointment
Schedule a blood draw appointment for a profile at a test location
POST
Schedule a blood draw appointment for a patient profile at a specific test location. Once created, the appointment enters
confirmed status by default (some locations may instead default to pending — this is a per-location setting). Use Add Panels to attach blood test panels before confirming the blood draw.
Request
Body parameters
UUID of the patient profile to create the appointment for.
UUID of the test location where the blood draw will take place. Use List
Locations to find available location IDs.
Date and time of the appointment in ISO 8601 format (e.g.,
2026-05-15T10:30:00Z or
2026-05-15T12:30:00+02:00). Must include a timezone designator — either Z or an explicit
offset like +02:00; naive datetimes are rejected. Must be in the future.Response
On success, the API returns201 Created with the new appointment.
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.The patient profile associated with this appointment.
Panels currently attached to this appointment. Empty for newly-created appointments — attach via
Add Panels. Look up panel details (name, biomarkers) via
List Panels.
Shipments linked to this appointment, oldest-link first. Empty for newly-created appointments —
link via Create Shipment (with
appointment_id) or
Attach Shipments to Appointment.Error responses
| Status | Description |
|---|---|
400 | Validation error — e.g., scheduled_at is in the past. |
403 | Forbidden — your API key does not have access to this operation. |
404 | Profile or location not found. |
500 | Internal server error. |