Skip to main content
POST
/
api
/
v1
/
appointments
/
pickup
curl --request POST \
  --url https://anivahealth.com/api/v1/appointments/pickup \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "appointment_ids": [
      "c9f3e2a1-7d6b-4c5e-b3a2-1f0e9d8c7b6a",
      "d4a5b6c7-8e9f-4a1b-c2d3-e4f5a6b7c8d9"
    ]
  }'
{
  "success": true
}
Mark a batch of appointments as picked up by the courier. This transitions appointments in blood_drawn status to in_transit. Appointments already in transit or completed are silently skipped.
Requires the TEST_SESSIONS_OPERATE or TEST_SESSIONS_MANAGE scope. Requests made with a key that lacks both scopes return 403 Forbidden.

Request

Body parameters

appointment_ids
string[]
required
Array of appointment UUIDs for which tubes have been picked up. Must contain at least one item.

Response

On success, the API returns 200 OK confirming the pickup has been recorded.
success
boolean
true when the shipment pickup has been recorded for all eligible appointments.

Error responses

StatusDescription
400Validation error — e.g., appointment_ids is empty or contains an invalid UUID.
403Forbidden — missing TEST_SESSIONS_OPERATE or TEST_SESSIONS_MANAGE scope.
404One or more appointments not found.
409One or more appointments not eligible for pickup (blood draw not yet confirmed).
500Internal server error.
curl --request POST \
  --url https://anivahealth.com/api/v1/appointments/pickup \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "appointment_ids": [
      "c9f3e2a1-7d6b-4c5e-b3a2-1f0e9d8c7b6a",
      "d4a5b6c7-8e9f-4a1b-c2d3-e4f5a6b7c8d9"
    ]
  }'
{
  "success": true
}