Busca viajes en tren entre dos localidades para una fecha.
Autenticación y headers
| Header | Descripción |
|---|---|
Authorization | Bearer <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-Type | application/json para peticiones con body JSON. |
Petición
Body JSON requerido:
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
originLocation id returned by
/locations.destinationLocation id returned by
/locations.datepassengerspassengers[]typeyouth = 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
journeysjourneys[]gdsproviderjourneys[]journeyIdjourneys[]itineraryjourneys[]itinerary[]itineraryIndexjourneys[]itinerary[]segmentsjourneys[]itinerary[]segments[]segmentIdjourneys[]itinerary[]segments[]departurejourneys[]itinerary[]segments[]departuredepartureAtjourneys[]itinerary[]segments[]departurenamejourneys[]itinerary[]segments[]departurelocationIdjourneys[]itinerary[]segments[]departurecountryjourneys[]itinerary[]segments[]departurecountryCodejourneys[]itinerary[]segments[]arrivaljourneys[]itinerary[]segments[]arrivalarrivalAtjourneys[]itinerary[]segments[]arrivalnamejourneys[]itinerary[]segments[]arrivallocationIdjourneys[]itinerary[]segments[]arrivalcountryjourneys[]itinerary[]segments[]arrivalcountryCodejourneys[]itinerary[]segments[]identifierjourneys[]itinerary[]segments[]transportjourneys[]itinerary[]segments[]durationInMinutesjourneys[]itinerary[]segments[]operatorjourneys[]itinerary[]segments[]operatorcodejourneys[]itinerary[]segments[]operatornamejourneys[]itinerary[]segments[]operatorimageUrljourneys[]itinerary[]segments[]servicejourneys[]itinerary[]segments[]servicenamejourneys[]itinerary[]segments[]serviceimageUrljourneys[]stopoversjourneys[]stopovers[]stopoverIndexjourneys[]stopovers[]durationInMinutesjourneys[]routejourneys[]route[]itineraryIndexjourneys[]route[]stopoverIndexjourneys[]comfortClassesjourneys[]comfortClasses[]journeys[]accommodationsjourneys[]accommodations[]journeys[]ticketClassesjourneys[]ticketClasses[]comfortClassjourneys[]ticketClasses[]serviceClassErrores
400por validación o campos desconocidos.401o403por credenciales API inválidas.500 internal_communication_errorounknown_errorpor fallos del proveedor.404 zero_journeys_foundcuando no hay viajes disponibles.
Notas de uso
Conserva journeyId para pedir ofertas. operator.imageUrl y service.imageUrl pueden ser null.
Ejemplo cURL
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"}]}'