POST/v1/trains/journeys

Search train journeys

Search train journeys between two locations for a travel date.

Share

Search train journeys between two locations for a travel date.

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

Required JSON body:

json
json
{
  "origin": "originId",
  "destination": "destinationId",
  "date": "2026-08-20",
  "passengers": [{ "type": "adult" }]
}

origin and destination are location ids. date uses YYYY-MM-DD. passengers must contain at least one item with type set to youth, adult, or senior.

Request Body Schema

origin
stringYes
Location id returned by /locations.
destination
stringYes
Location id returned by /locations.
date
string
Format: YYYY-MM-DD
Yes
passengers
arrayYes
passengers[]type
enum
youthadultsenior
Yes
youth = 0–27 years, adult = 28–59 years, senior = 60+ years.

Success response

Returns journeys[]. Each journey includes gdsprovider, journeyId, itineraries, segments, stopovers, route, comfort classes, accommodations and ticket classes. Segment times are ISO 8601.

Response Body Schema

journeys
arrayYes
journeys[]gdsprovider
numberYes
journeys[]journeyId
stringYes
journeys[]itinerary
arrayYes
journeys[]itinerary[]itineraryIndex
numberYes
journeys[]itinerary[]segments
arrayYes
journeys[]itinerary[]segments[]segmentId
stringYes
journeys[]itinerary[]segments[]departure
objectYes
journeys[]itinerary[]segments[]departuredepartureAt
string
Format: ISO 8601
Yes
journeys[]itinerary[]segments[]departurename
stringYes
journeys[]itinerary[]segments[]departurelocationId
stringYes
journeys[]itinerary[]segments[]departurecountry
stringYes
journeys[]itinerary[]segments[]departurecountryCode
stringYes
journeys[]itinerary[]segments[]arrival
objectYes
journeys[]itinerary[]segments[]arrivalarrivalAt
string
Format: ISO 8601
Yes
journeys[]itinerary[]segments[]arrivalname
stringYes
journeys[]itinerary[]segments[]arrivallocationId
stringYes
journeys[]itinerary[]segments[]arrivalcountry
stringYes
journeys[]itinerary[]segments[]arrivalcountryCode
stringYes
journeys[]itinerary[]segments[]identifier
stringYes
journeys[]itinerary[]segments[]transport
enum
trainbusferry
Yes
journeys[]itinerary[]segments[]durationInMinutes
numberYes
journeys[]itinerary[]segments[]operator
objectYes
journeys[]itinerary[]segments[]operatorcode
stringYes
journeys[]itinerary[]segments[]operatorname
stringYes
journeys[]itinerary[]segments[]operatorimageUrl
stringNullable
journeys[]itinerary[]segments[]service
objectYes
journeys[]itinerary[]segments[]servicename
stringNullable
journeys[]itinerary[]segments[]serviceimageUrl
stringNullable
journeys[]stopovers
arrayYes
journeys[]stopovers[]stopoverIndex
numberNo
journeys[]stopovers[]durationInMinutes
numberNo
journeys[]route
arrayYes
journeys[]route[]itineraryIndex
numberNo
journeys[]route[]stopoverIndex
numberNo
journeys[]comfortClasses
arrayYes
journeys[]comfortClasses[]
enum[]Yes
journeys[]accommodations
arrayYes
journeys[]accommodations[]
enum[]Yes
journeys[]ticketClasses
arrayYes
journeys[]ticketClasses[]comfortClass
enum
basicstandardhighbestunknown
Yes
journeys[]ticketClasses[]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 no journey is available.

Usage notes

Keep journeyId for the offers request. operator.imageUrl and service.imageUrl can be null.

cURL example

bash
bash
curl --request POST \
  --url "https://api.sandbox.travelandz.com/v1/trains/journeys" \
  --header "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
  --header "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
  --header "Content-Type: application/json" \
  --data '{"origin":"originId","destination":"destinationId","date":"2026-08-20","passengers":[{"type":"adult"}]}'