Skip to main content

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/availability still works but is deprecated. Use POST /v2/availability/check for 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 booked
  • selection_id — use this to make the reservation
  • prices — per-ticket pricing based on traveller mix (only when available = true)
  • price_types_required — traveller mix requirements (only when available = 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 child
  • require_guardian: true — this ticket type (e.g., Child) must be bought with a guardian ticket
  • min_booking_size / max_booking_size — total ticket count constraints

Pickup Points​

Some tours require a pickup location (pickup_required = true):

  • Choose a coras_pickup_id from the availability response
  • If pickup_on_request = true, the first option will be notListed — the user can enter a custom address via the pickup_entry field

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.