Tour-Specific Flows
Checking Tour Availability
After getting tour details, check real-time availability for a specific date and ticket configuration:
POST /v2/availability/check
Headers: Booking-Session, Coras-Distributor
{
"attraction_id": "08e36beb3acadc1e69823b4d67aea83d",
"date": "2025-01-01",
"currency": "EUR",
"language_code": "en",
"tickets": [
{ "price_type_id": "6ca2ffe69a88f2bd02f6a35203b424fa", "number_of_tickets": 2 },
{ "price_type_id": "4dc8aef85a0dd10cb2f9b0ae206f274f", "number_of_tickets": 1 }
]
}
Deprecated alternative:
POST /v2/tours/availabilitystill works but is deprecated. UsePOST /v2/availability/checkfor all new integrations. See Deprecated Endpoints.
Returns a list of options (e.g., different departure times) with availability, pricing, and pickup points.
Key fields per option:
available— whether the option can be bookedselection_id— use this to make the reservationprices— per-ticket pricing based on traveller mix (only whenavailable = true)price_types_required— traveller mix requirements (only whenavailable = false)pickup_points— available pickup locations
Price Types & Guardian Rules
Tour attractions have typed tickets with age-based rules:
can_be_guardian: true— this ticket type (e.g., Adult) can accompany a childrequire_guardian: true— this ticket type (e.g., Child) must be bought with a guardian ticketmin_booking_size/max_booking_size— total ticket count constraints
Pickup Points
Some tours require a pickup location (pickup_required = true):
- Choose a
coras_pickup_idfrom the availability response - If
pickup_on_request = true, the first option will benotListed— the user can enter a custom address via thepickup_entryfield
Tour Language
Some tours offer language options. The languages_spoken object in the availability response maps language keys (e.g., "en/SERVICE_WRITTEN") to display names (e.g., "English - Written"). Pass the key as tour_language when reserving.