Reference

REST API

All 11 operations, generated from the same document the server serves. Base URL https://swisstouristy.com/api/public/v1.

The machine-readable contract is openapi.json (also YAML). This page is rendered from it. A route not described there does not exist.

GET/services/transfersanonymousdiscovery

List Transfer Services

Response 200

FieldTypeNotes
servicesarray
GET/routesanonymousrouting

Get Route By Pair

Origin/destination form. Exists so this surface and the MCP surface accept the same address forms — §B: one contract, not two dialects.

Parameters

  • originin queryrequired
  • destinationin queryrequired

Response 200

FieldTypeNotes
destinationreqstring
distance_kmnumber | null
duration_mininteger | null
live_contextobject | null
normalized_destinationstring
normalized_originstring
originreqstring
quotableboolean
route_contract_versionstring | null
route_keyreqstring
routing_basisstring | null
transfer_typereqstring
verification_statereqstring
waypointsarray
GET/routes/{route_key}anonymousrouting

Get Route

Parameters

  • route_keyin pathrequired

Response 200

FieldTypeNotes
destinationreqstring
distance_kmnumber | null
duration_mininteger | null
live_contextobject | null
normalized_destinationstring
normalized_originstring
originreqstring
quotableboolean
route_contract_versionstring | null
route_keyreqstring
routing_basisstring | null
transfer_typereqstring
verification_statereqstring
waypointsarray
GET/vehicle-classesanonymousdiscovery

List Vehicle Classes

Response 200

FieldTypeNotes
luggage_definitionsobject
special_item_kindsarray
vehicle_classesarray
GET/policies/{policy_key}anonymousdiscovery

Get Policy

Parameters

  • policy_keyin pathrequired

Response 200

FieldTypeNotes
full_refund_cutoff_hoursreqnumber
policy_keyreqstring
policy_textreqstring
policy_versionreqstring
GET/quote-requirementsanonymousdiscovery

Get Quote Requirements

Response 200

FieldTypeNotes
bookability_statesarray
fieldsarray
notesreqstring
POST/quote-intentsanonymousquote_estimate

Create Quote Intent

Anonymous, rate-limited, non-binding estimate. Nothing is persisted, no quote id is issued, and no contact is created.

Request body

FieldTypeNotes
adultsinteger | null
booking_typestring
childreninteger
destinationreqstring
distance_kmnumber | null
duration_hoursnumber | null
duration_mininteger | null
infantsinteger
luggageinteger
originreqstring
passengersinteger
pickup_datetimereqstring
waiting_minutesinteger
waypointsarray | null

Response 200

FieldTypeNotes
adultsreqinteger
childreninteger
currencystring
destinationreqstring
expires_atstring | null
infantsinteger
limitationsarray
luggagereqinteger
non_bindingboolean
optionsarray
originreqstring
passengersreqinteger
pickup_datetimestring | null
quote_idstring | null
request_idstring | null
requires_manual_confirmationboolean
reservation_statusstring
return_datetimestring | null
route_basisreq—
statusreqstring
waypointsarray
POST/quotesquote:createquote_authoritative

Create Quote

Create an authoritative, owned, persisted quote. The route is measured on the server and the snapshot carries full route provenance, so the resulting quote id is one the booking path will accept. Still not a booking and not a capacity hold.

Parameters

  • Idempotency-Keyin header

Request body

FieldTypeNotes
adultsinteger | null
booking_typestring
childreninteger
destinationreqstring
duration_hoursnumber | null
infantsinteger
luggageinteger
originreqstring
passengersinteger
pickup_datetimereqstring
return_datetimestring | null
waiting_minutesinteger
waypointsarray | null

Response 200

FieldTypeNotes
adultsreqinteger
childreninteger
currencystring
destinationreqstring
expires_atstring | null
infantsinteger
limitationsarray
luggagereqinteger
non_bindingboolean
optionsarray
originreqstring
passengersreqinteger
pickup_datetimestring | null
quote_idstring | null
request_idstring | null
requires_manual_confirmationboolean
reservation_statusstring
return_datetimestring | null
route_basisreq—
statusreqstring
waypointsarray
GET/quotes/{quote_id}quote:read-ownquote_read

Get Own Quote

Owner-only. A quote belonging to another caller and a quote that does not exist are answered identically — see quoting.get_own_quote for why.

Parameters

  • quote_idin pathrequired

Response 200

FieldTypeNotes
adultsreqinteger
childreninteger
currencystring
destinationreqstring
expires_atstring | null
infantsinteger
limitationsarray
luggagereqinteger
non_bindingboolean
optionsarray
originreqstring
passengersreqinteger
pickup_datetimestring | null
quote_idstring | null
request_idstring | null
requires_manual_confirmationboolean
reservation_statusstring
return_datetimestring | null
route_basisreq—
statusreqstring
waypointsarray
POST/checkout-sessionscheckout:preparecheckout

Create Checkout Handoff

Hand the traveler off to Swiss Touristy's hosted checkout. Creates no booking, no PaymentIntent and no capacity hold, and returns no Stripe identifier or secret. Payment happens on Swiss Touristy. Gated by PUBLIC_CHECKOUT_ENABLED, shared with the internal surface so there is one answer to "is public checkout live anywhere".

Parameters

  • Idempotency-Keyin header

Request body

FieldTypeNotes
fleet_idreqinteger
quote_idreqstring
traveler_approvalreqboolean

Response 200

FieldTypeNotes
checkout_urlreqstring
currencyreqstring
expires_atstring | null
fleet_idreqinteger
non_bindingboolean
quote_idreqstring
request_idstring | null
reservation_statusstring
statusstring
total_pricereqnumber
GET/checkout-sessions/{quote_id}anonymousquote_read

Resolve Checkout Handoff

Read the quote behind a continuation link. Anonymous by necessity: the traveler following the link is not the agent that created the quote, so no OAuth identity can be required. The continuation signature is the credential — it is keyed with SECRET_KEY, covers the quote id, the vehicle and the expiry, and grants nothing except reading this one quote's commercial terms. Without this the handoff cannot preserve quote identity: the receiving page would have to re-price the journey, and the traveler could be shown one amount by the agent and charged another.

Parameters

  • quote_idin pathrequired
  • fleet_idin queryrequired
  • sigin queryrequired

Response 200

FieldTypeNotes
checkout_urlreqstring
currencyreqstring
expires_atstring | null
fleet_idreqinteger
non_bindingboolean
quote_idreqstring
request_idstring | null
reservation_statusstring
statusstring
total_pricereqnumber