---
title: "List saved fares for a travel date"
method: GET
path: "/v1/fares/sailings"
tags: ["Fares"]
---

# List saved fares for a travel date

`GET /v1/fares/sailings`

## Request

- Base URL: `https://sweetsaverfare.com`
- URL: `https://sweetsaverfare.com/v1/fares/sailings`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://sweetsaverfare.com/oauth/auth`, token URL `https://sweetsaverfare.com/oauth/token`, scopes: `fares:read`)

Returns saved fare options for sailings on one route and date. Include the returned observation time when quoting a fare.

## Query parameters

- `include_price_history` boolean
- `include_overheight_alternatives` boolean
- `route_id` 'TSA_SWB' | 'SWB_TSA' | 'TSA_DUK' | 'DUK_TSA' | 'TSA_NAN' | 'HSB_NAN' | 'NAN_HSB' | 'SWB_FUL' | 'FUL_SWB' | 'HSB_LNG' | 'LNG_HSB' | 'ERL_SLT' | 'SLT_ERL' | 'CMX_PWR' | 'PWR_CMX', required
- `profile_id` 'ADULT_NO_VEHICLE' | 'ADULT_STANDARD_VEHICLE' | 'ADULT_OVERHEIGHT_VEHICLE', required
- `travel_date` string, date, required
- `departure_time` string
- `passenger` 'ADULT' | 'SENIOR_65_PLUS' | 'CHILD_0_4' | 'CHILD_5_11'

## Response `200`

Sailing fare observations

- SailingFareResponse
  - `observation_id` string, uuid, nullable, required
  - `observed_at` string, date-time, required
  - `stale_after` string, date-time, required
  - `freshness_state` 'fresh' | 'stale' | 'expired', required
  - `source_status` 'ok' | 'missing' | 'provider_queue_active' | 'session_expired' | 'blocked' | 'unknown', required
  - `data_source` 'demo' | 'fake_worker' | 'fixture' | 'live_provider' | 'schedule_reference', required
  - `parser_version` string, required
  - `observation_trace_id` string, nullable, required
  - `fixture_sha` string, nullable, required
  - `observation_outcome` 'verified' | 'partial' | 'unavailable' | 'failed'
  - `disclaimer` 'Ferry fares can change. Confirm final availability and price directly with BC Ferries before making travel decisions.', required
  - `route_id` 'TSA_SWB' | 'SWB_TSA' | 'TSA_DUK' | 'DUK_TSA' | 'TSA_NAN' | 'HSB_NAN' | 'NAN_HSB' | 'SWB_FUL' | 'FUL_SWB' | 'HSB_LNG' | 'LNG_HSB' | 'ERL_SLT' | 'SLT_ERL' | 'CMX_PWR' | 'PWR_CMX', required
  - `profile_id` 'ADULT_NO_VEHICLE' | 'ADULT_STANDARD_VEHICLE' | 'ADULT_OVERHEIGHT_VEHICLE', required
  - `travel_date` string, date, required
  - `route_advisory` RouteAdvisory, required
    - `message` string, required
    - `source_url` string, uri, required
    - `reviewed_at` string, date, required
  - `sailings` SailingObservation[], required
    - `observation_id` string, uuid, nullable, required
    - `observed_at` string, date-time, required
    - `stale_after` string, date-time, required
    - `freshness_state` 'fresh' | 'stale' | 'expired', required
    - `source_status` 'ok' | 'missing' | 'provider_queue_active' | 'session_expired' | 'blocked' | 'unknown', required
    - `data_source` 'demo' | 'fake_worker' | 'fixture' | 'live_provider' | 'schedule_reference', required
    - `parser_version` string, required
    - `observation_trace_id` string, nullable, required
    - `fixture_sha` string, nullable, required
    - `observation_outcome` 'verified' | 'partial' | 'unavailable' | 'failed'
    - `disclaimer` 'Ferry fares can change. Confirm final availability and price directly with BC Ferries before making travel decisions.', required
    - `id` string, uuid, required
    - `route_id` 'TSA_SWB' | 'SWB_TSA' | 'TSA_DUK' | 'DUK_TSA' | 'TSA_NAN' | 'HSB_NAN' | 'NAN_HSB' | 'SWB_FUL' | 'FUL_SWB' | 'HSB_LNG' | 'LNG_HSB' | 'ERL_SLT' | 'SLT_ERL' | 'CMX_PWR' | 'PWR_CMX', required
    - `travel_date` string, date, required
    - `departure_time` string, required
    - `profile_id` 'ADULT_NO_VEHICLE' | 'ADULT_STANDARD_VEHICLE' | 'ADULT_OVERHEIGHT_VEHICLE', required
    - `reservation_state` 'BOOKABLE' | 'BOOKABLE_BUT_NO_SAVER' | 'NOT_RELEASED' | 'SOLD_OUT_OR_UNAVAILABLE' | 'NON_RESERVABLE' | 'UNKNOWN', required
    - `sailing_id` string, uuid, nullable
    - `original_departure_time` string, nullable
    - `previous_departure_time` string, nullable
    - `schedule_changed_at` string, date-time, nullable
    - `schedule_match_status` 'EXACT' | 'INFERRED' | 'AMBIGUOUS' | 'null', nullable
    - `actual_departure_time` string, nullable
    - `estimated_departure_time` string, nullable
    - `eta` string, nullable
    - `status_reason` string, nullable
    - `space_available_percent` integer, nullable
    - `space_available_label` string, nullable
    - `reservations_not_checked_in_percent` integer, nullable
    - `vehicles_checked_in_percent` integer, nullable
    - `reservation_check_in_opens_at` string, date-time, nullable
    - `pending_space_released_at` string, date-time, nullable
    - `provider_updated_at` string, date-time, nullable
    - `vehicle_capacity_aeq` integer, nullable
    - `estimated_vehicle_spaces_available` integer, nullable
    - `operational_departure_deviation_minutes` integer, nullable
    - `sailing_lifecycle_state` 'UPCOMING' | 'NOW_TICKETING' | 'DELAYED' | 'DEPARTED' | 'CANCELLED' | 'NO_LONGER_LISTED' | 'NO_MORE_SAILINGS_TODAY' | 'UNKNOWN'
    - `overheight_alternative` OverheightAlternative
      - `observation_id` string, uuid, nullable, required
      - `observed_at` string, date-time, required
      - `stale_after` string, date-time, required
      - `freshness_state` 'fresh' | 'stale' | 'expired', required
      - `source_status` 'ok' | 'missing' | 'provider_queue_active' | 'session_expired' | 'blocked' | 'unknown', required
      - `data_source` 'demo' | 'fake_worker' | 'fixture' | 'live_provider' | 'schedule_reference', required
      - `parser_version` string, required
      - `observation_trace_id` string, nullable, required
      - `fixture_sha` string, nullable, required
      - `observation_outcome` 'verified' | 'partial' | 'unavailable' | 'failed'
      - `outcome_reason` string, nullable
      - `disclaimer` 'Ferry fares can change. Confirm final availability and price directly with BC Ferries before making travel decisions.', required
      - `profile_id` 'ADULT_OVERHEIGHT_VEHICLE', required
      - `reservation_state` 'BOOKABLE' | 'BOOKABLE_BUT_NO_SAVER', required
      - `price_cents` integer, nullable, required
      - `currency` 'CAD', required
      - `sailing_id` string, uuid, nullable, required
      - `departure_time` string, required
      - `travel_date` string, required
      - `route_id` 'TSA_SWB' | 'SWB_TSA' | 'TSA_DUK' | 'DUK_TSA' | 'TSA_NAN' | 'HSB_NAN' | 'NAN_HSB' | 'SWB_FUL' | 'FUL_SWB' | 'HSB_LNG' | 'LNG_HSB' | 'ERL_SLT' | 'SLT_ERL' | 'CMX_PWR' | 'PWR_CMX', required
    - `fare_options` FareOption[], required
      - `observation_id` string, uuid, nullable, required
      - `observed_at` string, date-time, required
      - `stale_after` string, date-time, required
      - `freshness_state` 'fresh' | 'stale' | 'expired', required
      - `source_status` 'ok' | 'missing' | 'provider_queue_active' | 'session_expired' | 'blocked' | 'unknown', required
      - `data_source` 'demo' | 'fake_worker' | 'fixture' | 'live_provider' | 'schedule_reference', required
      - `parser_version` string, required
      - `observation_trace_id` string, nullable, required
      - `fixture_sha` string, nullable, required
      - `observation_outcome` 'verified' | 'partial' | 'unavailable' | 'failed'
      - `disclaimer` 'Ferry fares can change. Confirm final availability and price directly with BC Ferries before making travel decisions.', required
      - `fare_family` 'SAVER' | 'PREPAID' | 'RESERVATION_ONLY' | 'STANDARD', required
      - `price_cents` integer, nullable, required
      - `currency` 'CAD', required
      - `available` boolean, required
      - `seats_remaining` integer, nullable
      - `price_breakdown` object[]
        - `label` string, required
        - `price_cents` integer, nullable, required
  - `price_history_included` boolean: False when the caller omitted history. An empty array then does not mean no observations exist.
  - `price_history` PriceHistoryPoint[], required
    - `observed_at` string, date-time, required
    - `price_cents` integer, required
    - `saver_price_cents` integer, nullable

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Permission or plan entitlement required
- `429`: Request rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/sweetsaverfare/apis/sweet-saver-fare-public-api.md) · [All operations](https://skmtc.dev/sweetsaverfare/apis/sweet-saver-fare-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sweetsaverfare/apis/sweet-saver-fare-public-api/revisions/102cb8af7798?raw)
