POST/v1/trains/journeys

Buscar viajes en tren

Busca viajes en tren entre dos localidades para una fecha.

Compartir

Busca viajes en tren entre dos localidades para una fecha.

Autenticación y headers

HeaderDescripción
AuthorizationBearer <secret_key>. Conserva el secret en el servidor y nunca lo escribas en logs del cliente.
X-Travelandz-Id<public_key>:<profile_code>, donde el profile code persistido tiene el formato dp_<12 alfanuméricos>.
Content-Typeapplication/json para peticiones con body JSON.

Petición

Body JSON requerido:

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

origin y destination son ids de localidades. date usa YYYY-MM-DD. passengers debe contener al menos un elemento con type youth, adult o senior.

Schema del body

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

Respuesta exitosa

Devuelve journeys[]. Cada viaje incluye gdsprovider, journeyId, itinerarios, tramos, paradas, ruta, clases de confort, alojamientos y clases de ticket. Las horas de los tramos son ISO 8601.

Schema de respuesta

journeys
array
journeys[]gdsprovider
number
journeys[]journeyId
string
journeys[]itinerary
array
journeys[]itinerary[]itineraryIndex
number
journeys[]itinerary[]segments
array
journeys[]itinerary[]segments[]segmentId
string
journeys[]itinerary[]segments[]departure
object
journeys[]itinerary[]segments[]departuredepartureAt
string
Formato: ISO 8601
journeys[]itinerary[]segments[]departurename
string
journeys[]itinerary[]segments[]departurelocationId
string
journeys[]itinerary[]segments[]departurecountry
string
journeys[]itinerary[]segments[]departurecountryCode
string
journeys[]itinerary[]segments[]arrival
object
journeys[]itinerary[]segments[]arrivalarrivalAt
string
Formato: ISO 8601
journeys[]itinerary[]segments[]arrivalname
string
journeys[]itinerary[]segments[]arrivallocationId
string
journeys[]itinerary[]segments[]arrivalcountry
string
journeys[]itinerary[]segments[]arrivalcountryCode
string
journeys[]itinerary[]segments[]identifier
string
journeys[]itinerary[]segments[]transport
enum
trainbusferry
journeys[]itinerary[]segments[]durationInMinutes
number
journeys[]itinerary[]segments[]operator
object
journeys[]itinerary[]segments[]operatorcode
string
journeys[]itinerary[]segments[]operatorname
string
journeys[]itinerary[]segments[]operatorimageUrl
stringNullable
journeys[]itinerary[]segments[]service
object
journeys[]itinerary[]segments[]servicename
stringNullable
journeys[]itinerary[]segments[]serviceimageUrl
stringNullable
journeys[]stopovers
array
journeys[]stopovers[]stopoverIndex
numberNo
journeys[]stopovers[]durationInMinutes
numberNo
journeys[]route
array
journeys[]route[]itineraryIndex
numberNo
journeys[]route[]stopoverIndex
numberNo
journeys[]comfortClasses
array
journeys[]comfortClasses[]
enum[]
journeys[]accommodations
array
journeys[]accommodations[]
enum[]
journeys[]ticketClasses
array
journeys[]ticketClasses[]comfortClass
enum
basicstandardhighbestunknown
journeys[]ticketClasses[]serviceClass
enum
basicstandardhighbestunknown

Errores

  • 400 por validación o campos desconocidos.
  • 401 o 403 por credenciales API inválidas.
  • 500 internal_communication_error o unknown_error por fallos del proveedor.
  • 404 zero_journeys_found cuando no hay viajes disponibles.

Notas de uso

Conserva journeyId para pedir ofertas. operator.imageUrl y service.imageUrl pueden ser null.

Ejemplo cURL

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"}]}'