API · Lounge bookings
Lounges belong to a venue and are offered per event. Guests request or instantly confirm a lounge through the shop. Minimum spend is paid at the venue; admission tickets are separate. These reservations do not create ticket orders.
Pricing
The default organizer fee is 8 in the account currency before VAT per confirmed booking (EUR 8 for euro accounts). Platform staff can configure an account rate, including zero, independently of ticket pricing. Organizer tokens cannot change it.
Confirmation immediately deducts the fee including VAT from Usetix Credit. A EUR 8 fee with 19% VAT charges EUR 9.52. Pending and declined requests are free. The fee is final at confirmation: cancellations and no-shows do not refund it. Charges appear immediately in Credit usage and on the confirmation month’s platform invoice, already paid. Bookings confirmed before Credit billing are never billed retroactively, and later price changes do not change existing charges.
Endpoints
Use an account Bearer token and Accept: application/json. Writes require a write
token. Co-organizers can access only assigned events. Booking IDs are opaque
public IDs obtained from the booking collection.
| Method | Endpoint | Result |
|---|---|---|
| GET | /admin/events/:slug/lounges |
Venue lounges and event offerings |
| GET | /admin/events/:slug/lounge_bookings |
Requests, confirmations and cancellations |
| POST | /admin/events/:slug/lounge_bookings/:id/acceptance |
Confirm a pending request and charge Credit |
| POST | /admin/events/:slug/lounge_bookings/:id/rejection |
Decline a pending request without a fee |
| POST | /admin/events/:slug/lounge_bookings/:id/cancellation |
Cancel a request or reservation |
Both collections include the current account price:
{
"booking_fee": {
"amount": "8.0",
"currency": "EUR",
"credit_amount": "9.52"
}
}
amount excludes VAT; credit_amount is the total Credit required. Display this
price and explain that cancellations and no-shows do not refund the fee when asking
an organizer to confirm a request. The rate at confirmation applies. A repeated
acceptance of the same confirmed booking charges no extra fee.
Each item in bookings includes its original credit_fee, for example
{ "amount": "9.52", "currency": "EUR" }, including after cancellation.
Pending, waived and legacy bookings without a Credit charge report zero.
The booking’s status and cancelled_at describe its reservation status.
Acceptance returns { "id": "booking-public-id", "status": "accepted" }.
Insufficient Credit returns HTTP 422 with an errors.base array. The request
stays pending and competing requests remain untouched. Missing or inaccessible
records return 404.
Assistant and MCP
manage_lounges supports list, bookings, accept_booking, reject_booking
and cancel_booking. Its list and bookings actions expose the same account
price. Show that price and its non-refundable terms before requesting confirmation
of acceptance or enabling instant booking. Acceptance, rejection and cancellation require confirmed: true.
Venue catalog and event configuration
Lounges belong to the venue; event routes control the offering. Venue catalog writes require owner/manager access. Assigned co-organizers may change event offerings and review bookings. Venue IDs are numeric; lounge and booking IDs are opaque strings.
| Method | Route | Purpose |
|---|---|---|
| POST | /admin/venues/:venue_id/lounges |
Create a venue lounge (201 + Location) |
| GET | /admin/venues/:venue_id/lounges/:id |
Read venue defaults |
| PATCH | /admin/venues/:venue_id/lounges/:id |
Update venue defaults |
| DELETE | /admin/venues/:venue_id/lounges/:id |
Delete an unused lounge (204); booking history prevents deletion (422) |
| PATCH | /admin/events/:slug |
Set event.lounges_enabled and event.lounge_booking_mode |
| PATCH | /admin/events/:slug/lounges/:id |
Set event_lounge.enabled, minimum_spend or pricing for this event |
Venue create/update body:
{ "lounge": { "name": "Velvet", "capacity": 8, "minimum_spend": "350.00", "pricing": "flat", "description": "By the dance floor" } }
pricing is flat (whole group) or per_person (rate multiplied by party size).
Images use multipart lounge[image] (PNG/JPEG/GIF/WebP, max 15 MB); use
lounge[remove_image]=true to remove one. Arbitrary signed blob IDs are not accepted.
Event override body:
{ "event_lounge": { "enabled": true, "minimum_spend": "50", "pricing": "per_person" } }
Empty minimum_spend or pricing strings clear that override and restore the venue default.
Existing bookings retain their agreed terms. Hiding an offering stops new requests and preserves history.
Create a venue lounge, then enable lounges with:
{ "event": { "lounges_enabled": true, "lounge_booking_mode": "request" } }
Use instant to automatically confirm the first available request. Before enabling it,
show the current fee and explain the immediate, non-refundable Credit charge.
GET /admin/events/:slug exposes lounge_booking_fee even while lounges are disabled.
Lounge and booking collections require the event’s lounge opt-in.
CLI and assistant
usetix events lounges list club-night
usetix events lounges bookings club-night --json
usetix events lounges accept club-night BOOKING_ID
usetix events lounges accept club-night BOOKING_ID --yes
usetix events lounges configure club-night --enabled --booking-mode instant --yes
usetix events lounges cancel club-night BOOKING_ID --yes
Without --yes, acceptance/configuration show a fee preview and perform no write.
reject also requires --yes. Venue CRUD, photos and price overrides
remain available through usetix api using the routes above. Configure booking questions in the dashboard.
The built-in assistant and MCP share manage_lounges: list, configure, create,
update, bookings, accept_booking, reject_booking, cancel_booking.
configure accepts lounges_enabled and booking_mode. Instant activation and
booking reviews require confirmed: true; write actions require write scope.
bookings returns at most 100 records per page; follow next_page until null.
Confirmed bookings are also available in the scanner event snapshot. That read-only list excludes contact details, question answers and platform fees.