POST/v1/trains/journeys/:gdsprovider/:journeyId/offers

Get journey offers

Get bookable offers for a journey returned by the journey search.

Share

Get bookable offers for a journey returned by the journey search.

Authentication and headers

HeaderDescription
AuthorizationBearer <secret_key>. Keep the secret on the server and never write it to client logs.
X-Travelandz-Id<public_key>:<profile_code>, where the persisted profile code has the form dp_<12 alphanumeric>.
Content-Typeapplication/json for requests with a JSON body.

Request

Path: gdsprovider is currently 0; journeyId comes from the journey search. Optional query: language (en, es, zh) and returnCancellationPolicies (boolean).

Required body:

json
json
{"passengers":[{"type":"adult"},{"type":"senior"}]}

Request Params Schema

gdsprovider
enum
0
Yes
Currently 0
journeyId
stringYes
Journey id returned by the journey search.

Request Query Params Schema

language
enum
eneszh
No
returnCancellationPolicies
booleanNo

Request Body Schema

passengers
arrayYes
passengers[]type
enum
youthadultsenior
Yes

Success response

Returns a journey object whose itineraries contain offers[]. Offers include offerId, parts, flexibility, classes, conditions, cancellation policies and { amount, currency } price.

Response Body Schema

journey
objectYes
journeygdsprovider
numberYes
journeyjourneyId
stringYes
journeyitinerary
arrayYes
journeyitinerary[]itineraryIndex
numberYes
journeyitinerary[]segments
arrayYes
journeyitinerary[]segments[]segmentId
stringYes
journeyitinerary[]segments[]departure
objectYes
journeyitinerary[]segments[]departuredepartureAt
string
Format: ISO 8601
Yes
journeyitinerary[]segments[]departurename
stringYes
journeyitinerary[]segments[]departurelocationId
stringYes
journeyitinerary[]segments[]departurecountry
stringYes
journeyitinerary[]segments[]departurecountryCode
stringYes
journeyitinerary[]segments[]arrival
objectYes
journeyitinerary[]segments[]arrivalarrivalAt
string
Format: ISO 8601
Yes
journeyitinerary[]segments[]arrivalname
stringYes
journeyitinerary[]segments[]arrivallocationId
stringYes
journeyitinerary[]segments[]arrivalcountry
stringYes
journeyitinerary[]segments[]arrivalcountryCode
stringYes
journeyitinerary[]segments[]identifier
stringYes
journeyitinerary[]segments[]transport
enum
trainbusferry
Yes
journeyitinerary[]segments[]durationInMinutes
numberYes
journeyitinerary[]segments[]operator
objectYes
journeyitinerary[]segments[]operatorcode
stringYes
journeyitinerary[]segments[]operatorname
stringYes
journeyitinerary[]segments[]operatorimageUrl
stringNullable
journeyitinerary[]segments[]service
objectYes
journeyitinerary[]segments[]servicename
stringNullable
journeyitinerary[]segments[]serviceimageUrl
stringNullable
journeyitinerary[]offers
arrayYes
journeyitinerary[]offers[]offerId
stringYes
journeyitinerary[]offers[]parts
arrayYes
journeyitinerary[]offers[]parts[]segments
arrayYes
journeyitinerary[]offers[]parts[]segments[]segmentId
stringYes
journeyitinerary[]offers[]parts[]segments[]amenities
arrayYes
journeyitinerary[]offers[]parts[]segments[]amenities[]
string[]Yes
journeyitinerary[]offers[]parts[]flexibility
enum
non_flexsemi_flexfull_flex
Yes
journeyitinerary[]offers[]parts[]comfortClass
enum
basicstandardhighbestunknown
Yes
journeyitinerary[]offers[]parts[]serviceClass
enum
basicstandardhighbestunknown
Yes
journeyitinerary[]offers[]parts[]conditions
arrayYes
journeyitinerary[]offers[]parts[]conditions[]type
stringYes
journeyitinerary[]offers[]parts[]conditions[]condition
stringYes
journeyitinerary[]offers[]parts[]conditions[]note
stringNo
journeyitinerary[]offers[]parts[]conditions[]conditionKey
stringYes
journeyitinerary[]offers[]parts[]cancellationPolicies
arrayYes
journeyitinerary[]offers[]parts[]cancellationPolicies[]__typename
objectYes
journeyitinerary[]offers[]parts[]cancellationPolicies[]__typenametype
enum
CancellationByPercentageCancellationByPercentChargeCancellationByFixedChargeFullCancellableNonCancellable
Yes
journeyitinerary[]offers[]parts[]cancellationPolicies[]description
stringNo
journeyitinerary[]offers[]parts[]cancellationPolicies[]minimum_minutes_before_departure
numberNo
journeyitinerary[]offers[]parts[]cancellationPolicies[]maximum_minutes_before_departure
numberNo
journeyitinerary[]offers[]parts[]cancellationPolicies[]minimum_minutes_after_departure
numberNo
journeyitinerary[]offers[]parts[]cancellationPolicies[]maximum_minutes_after_departure
numberNo
journeyitinerary[]offers[]parts[]cancellationPolicies[]percentage
numberNo
When __typename is CancellationByPercentage
journeyitinerary[]offers[]parts[]cancellationPolicies[]chargePercentage
numberNo
When __typename is CancellationByPercentCharge
journeyitinerary[]offers[]parts[]cancellationPolicies[]chargeAmount
numberNo
When __typename is CancellationByFixedCharge
journeyitinerary[]offers[]parts[]cancellationPolicies[]currency
string
Format: ISO 4217 code
No
When __typename is CancellationByFixedCharge
journeyitinerary[]offers[]parts[]cancellationPolicies[]perPerson
booleanNo
When __typename is CancellationByPercentCharge or CancellationByFixedCharge. Is optional
journeyitinerary[]offers[]parts[]cancellationPolicies[]perLeg
booleanNo
When __typename is CancellationByPercentCharge or CancellationByFixedCharge. Is optional
journeyitinerary[]offers[]parts[]isRefundable
booleanYes
journeyitinerary[]offers[]price
objectYes
journeyitinerary[]offers[]priceamount
numberYes
journeyitinerary[]offers[]pricecurrency
stringYes
journeyitinerary[]offers[]createdAt
string
Format: ISO 8601
Yes
journeyitinerary[]offers[]expiresAt
string
Format: ISO 8601
Yes
journeystopovers
arrayYes
journeystopovers[]stopoverIndex
numberNo
journeystopovers[]durationInMinutes
numberNo
journeyroute
arrayYes
journeyroute[]itineraryIndex
numberNo
journeyroute[]stopoverIndex
numberNo
journeycomfortClasses
arrayYes
journeycomfortClasses[]
enum[]Yes
journeyaccommodations
arrayYes
journeyaccommodations[]
enum[]Yes
journeyticketClasses
arrayYes
journeyticketClasses[]comfortClass
enum
basicstandardhighbestunknown
Yes
journeyticketClasses[]serviceClass
enum
basicstandardhighbestunknown
Yes

Errors

  • 400 for validation or unknown fields.
  • 401 or 403 for invalid API credentials.
  • 500 internal_communication_error or unknown_error for provider failures.
  • 404 zero_journeys_found when offers cannot be found.

Usage notes

Use each offerId with the prebook endpoint. Offers expire, so continue the booking flow before expiresAt.

cURL example

bash
bash
curl --request POST \
  --url "https://api.sandbox.travelandz.com/v1/trains/journeys/0/journey_123/offers?language=en&returnCancellationPolicies=true" \
  --header "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
  --header "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
  --header "Content-Type: application/json" \
  --data '{"passengers":[{"type":"adult"}]}'