POST/v1/trains/journeys/stream

Buscar viajes en stream

Recibe cada viaje en tren coincidente progresivamente como NDJSON.

Compartir

Recibe cada viaje en tren coincidente progresivamente como NDJSON.

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>.
Acceptapplication/x-ndjson para respuestas progresivas en stream.
Content-Typeapplication/json para peticiones con body JSON.

Petición

Usa el mismo body JSON que POST /v1/trains/journeys.

Schema del body

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

Respuesta exitosa

La respuesta es application/x-ndjson. Cada línea que no sea un error contiene un viaje completo sin wrapper.

Schema de respuesta

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

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.
  • Una línea de error puede incluir error: true, code: zero_journeys_found y statusCode: 404.

Notas de uso

Lee la respuesta línea por línea y ejecuta JSON.parse para cada una. No trates el stream como un único documento JSON.

Ejemplo cURL

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