Skip to main content

Method

GET /v1/products/{productIdOrSlug}/departures/{departureId}/itinerary You can also call the top-level form: GET /v1/departures/{departureId}/itinerary?productId=prod_xxx. Both return the same data; the nested route additionally supports product slugs. If no include is provided, the response contains days, segments, and options.

Path Parameters

productIdOrSlug
string
Product ID (prod_...) or slug.
departureId
uuid
Departure ID.

Query Parameters

locale
string
Locale for translations (alias: lang).
include
string
Comma-separated extras: segments, options. Defaults to all when omitted.

Headers

Authorization
string
Bearer token (e.g. Authorization: Bearer YOUR_API_KEY)

Request Example

curl "https://api.voyantcloud.com/v1/products/paris-city-break/departures/dep_456/itinerary?include=segments,options" \
  -H "Authorization: Bearer $VOYANT_API_KEY"

Response

{
  "itinerary_id": "iti_001",
  "version_id": "itv_010",
  "days": [
    {
      "id": "day_1",
      "day_no": 1,
      "title": "Arrival in Athens",
      "description": "Check in and welcome dinner",
      "thumbnail_url": null,
      "thumbnail_asset_id": null,
      "segments": [
        {
          "id": "seg_1",
          "day_id": "day_1",
          "sort": 1,
          "title": "City tour",
          "description": "Guided walking tour",
          "place_id": "place_athens",
          "start_time": "09:00",
          "end_time": "12:00",
          "option_groups": [
            {
              "id": "grp_1",
              "activity_id": "seg_1",
              "type": "addon",
              "label": "Lunch add-on",
              "description": null,
              "min_selections": 0,
              "max_selections": 1,
              "is_required": false,
              "sort_index": 0,
              "options": [
                {
                  "id": "opt_1",
                  "group_id": "grp_1",
                  "label": "Traditional taverna",
                  "description": "3-course meal",
                  "price_delta": 25,
                  "currency": "EUR",
                  "duration_minutes": 90,
                  "inventory_sku": null,
                  "capacity_per_slot": null,
                  "timeslot_rule_id": null,
                  "min_qty": 1,
                  "max_qty": 10,
                  "is_default": false,
                  "sort_index": 0
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
When include is omitted the response only contains the ordered list of day cards. Add segments and options to hydrate booking flows with rich activity data.