Skip to content

Update Waitlist Request

Update an existing patient waitlist request. Only the fields provided in the request body are modified.

Endpoint

PATCH /apis/v1/waitlist-requests/{id}

Path Parameters

Parameter Type Required Description
id string (uuid) Yes Unique identifier of the waitlist request.

Request Body

All fields are optional. Only provided fields are updated; omitted fields keep their existing values.

Parameter Type Required Description
preferred_providers array No Replaces the list of preferred provider IDs.
preferred_time_slots array No Replaces preferred time slots. Allowed values: MORNING, AFTERNOON, EVENING, ANYTIME.
preferred_days array No Replaces preferred days. Allowed values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
date_range_start string (date) No New earliest date (YYYY-MM-DD, interpreted in clinic timezone).
date_range_end string (date) No New latest date (YYYY-MM-DD, interpreted in clinic timezone).
appointment_category_id string No New appointment category. Must be valid for the clinic.
appointment_category string No Category label. If omitted, resolved from the category API.
appointment_type string No New appointment type. Accepts Initial Evaluation, Follow Up, INITIAL_EVAL, or FOLLOW_UP.
payment_type string No New payment method. Allowed values: SELF_PAY, INSURANCE_PAY.
priority integer No New urgency level 1-5.
notes string No Replaces the free-text notes.
status string No New request status. Allowed values: ACTIVE, FULFILLED, CANCELLED, EXPIRED. Typically used to cancel a request.

Request

curl --location --request PATCH '{base_url}/apis/v1/waitlist-requests/req-123' \
  --header 'Authorization: Bearer JWT_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "preferred_time_slots": ["MORNING"],
    "preferred_days": ["MONDAY", "TUESDAY"],
    "priority": 2,
    "notes": "Updated notes"
  }'

Request Examples

Cancel a request

{
  "status": "CANCELLED"
}

Extend the date range

{
  "date_range_start": "2026-05-20",
  "date_range_end": "2026-06-30"
}

Response

Success Response

Code: 200 OK

{
  "code": 2000,
  "message": "Success",
  "data": {
    "id": "req-123",
    "clinic_id": "clinic-123",
    "patient_id": "patient-012",
    "preferred_providers": ["provider-345"],
    "preferred_time_slots": ["MORNING"],
    "preferred_days": ["MONDAY", "TUESDAY"],
    "date_range_start": "2026-05-15",
    "date_range_end": "2026-06-15",
    "appointment_category_id": "2058",
    "appointment_type": "INITIAL_EVAL",
    "appointment_duration": 60,
    "payment_type": "INSURANCE_PAY",
    "priority": 2,
    "status": "ACTIVE",
    "notes": "Updated notes",
    "patient": {
      "id": "patient-012",
      "first_name": "Jane",
      "last_name": "Doe"
    },
    "created_at": "2026-05-10T09:00:00Z",
    "created_at_epoch_ms": 1746867600000,
    "updated_at": "2026-05-12T10:30:00Z",
    "created_by": "user-123",
    "updated_by": "user-456"
  }
}

Response Fields

The response shape matches Get Waitlist Request.

Error Response

Code: 409 Conflict

{
  "code": 4090,
  "message": "waitlist request is closed",
  "data": null
}

Code: 400 Bad Request

{
  "code": 4000,
  "message": "active invites exist for this request",
  "data": null
}

Notes

  • A request in a terminal status (FULFILLED, CANCELLED, EXPIRED) cannot be updated; the API returns 409 Conflict.
  • Some changes (for example narrowing the date range) may be rejected with 400 while active invites are pending — rescind those invites first.