POST
/api/public/v1/appointments/{appointmentId}/update-status

Update appointment status

Update the status of an appointment (confirm, complete, mark no-show, cancel).

Required scope

The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Dev Tools → API, to an assistant or CLI sign-in when you approve or edit it under Dev Tools, and to a teammate under Employee → Permissions.

appointments:write

Path Parameters

NameTypeRequiredDescription
appointmentIdstringRequiredAppointment ID.

Request Body

PropertyTypeDescription
statusstringNew status.
cancellationReasonstringReason for cancellation (only used when status=CANCELLED).
POSTExample request
curl
curl -X POST "https://www.pxb.app/api/public/v1/appointments/{appointmentId}/update-status" \
  -H "Authorization: Bearer your_access_token" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "CANCELLED",
    "cancellationReason": "Customer requested reschedule."
  }'
200Example response
json
{
  "message": "Appointment status updated successfully!",
  "content": {
    "appointment": {
      "id": "appt_1",
      "status": "CANCELLED"
    }
  }
}

In the console

The same thing done by hand, for anyone comparing the API against the screen they already use.

Scheduling → Appointments
/scheduling/list
  1. Open an appointment.
  2. Move it to a new status.