List appointments
GET /customer/{id}/appointments
Scope: appointments:read
Query parameters: page (default 0), pageSize (default 30, max 100)
Response:
{
"data": [
{
"id": "appt_201",
"type": "appointment",
"status": "CONFIRMED",
"notes": "",
"created_at": "2025-03-01T10:00:00",
"service": {
"id": "svc_10",
"type": "service",
"name": "Sports Massage",
"datetime": "2025-03-15T14:00:00",
"tz": "Europe/London",
"duration_minutes": 60,
"facilitator": {
"id": "fac_10",
"type": "facilitator",
"name": "Sarah Jones"
}
},
"payment": {
"method": "CARD",
"currency": "GBP",
"base100_price": 4500,
"status": "PAID"
}
}
],
"total": 8,
"page": 0,
"pageSize": 30
}
Appointment fields
| Field | Type | Description |
|---|
id | string | Appointment ID (prefixed with appt_) |
type | string | Always "appointment" |
status | string | e.g. "CONFIRMED" |
notes | string | Any notes attached to the appointment |
created_at | string | Creation timestamp |
service | object | Service details including scheduling and facilitator (see below) |
payment | object | Payment details (shape varies by method, see below) |
Service fields
| Field | Type | Description |
|---|
id | string | Service ID (prefixed with svc_) |
type | string | Always "service" |
name | string | Service name |
datetime | string | Appointment date and time |
tz | string | Timezone (e.g. Europe/London) |
duration_minutes | number | Duration in minutes |
facilitator | object | Facilitator delivering the appointment (id, type, name) |
Payment (CARD)
| Field | Type | Description |
|---|
method | string | "CARD" |
currency | string | Currency code |
base100_price | number | Price in base-100 (pence/cents) |
status | string | PAID, PENDING, or FAILED |
Payment (PASS)
| Field | Type | Description |
|---|
method | string | "PASS" |
currency | string | Always "CR" |
credits_used | number | Pass credits consumed |
status | string | PAID |