Skip to main content

Theater-Specific Flows

Note: The endpoints in this section (/v2/theater-events/{id}/instances/... and .../seats) are not deprecated. Only the top-level GET /v2/theater-events/{id} is deprecated in favour of GET /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_splits indicates how many tickets can be selected (e.g., [2, 4] means only 2 or 4 tickets can be purchased).
  • Check multiple_purchases on the attraction: if false, 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.