Get available train trips
GET
/trips
Returns a list of available train trips between the specified origin and destination stations on the given date, and allows for filtering by bicycle and dog allowances.
Query parameters
-
origin string(uuid) Required
The ID of the origin station
-
destination string(uuid) Required
The ID of the destination station
-
date string(date-time) Required
The date and time of the trip in ISO 8601 format in origin station's timezone.
-
bicycles boolean
Only return trips where bicycles are known to be allowed
Default value is
false
. -
dogs boolean
Only return trips where dogs are known to be allowed
Default value is
false
.
GET /trips
curl \
-X GET https://api.example.com/trips?origin=efdbb9d1-02c2-4bc3-afb7-6788d8782b1e&destination=b2e783e1-c824-4d63-b37a-d8d698862f1d&date=2024-02-01T09%3A00%3A00Z \
-H "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"data": [
{
"id": "ea399ba1-6d95-433f-92d1-83f67b775594",
"origin": "efdbb9d1-02c2-4bc3-afb7-6788d8782b1e",
"destination": "b2e783e1-c824-4d63-b37a-d8d698862f1d",
"departure_time": "2024-02-01T10:00:00Z",
"arrival_time": "2024-02-01T16:00:00Z",
"price": 50,
"operator": "Deutsche Bahn",
"bicycles_allowed": true,
"dogs_allowed": true
},
{
"id": "4d67459c-af07-40bb-bb12-178dbb88e09f",
"origin": "b2e783e1-c824-4d63-b37a-d8d698862f1d",
"destination": "efdbb9d1-02c2-4bc3-afb7-6788d8782b1e",
"departure_time": "2024-02-01T12:00:00Z",
"arrival_time": "2024-02-01T18:00:00Z",
"price": 50,
"operator": "SNCF",
"bicycles_allowed": true,
"dogs_allowed": true
}
],
"links": {
"self": "https://api.example.com/trips?origin=efdbb9d1-02c2-4bc3-afb7-6788d8782b1e&destination=b2e783e1-c824-4d63-b37a-d8d698862f1d&date=2024-02-01",
"next": "https://api.example.com/trips?origin=efdbb9d1-02c2-4bc3-afb7-6788d8782b1e&destination=b2e783e1-c824-4d63-b37a-d8d698862f1d&date=2024-02-01&page=2"
}
}
Response examples (400)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"type": "https://example.com/errors/bad-request",
"title": "Bad Request",
"status": 400,
"detail": "The request is invalid or missing required parameters."
}
Response examples (400)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"type": "https://example.com/errors/bad-request",
"title": "Bad Request",
"status": 400,
"detail": "The request is invalid or missing required parameters."
}
Response examples (401)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"type": "https://example.com/errors/unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "You do not have the necessary permissions."
}
Response examples (401)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"type": "https://example.com/errors/unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "You do not have the necessary permissions."
}
Response examples (403)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"type": "https://example.com/errors/forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Access is forbidden with the provided credentials."
}
Response examples (403)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"type": "https://example.com/errors/forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Access is forbidden with the provided credentials."
}
Response examples (429)
# Headers
RateLimit: limit=10, remaining=0, reset=10
Retry-After: 120
# Payload
{
"type": "https://example.com/errors/too-many-requests",
"title": "Too Many Requests",
"status": 429,
"detail": "You have exceeded the rate limit."
}
Response examples (429)
# Headers
RateLimit: limit=10, remaining=0, reset=10
Retry-After: 120
# Payload
{
"type": "https://example.com/errors/too-many-requests",
"title": "Too Many Requests",
"status": 429,
"detail": "You have exceeded the rate limit."
}
Response examples (500)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"type": "https://example.com/errors/internal-server-error",
"title": "Internal Server Error",
"status": 500,
"detail": "An unexpected error occurred."
}
Response examples (500)
# Headers
RateLimit: limit=10, remaining=0, reset=10
# Payload
{
"type": "https://example.com/errors/internal-server-error",
"title": "Internal Server Error",
"status": 500,
"detail": "An unexpected error occurred."
}