Appointment-services API
Auto-generated from the OpenAPI spec. Run
node docs-site/scripts/fetch-openapi.jsto regenerate.
GET /api/v1/appointment-services
List Appointment Services
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
include_inactive | query | No | boolean | |
page | query | No | integer | |
page_size | query | No | integer |
Responses
- 200 — Successful Response
- 422 — Validation Error
POST /api/v1/appointment-services
Create Appointment Service
Request body
| Field | Required | Type | Description |
|---|---|---|---|
name | Yes | string | |
description | No | string | |
duration_minutes | Yes | integer | |
buffer_minutes | No | integer | |
establishment_ids | No | array |
Responses
- 201 — Successful Response
- 422 — Validation Error
GET /api/v1/appointment-services/{service_id}/available-instructors
List Available Instructors For Service
Instructors eligible for this service: at least one active availability window scoped to the service (NULL-service_id windows are wildcards for every service), and — when the service is scoped to specific establishments — whose own location matches one of them (a service with no establishment links is open to instructors anywhere).
This does NOT filter by a specific date/day; GET /appointments/available-slots already does that per-instructor. This
endpoint only narrows down which instructors are eligible at all.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
service_id | path | Yes | integer |
Responses
- 200 — Successful Response
- 422 — Validation Error
GET /api/v1/appointment-services/{service_id}
Get Appointment Service
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
service_id | path | Yes | integer |
Responses
- 200 — Successful Response
- 422 — Validation Error
PATCH /api/v1/appointment-services/{service_id}
Update Appointment Service
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
service_id | path | Yes | integer |
Request body
| Field | Required | Type | Description |
|---|---|---|---|
name | No | string | |
description | No | string | |
duration_minutes | No | integer | |
buffer_minutes | No | integer | |
is_active | No | boolean | |
establishment_ids | No | array |
Responses
- 200 — Successful Response
- 422 — Validation Error
DELETE /api/v1/appointment-services/{service_id}
Deactivate Appointment Service
Soft-delete: deactivate the service (reversible via PATCH is_active=true).
This endpoint never hard-deletes — appointment history referencing the service must be preserved, consistent with the "deactivate = reversible" convention established for membership types. There is no companion hard-delete route for appointment services in this round.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
service_id | path | Yes | integer |
Responses
- 200 — Successful Response
- 422 — Validation Error