Archive or Restore a Booking Option
Stop offering a way of booking, or offer it again.
Nothing is deleted. Bookings already sold on the option keep their label and their price rows, which is why there is no delete endpoint here.
Endpointโ
PATCH /v1/experiences/{id}/booking-options/{optionId}/archived
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 |
optionId | integer | Booking option ID |
Request Bodyโ
| Field | Type | Required | Description |
|---|---|---|---|
archived | boolean | Yes | true stops offering this option, false offers it again |
Example Requestโ
curl -X PATCH "https://app.equipdash.com/api/v1/experiences/1234567/booking-options/4322/archived" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "archived": true }'
Responseโ
Success (200 OK)โ
{
"data": {
"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": 1,
"archived": true,
"archived_at": "2026-02-01T10:00:00+00:00",
"created_at": "2026-01-15T10:05: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"
}
}
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, or the option does not belong to it |
| 422 | validation_error | archived missing or not a boolean |
| 422 | ARCHIVE_BLOCKED | This is the experience's last option still on offer |
The last option cannot be archivedโ
An experience has to keep at least one way to be booked, or it drops off the booking page with nothing to explain why. Archiving the last live option is refused:
{
"error": {
"code": "ARCHIVE_BLOCKED",
"message": "This is the only way this experience can be booked, so it cannot be archived. Add another one first."
},
"meta": { "request_id": "req_abc123" }
}
Add the replacement option first, then archive this one.
Notesโ
- An archived option stays out of List booking options unless you pass
include_archived=1, and is never offered on a new booking. - Get experience returns archived options in
booking_optionsso an app can still name the option on an older booking. Filter onarchivedbefore offering a choice. - Restoring an option puts it back with the sort order and the prices it had.