# List Cancelled Appointments Endpoint: GET /cancelled_appointment Version: v1 Security: x-api-key, a-api-key ## Query parameters: - `page` (integer) Example: 1 - `page_size` (integer) Example: 50 - `sort_by` (array) Comma separated search fields. See Sorting Example: ["[\"field_name\",\"field_name\"]"] - `include_deletions` (boolean) - `q[]` (array) Filter result by one or more fields. See Query Filtering Available filters: | Value | Format | |---|---| | created | timestamp | | updated | timestamp | | cancellation_time | timestamp| | app_time | datetime| | profession_id | integer | | business_id | integer | | client_id | integer | | appointment_type_id | integer | | practitioner_id | integer | ## Response 200 fields (application/json): - `cancelled_appointments` (array) - `cancelled_appointments.row_num` (integer) - `cancelled_appointments.total_rows` (integer) - `cancelled_appointments.links` (object) - `cancelled_appointments.links.self` (string) Example: "https://api.pracsuite.com/v1/cancelled_appointment/1" - `cancelled_appointments.tenant_id` (integer) - `cancelled_appointments.appointment_id` (integer) - `cancelled_appointments.client_id` (integer) - `cancelled_appointments.app_time` (string) ISO 8601 local datetime in the tenant's timezone. Example: "2026-01-01T12:05:30" - `cancelled_appointments.description` (string) - `cancelled_appointments.appointment_type` (string) - `cancelled_appointments.appointment_status` (string) - `cancelled_appointments.category` (string) - `cancelled_appointments.duration` (integer) - `cancelled_appointments.notes` (string) - `cancelled_appointments.practitioner_id` (integer) - `cancelled_appointments.business_id` (integer) - `cancelled_appointments.profession_id` (integer) - `cancelled_appointments.item_code` (string) - `cancelled_appointments.account_id` (integer) - `cancelled_appointments.cancellation_time` (string) RFC 3339 UTC date-time (Z) with microsecond precision. Example: "2020-09-12T11:09:42.687393Z" - `cancelled_appointments.cancelled_by` (string) - `cancelled_appointments.cancellation` (boolean) - `cancelled_appointments.reason` (string) - `cancelled_appointments.appointment_cancellation_reason_id` (integer) - `total_entries` (integer) ## Response 400 fields (application/json): - `error` (object, required) - `error.status` (integer) Example: 400 - `error.code` (string) Example: "INVALID_PARAMS" - `error.detail` (string) Human readable explanation of the error Example: "One or more request parameters are invalid." - `request_id` (string, required) Example: "00000000-0000-0000-0000-000000000000" ## Response 401 fields (application/json): - `error` (object, required) - `error.status` (integer) Example: 403 - `error.code` (string) Example: "UNAUTHORIZED" - `error.detail` (string) Human readable explanation of the error Example: "Access could not be verified for this request." - `request_id` (string, required) Example: "00000000-0000-0000-0000-000000000000" ## Response 403 fields (application/json): - `error` (object, required) - `error.status` (integer) Example: 403 - `error.code` (string) Example: "MISSING_AUTHENTICATION_TOKEN" - `error.detail` (string) Human readable explanation of the error Example: "Authentication token is missing or the requested endpoint does not exist" - `request_id` (string, required) Example: "00000000-0000-0000-0000-000000000000" ## Response 500 fields (application/json): - `error` (object, required) - `error.status` (integer) Example: 500 - `error.code` (string) Example: "SERVER_ERROR" - `error.detail` (string) Human readable explanation of the error Example: "An unexpected error occurred while processing your request. Please try again in a few minutes. If it keeps happening, contact support with Request ID: 00000000-0000-0000-0000-000000000000." - `request_id` (string, required) Example: "00000000-0000-0000-0000-000000000000"