Skip to main content

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โ€‹

ParameterTypeDescription
idintegerExperience ID

Request Bodyโ€‹

FieldTypeRequiredDescription
booking_option_idsarrayYesBooking 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โ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
401invalid_api_keyInvalid API key
403insufficient_scopeAPI key lacks experiences:write scope
403forbiddenExperience belongs to a different supplier
404resource_not_foundExperience does not exist
422validation_errorbooking_option_ids missing, empty, or not an array of integers
422INVALID_ORDERNone 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.