Reorder Booking Options
Set the order the options are listed in everywhere: the booking page, the point of sale, the API and the EquipDash apps.
Send the full ordered list of ids, first one at the top.
Endpointโ
POST /v1/experiences/{id}/booking-options/reorder
Authenticationโ
Requires an API key with the experiences:write scope. There is no separate booking-options scope.
Path Parametersโ
| Parameter | Type | Description |
|---|---|---|
id | integer | Experience ID |
Request Bodyโ
| Field | Type | Required | Description |
|---|---|---|---|
booking_option_ids | array | Yes | Booking option ids in the order you want them, first one at the top. At least one id |
Ids that do not belong to this experience are ignored rather than refused, so a stray id cannot move another shop's options. When none of the ids belong to the experience, the request comes back 422 INVALID_ORDER.
Example Requestโ
curl -X POST "https://app.equipdash.com/api/v1/experiences/1234567/booking-options/reorder" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"booking_option_ids": [4322, 4321]
}'
Responseโ
Success (200 OK)โ
The options still on offer, in their new order.
{
"data": {
"experience_id": 1234567,
"booking_options": [
{
"id": 4322,
"experience_id": 1234567,
"name": "Private session",
"price_structure": "group",
"exclusive": true,
"unit_name": null,
"unit_name_plural": null,
"min_people": 1,
"max_people": 4,
"duration": {
"value": 90,
"unit": "minutes"
},
"sort_order": 0,
"archived": false,
"archived_at": null,
"created_at": "2026-01-15T10:05:00+00:00",
"updated_at": "2026-02-01T10:00:00+00:00"
},
{
"id": 4321,
"experience_id": 1234567,
"name": "Group class",
"price_structure": "participant",
"exclusive": false,
"unit_name": null,
"unit_name_plural": null,
"min_people": null,
"max_people": null,
"duration": {
"value": null,
"unit": null
},
"sort_order": 1,
"archived": false,
"archived_at": null,
"created_at": "2026-01-15T10:00:00+00:00",
"updated_at": "2026-02-01T10:00:00+00:00"
}
]
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-02-01T10:00:00+00:00"
}
}
Archived options are left out of this response even when you sent their ids.
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks experiences:write scope |
| 403 | forbidden | Experience belongs to a different supplier |
| 404 | resource_not_found | Experience does not exist |
| 422 | validation_error | booking_option_ids missing, empty, or not an array of integers |
| 422 | INVALID_ORDER | None of the ids belong to this experience |
Notesโ
- Send every id you want ordered. An option whose id you leave out keeps its old position number, which can leave two options sharing one, so the safest call is the full list.
- Read the current order from List booking options first, move the ids you need, and post the whole array back.