> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voyantcloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Transport Overview

> Retrieve departures, segments, and transport options for a product.

## Method

`GET` `/v1/products/:id/transport`

## Path Parameters

<ParamField path="id" type="uuid">Product ID whose transport overview should be returned.</ParamField>

## Headers

<ParamField header="Authorization" type="string">Bearer token (requires `products:read`).</ParamField>

## Request Example

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.voyantcloud.com/v1/products/prod_123/transport" \
    -H "Authorization: Bearer $VOYANT_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const res = await fetch("https://api.voyantcloud.com/v1/products/prod_123/transport", {
    headers: { Authorization: `Bearer ${process.env.VOYANT_API_KEY}` },
  })
  const overview = await res.json()
  ```

  ```python Python theme={null}
  import os, requests

  resp = requests.get(
    "https://api.voyantcloud.com/v1/products/prod_123/transport",
    headers={"Authorization": f"Bearer {os.environ['VOYANT_API_KEY']}"},
  )
  overview = resp.json()
  ```
</RequestExample>

## Response

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "departures": [
      {
        "id": "dep_456",
        "start_at": "2025-03-10T08:00:00Z",
        "end_at": "2025-03-15T18:00:00Z",
        "capacity": 40,
        "status": "scheduled",
        "meeting_point": "Athens Port",
        "transport_mode_id": "mode_sea"
      }
    ],
    "segments_by_departure": {
      "dep_456": [
        {
          "id": "seg_001",
          "departure_id": "dep_456",
          "seq": 1,
          "mode_id": "mode_flight",
          "operator_org_id": "org_airline",
          "from_place_id": "ChIJ8UNwppk4j4ARzWPaN9xq_9o",
          "to_place_id": "ChIJGaK-SZcYtUYR0Y1DSXB6QrM",
          "depart_offset_minutes": 0,
          "duration_minutes": 160,
          "attributes": {},
          "notes": "Direct flight",
          "is_charter": false,
          "airline_code": "RO",
          "flight_number": "381",
          "cabin_class": "economy",
          "fare_class_code": "Y",
          "seats_total": 40,
          "seats_available": 12,
          "luggage": { "checked_bag": 1 }
        }
      ]
    },
    "options_by_departure": {
      "dep_456": [
        {
          "id": "opt_001",
          "product_id": "prod_123",
          "departure_id": "dep_456",
          "key": "athens-flight",
          "name": "Athens flight",
          "description": "Morning flight",
          "seats_total": 40,
          "seats_available": 18,
          "pricing_override": {
            "price_delta": { "mode": "flat", "amount": 45 }
          },
          "attributes": {},
          "legs": [
            {
              "id": "opt_leg_001",
              "option_id": "opt_001",
              "seq": 1,
              "from_place_id": "ChIJ8UNwppk4j4ARzWPaN9xq_9o",
              "to_place_id": "ChIJGaK-SZcYtUYR0Y1DSXB6QrM",
              "airline_code": "RO",
              "flight_number": "381",
              "is_charter": false,
              "cabin_class": "economy",
              "fare_class_code": "Y",
              "depart_offset_minutes": 0,
              "duration_minutes": 160,
              "luggage": {}
            }
          ]
        }
      ]
    }
  }
  ```
</ResponseExample>

<Tip>
  `segments_by_departure` and `options_by_departure` are keyed by departure ID. Empty objects are returned when no segments or options exist.
</Tip>
