Skip to content

Update Waitlist Request

Updates a waitlist request and returns the updated record.

Endpoint

PATCH /v2/waitlist-requests/{waitlist_request_id}

Path Parameters

Parameter Type Required Description
waitlist_request_id string Yes

Request Body

Parameter Type Required Description
appointment_type_id string No The appointment type, from List Appointment Types. A single id, not a list.
payment_mode string No How the visit is paid for. Required on create; omitting it fails the booking with an unhelpful error. One of SELF_PAY, INSURANCE_PAY.
appointment_type string No Derived from appointment_type_id when omitted on write. One of INITIAL_EVAL, FOLLOW_UP.
preferred_provider_ids array of string No Providers the patient would prefer. Empty means no preference.
preferred_days array of string No Any of MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
preferred_time_slots array of string No Any of MORNING, AFTERNOON, EVENING, ANYTIME.
date_range_start string (date) No Start of the window the patient can be seen in. Required. YYYY-MM-DD.
date_range_end string (date) No End of the window the patient can be seen in. Required. YYYY-MM-DD.
priority integer No
notes string No

Request

curl --location '{base_url}/v2/waitlist-requests/waitlist_request_id' \
  --request PATCH \
  --header 'Authorization: Bearer JWT_TOKEN' \
  --header 'Content-Type: application/merge-patch+json' \
  --data '{
  "appointment_type_id": "318",
  "payment_mode": "INSURANCE_PAY",
  "appointment_type": "INITIAL_EVAL",
  "preferred_provider_ids": [],
  "preferred_days": [
    "MONDAY"
  ],
  "preferred_time_slots": [
    "MORNING"
  ],
  "date_range_start": "2026-09-15",
  "date_range_end": "2026-10-15",
  "priority": 3,
  "notes": null
}'

Response

Success Response

Code: 200 OK

{
  "id": "3f9c1d4e-72ab-4c58-9e11-8b6d0a5427f3",
  "patient_id": "63120",
  "clinic_id": "5831",
  "appointment_type_id": "318",
  "preferred_provider_ids": [],
  "preferred_days": [
    "MONDAY"
  ],
  "preferred_time_slots": [
    "MORNING"
  ],
  "date_range_start": "2026-09-15",
  "date_range_end": "2026-10-15",
  "appointment_type": "INITIAL_EVAL",
  "payment_mode": "INSURANCE_PAY",
  "priority": 3,
  "notes": null,
  "status": "ACTIVE",
  "created_at": "2026-08-27T14:30:00Z",
  "updated_at": "2026-08-27T14:30:00Z"
}

Response Fields

Field Type Description
id string The waitlist request id, a UUID.
patient_id string The patient. Correlate on this — it's a stable id, and there's no external-reference field.
clinic_id string The clinic this record belongs to.
appointment_type_id string The appointment type, from List Appointment Types. A single id, not a list.
preferred_provider_ids array of string Providers the patient would prefer. Empty means no preference.
preferred_days array of string Any of MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
preferred_time_slots array of string Any of MORNING, AFTERNOON, EVENING, ANYTIME.
date_range_start string (date) or null Start of the window the patient can be seen in. Required. YYYY-MM-DD.
date_range_end string (date) or null End of the window the patient can be seen in. Required. YYYY-MM-DD.
appointment_type string Derived from appointment_type_id when omitted on write. One of INITIAL_EVAL, FOLLOW_UP.
payment_mode string How the visit is paid for. Required on create; omitting it fails the booking with an unhelpful error. One of SELF_PAY, INSURANCE_PAY.
priority integer
notes string or null
status string One of ACTIVE, FULFILLED, CANCELLED, EXPIRED.
created_at string (date-time) or null
updated_at string (date-time) or null

Error Response

Code: 400 Bad Request

{
  "code": "bad_request",
  "message": "Validation failed",
  "errors": [
    {
      "field": "patient_id",
      "message": "must be a string"
    }
  ]
}

Every error has the same shape — a machine-readable code, a message, and an errors[] array that's empty when there's nothing field-specific to report. The HTTP status is authoritative.

Status code Meaning
400 Bad Request bad_request The request body or parameters failed validation. errors[] names the offending fields.
401 Unauthorized unauthorized The access token is missing, malformed or expired.
403 Forbidden forbidden The request references a resource outside the token's organisation or clinic scope.
404 Not Found not_found No such resource, or it's outside your scope.
429 Too Many Requests rate_limited Rate limit exceeded. Back off and retry.
500 Internal Server Error internal_error Unexpected server error.
502 Bad Gateway upstream_error Upstream service failed or timed out.

Notes

  • PATCH is a JSON Merge Patch (RFC 7386): an omitted field is left alone, an explicit null clears it, and an array replaces the existing one wholesale.