Skip to main content

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

ParameterTypeDescription
idintegerExperience ID
optionIdintegerBooking option ID

Request Bodyโ€‹

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

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, or the option does not belong to it
422validation_errorarchived missing or not a boolean
422ARCHIVE_BLOCKEDThis 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_options so an app can still name the option on an older booking. Filter on archived before offering a choice.
  • Restoring an option puts it back with the sort order and the prices it had.