Trainline Journeys Page API Documentation Read more journeys of a search. Pass the search_id of the search answer. The answer has a new search_id for the page after this one and previous_search_id with the id you passed. The journeys are later or earlier departures than the ones you already have, never the first page again.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
1 required parameter needed before sending a request.
4 optional filters available.
string
Required
search_id of a journey search answer.
1234567890
string
Optional
outward or inward. Defaults to outward.
example
string
Optional
next or previous. Defaults to next.
1
string
Optional
all, train or coach. Use the same value as in the search.
example
string
Optional
GBP or EUR. Use the same value as in the search.
USD
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
meta
success
{
"data": {
"page": "next",
"currency": "GBP",
"journeys": [
{
"id": "96428796-46b3-4c76-93a6-0ccf6a3b2ddb",
"legs": [
{
"origin": {
"code": "urn:trainline:atoc:loc:EUS1444",
"name": "London Euston",
"latitude": 51.5284,
"timezone": "Europe/London",
"longitude": -0.1346,
"short_code": "EUS",
"country_code": "GB"
},
"carrier": {
"code": "urn:trainline:atoc:carrier:VT",
"name": "Avanti West Coast"
},
"cancelled": false,
"reservable": true,
"destination": {
"code": "urn:trainline:atoc:loc:MAN2968",
"name": "Manchester Piccadilly",
"latitude": 53.4767,
"timezone": "Europe/London",
"longitude": -2.229,
"short_code": "MAN",
"country_code": "GB"
},
"distance_km": 280,
"arrival_time": "2026-11-03T12:19:00+00:00",
"timetable_id": "W34102",
"train_number": "VT707000",
"departure_time": "2026-11-03T10:13:00+00:00",
"transport_mode": "train",
"arrival_platform": "6",
"bike_restriction": "ALLOWEDWITHRESERVATION",
"duration_minutes": 126,
"departure_platform": "14",
"replacement_service": false,
"reservation_mandatory": true
}
],
"offers": [
{
"id": "99cb7a8a-920c-409f-affd-c3b9d625d524",
"fares": [
{
"id": "965709bf-072b-4f40-8706-384427167bb4",
"code": "urn:trainline:atoc:fare:SVS",
"name": "Off-Peak Single",
"tags": [
"flex:any-off-peak",
"refundable:yes"
],
"price": null,
"terms": [
"urn:trainline:noncon:atoc:rfndbl",
"urn:trainline:noncon:atoc:anyoffpeak"
],
"category": "Off-Peak",
"passengers": 1,
"valid_until": {
"inward": null,
"outward": "2026-11-04T04:30:00+00:00"
},
"availability": {
"status": "AVAILABLE",
"remaining": null
},
"travel_class": "Standard",
"passenger_types": [
{
"name": "Adult",
"max_age": null,
"min_age": 16
}
],
"validity_period": "P1D",
"delivery_methods": [
"AtocMTicket",
"AtocETicket",
"AtocKiosk",
"AtocUkSecondClassPost",
"AtocUKInternationalPost",
"AtocUKSpecialDelivery",
"AtocIndirectETicket"
],
"route_restriction": "Travel is allowed via any permitted route.",
"per_passenger_price": null
}
],
"vendor": null,
"fare_code": "urn:trainline:atoc:fare:SVS",
"fare_name": "Off-Peak Single",
"full_price": {
"amount": 79.8,
"currency": "GBP"
},
"section_id": "3393fcba-ae9a-424a-a56a-db18195d99ce",
"description": "Any off-peak train.",
"total_price": {
"amount": 79.8,
"currency": "GBP"
},
"travel_classes": [
"Standard"
],
"included_extras": [
{
"name": "Allocated seating",
"group": "seatSelection",
"quantity": 1
},
{
"name": "WiFi",
"group": "wifi",
"quantity": 1
},
{
"name": "Power socket",
"group": "electricSocket",
"quantity": 1
},
{
"name": "1 suitcase (max 30x70x90cm), 1 small carry-on bag, 1 handbag",
"group": "luggage",
"quantity": 1
}
],
"available_extras": [
{
"name": "Bike",
"group": "bicycle",
"quantity": 4
},
{
"name": "Allocated seating",
"group": "seatSelection",
"quantity": 1
},
{
"name": "WiFi",
"group": "wifi",
"quantity": 1
},
{
"name": "Power socket",
"group": "electricSocket",
"quantity": 1
},
{
"name": "1 suitcase (max 30x70x90cm), 1 small carry-on bag, 1 handbag",
"group": "luggage",
"quantity": 1
}
],
"fare_change_conditions": [
"Flexible ticket only valid at specific off-peak times of the day.",
"Your journey must be on off-peak trains on the date specified. Off-peak times vary by route - our journey planner only shows off-peak tickets on trains for which they are valid.",
"Can be booked in advance or purchased on the day of travel.",
"Refundable until 23:59 the day before the ticket becomes valid for travel. Non-refundable if purchased on the day of travel.",
"You can change the time of your journey without changing your tickets. If you wish to change your date of travel or Class of ticket, you will need to buy a new ticket and apply for a refund on your current ticket.",
"Yes - normal railcard and child discounts available.",
"Break of journey is generally permitted unless prohibited for the journey that you are making. If you intend to break your journey, please contact us to check if it is permitted. You can always break your journey where necessary to change train.",
"Mobile Tickets and etickets aren't valid for travel on London Underground. See our FAQs for more info.",
"SVS",
"View information about wheelchair spaces and accessibility on board your train here www.nationalrail.co.uk/on-the-train/accessible-train-travel-and-facilities. Find out how to book travel assistance here www.nationalrail.co.uk/help-and-assistance/passenger-assist."
],
"requires_travel_together": false
},
{
"id": "76338dc6-0974-4b17-9abb-591d9a53ca6f",
"fares": [
{
"id": "2d8d72c1-2da3-477f-b456-826bada7d533",
"code": "urn:trainline:atoc:fare:SOS",
"name": "Anytime Single",
"tags": [
"flex:anytime",
"refundable:yes"
],
"price": null,
"terms": [
"urn:trainline:noncon:atoc:rfndbl",
"urn:trainline:noncon:atoc:anytime"
],
"category": "Peak",
"passengers": 1,
"valid_until": {
"inward": null,
"outward": "2026-11-05T04:30:00+00:00"
},
"availability": {
"status": "AVAILABLE",
"remaining": null
},
"travel_class": "Standard",
"passenger_types": [
{
"name": "Adult",
"max_age": null,
"min_age": 16
}
],
"validity_period": "P2D",
"delivery_methods": [
"AtocMTicket",
"AtocETicket",
"AtocKiosk",
"AtocUkSecondClassPost",
"AtocUKInternationalPost",
"AtocUKSpecialDelivery",
"AtocIndirectETicket"
],
"route_restriction": "Travel is allowed via any permitted route.",
"per_passenger_price": null
}
],
"vendor": null,
"fare_code": "urn:trainline:atoc:fare:SOS",
"fare_name": "Anytime Single",
"full_price": {
"amount": 193,
"currency": "GBP"
},
"section_id": "3393fcba-ae9a-424a-a56a-db18195d99ce",
"description": "Travel any time of day.",
"total_price": {
"amount": 193,
"currency": "GBP"
},
"travel_classes": [
"Standard"
],
"included_extras": [
{
"name": "Allocated seating",
"group": "seatSelection",
"quantity": 1
},
{
"name": "WiFi",
"group": "wifi",
"quantity": 1
},
{
"name": "Power socket",
"group": "electricSocket",
"quantity": 1
},
{
"name": "1 suitcase (max 30x70x90cm), 1 small carry-on bag, 1 handbag",
"group": "luggage",
"quantity": 1
}
],
"available_extras": [
{
"name": "Bike",
"group": "bicycle",
"quantity": 4
},
{
"name": "Allocated seating",
"group": "seatSelection",
"quantity": 1
},
{
"name": "WiFi",
"group": "wifi",
"quantity": 1
},
{
"name": "Power socket",
"group": "electricSocket",
"quantity": 1
},
{
"name": "1 suitcase (max 30x70x90cm), 1 small carry-on bag, 1 handbag",
"group": "luggage",
"quantity": 1
}
],
"fare_change_conditions": [
"Flexible ticket with no time restrictions on when you can travel.",
"Your journey must be on the date, or the day after the date, specified on the ticket.",
"Can be booked in advance or purchased on the day of travel.",
"Refundable until 23:59 the day before the ticket becomes valid for travel. Non-refundable if purchased on the day of travel.",
"If you wish to travel on a date outside of the ticket validity period or change the Class of ticket, you will need to buy a new ticket and apply for a refund on your current ticket.",
"Yes - normal railcard and child discounts available.",
"You may start, break and resume, or end your journey at any intermediate station along the route of travel.",
"Mobile Tickets and etickets aren't valid for travel on London Underground. See our FAQs for more info.",
"SOS",
"View information about wheelchair spaces and accessibility on board your train here www.nationalrail.co.uk/on-the-train/accessible-train-travel-and-facilities. Find out how to book travel assistance here www.nationalrail.co.uk/help-and-assistance/passenger-assist."
],
"requires_travel_together": false
}
],
"changes": 0,
"carriers": [
{
"code": "urn:trainline:atoc:carrier:VT",
"name": "Avanti West Coast"
}
],
"sellable": true,
"co2_grams": 9828,
"distance_km": 280,
"arrival_time": "2026-11-03T12:19:00+00:00",
"departure_time": "2026-11-03T10:13:00+00:00",
"live_confidence": null,
"bike_restriction": "ALLOWEDWITHRESERVATION",
"duration_minutes": 126,
"unsellable_reason": null,
"cheapest_total_price": {
"amount": 79.8,
"currency": "GBP"
}
}
],
"warnings": null,
"direction": "outward",
"search_id": "9d18bc36-37ba-48dc-bc87-17974b123922",
"expires_at": "2026-10-20T15:58:15+00:00",
"journey_count": 1,
"transport_mode": "all",
"inward_journeys": null,
"previous_search_id": "1ab6ab81-b316-4f2e-ba21-df3055a8e3cc",
"requires_inward_call": false
},
"meta": {
"billable": true,
"endpoint_family": "journeys_page"
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A required parameter is missing or invalid. This response is not billable.
{
"errors": {
"origin": [
"The origin is a station id from the stations endpoint."
]
},
"message": "The request validation failed"
}Resource Not Found
The search id is unknown or has expired. This response is not billable.
{
"meta": {
"billable": false,
"retryable": false,
"endpoint_family": "journeys_page"
},
"error": {
"code": "NOT_FOUND",
"message": "Trainline found no match. Use station ids from the stations endpoint and ids from a fresh search."
},
"success": false
}Upstream Unavailable
Trainline did not answer in time. Scrappa retries on other exits first. This response is not billable. Retry after a few seconds.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "journeys_page"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "The Trainline service is temporarily unavailable. Please retry."
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.