Skip to main content

Plan a journey

GET /Journey/JourneyResults/{from}/to/{to} returns route options between two points across all TfL modes.

Operation

MethodGET
Path/Journey/JourneyResults/{from}/to/{to}
Base URLhttps://api.tfl.gov.uk

Parameters

NameInRequiredDescription
frompathYesOrigin — stop point ID, postcode, or place name
topathYesDestination — stop point ID, postcode, or place name
modequeryNoComma-separated modes to include (for example tube,bus)
timeIsqueryNoWhether time is Departing or Arriving (default: Departing)
datequeryNoJourney date in YYYYMMDD format
timequeryNoJourney time in HHmm format

Responses

CodeDescription
200Success — JSON object with an array of journey options.
300Disambiguation — from or to matched multiple locations; response lists candidates.
400Bad request — from or to could not be resolved.
429Rate limited — see Authentication.
500Server error — retry with backoff.

Example requests

Using stop IDs (recommended for precision):

curl "https://api.tfl.gov.uk/Journey/JourneyResults/1000032/to/1000123"

1000032 is King's Cross St. Pancras. 1000123 is London Waterloo. Use Search stops to find IDs for other stations.

Using postcodes:

curl "https://api.tfl.gov.uk/Journey/JourneyResults/WC1X8DS/to/SW1A2AA"

Filtering by mode:

curl "https://api.tfl.gov.uk/Journey/JourneyResults/1000032/to/1000123?mode=tube"

Example response (abbreviated)

{
"journeys": [
{
"startDateTime": "2024-03-20T09:00:00",
"arrivalDateTime": "2024-03-20T09:22:00",
"duration": 22,
"legs": [
{
"summary": "Take Jubilee line towards Waterloo",
"mode": { "id": "tube", "name": "Tube" },
"departureTime": "2024-03-20T09:05:00",
"arrivalTime": "2024-03-20T09:22:00",
"duration": 17
}
]
}
]
}

Leg and journey shapes include additional properties — always parse defensively.