Skip to main content
PATCH
/
api
/
v1
/
appointments
/
{id}
/
custom-snapshot
curl --request PATCH \
  --url https://anivahealth.com/api/v1/appointments/c9f3e2a1-7d6b-4c5e-b3a2-1f0e9d8c7b6a/custom-snapshot \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "panel_id": "00000000-0000-0000-0000-000000000aff",
    "biomarker_ids": [42, 108]
  }'
{
  "success": true
}
Add one or more individual biomarkers to an appointment under a chosen custom container panel.
Breaking change (ENG-1243, 2026-05-11) — the request body now requires panel_id. Pick one of the predefined custom panels and pass its UUID. The previous “auto-pick the first accessible custom panel” behaviour is gone.
Panel nameUUIDRoutes to
Aniva Custom ZotzKlimas00000000-0000-0000-0000-000000000affZotzKlimas
Aniva Custom Labclinic00000000-0000-0000-0000-000000000bffLabclinic
When the chosen panel routes exclusively to a single lab — Aniva Custom ZotzKlimas (ZK) or Aniva Custom Labclinic (LC) — the server validates that the post-change biomarker set is orderable at that lab as a coherent combination. Partial sets that would force the lab to also bill biomarkers you did not request are rejected with 400 and a multi-candidate explanation listing the missing biomarkers per orderable option (see the example 400 responses below). This call is idempotent: biomarkers already on the appointment are kept.
Biomarkers cannot be added after you call Confirm Blood Draw. Attempting to modify a confirmed appointment returns 409 Conflict.

Request

Path parameters

id
string
required
Unique identifier (UUID) of the appointment.

Body parameters

panel_id
string
required
UUID of the is_custom=true panel to write the snapshot under. Pick Aniva Custom ZotzKlimas or Aniva Custom Labclinic depending on which lab should handle the biomarkers. Must be a custom panel reachable via your API key.
biomarker_ids
number[]
required
Array of biomarker IDs to attach. Must contain at least one item. Use List Biomarkers to discover IDs.

Response

On success, the API returns 200 OK confirming the biomarkers have been attached.
success
boolean
true when the biomarkers have been successfully added to the appointment.

Error responses

StatusDescription
400Validation error — biomarker_ids empty, panel_id missing, or the lab’s order-requirements validator (ZK or LC) rejected the post-change set.
403Forbidden — missing scope, appointment outside access context, or the requested custom panel is not reachable.
404Appointment or one or more biomarkers not found.
409Conflict — biomarkers cannot be modified after the blood draw has been confirmed.
500Internal server error.
curl --request PATCH \
  --url https://anivahealth.com/api/v1/appointments/c9f3e2a1-7d6b-4c5e-b3a2-1f0e9d8c7b6a/custom-snapshot \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "panel_id": "00000000-0000-0000-0000-000000000aff",
    "biomarker_ids": [42, 108]
  }'
{
  "success": true
}