Theater-Specific Flows
Note: The endpoints in this section (
/v2/theater-events/{id}/instances/...and.../seats) are not deprecated. Only the top-levelGET /v2/theater-events/{id}is deprecated in favour ofGET /v2/attractions/{id}.
Getting Instance Details
For a specific instance with up-to-date pricing and availability:
GET /v2/theater-events/{attraction_id}/instances/{instance_id}
Headers: Booking-Session, Coras-Distributor
Returns price bands with sections, spaces remaining, and price types.
Understanding Price Bands
Each instance has multiple price bands, each representing a specific tier or category that determines how much a ticket costs based on the seat's location and view:
Price Band
├── id (e.g., "E29")
├── section_name (e.g., "Balcony")
├── spaces_remaining (e.g., 18)
├── is_general_admission (true/false)
├── price_types[]
│ ├── price_type_id
│ ├── price_type (e.g., "Full Price")
│ ├── price (face value per ticket)
│ ├── min_booking_fee / max_booking_fee
│ ├── min_full_price / max_full_price
│ └── valid_splits (e.g., [1, 2, 3, 4, 5, 6, 7, 8])
valid_splitsindicates how many tickets can be selected (e.g.,[2, 4]means only 2 or 4 tickets can be purchased).- Check
multiple_purchaseson the attraction: iffalse, all tickets must be from the same price band in a single reservation.
Seat Selection (Optional)
If seats_sales_enabled is true, you can offer seat-level selection:
GET /v2/theater-events/{attraction_id}/instances/{instance_id}/seats
Headers: Coras-Distributor
Returns seats grouped by category_id, each with a coras_seat_id that can be passed in the reservation request's seats array.