Journey planner (/Journey/JourneyResults/{from}/to/{to}) not returning fares and zone information


Journey planner (/Journey/JourneyResults/{from}/to/{to}) is no longer returning fares and zone information for any journey.

For example used to return a fare object that would display the zones travelled and peak/off peak fare.

If this is a permanent change to this api query, is there another api query that shows this information? The fare search displays fares but not zones.

Thank you for your help

This is what is missing:

“fare”: {
“totalCost”: 0,
“fares”: [
“lowZone”: 0,
“highZone”: 0,
“cost”: 0,
“chargeProfileName”: “string”,
“isHopperFare”: true,
“chargeLevel”: “string”,
“peak”: 0,
“offPeak”: 0,
“taps”: [
“atcoCode”: “string”,
“tapDetails”: {
“modeType”: “string”,
“validationType”: “string”,
“hostDeviceType”: “string”,
“busRouteId”: “string”,
“nationalLocationCode”: 0,
“tapTimestamp”: “2019-12-17T18:10:41.736Z”

Just as a point of admin, this is a known thing…

It “returned” 10 days ago.

The Single Fare Finder stlll works, however,

Yes, I posted about this previously in another thread but after not receiving any responses I thought it would be a good idea to ask again with more details.

To clarify, I am aware that fare finder is working but it only shows fares and not zones travelled. Journey planner was the only endpoint that I could find that displayed both fares and zones. Is there another endpoint that show zones travelled?


I don’t think the TfL have the resources they would like to be able to help out here.

The SFF does tell you about the Zones issue. As the default is “Some journeys are charged via Zone 1 irrespective of the route taken.” you do see the “Avoiding Zone 1” here

This is a good example of the annoyance of the system needing you to use the card reader at Willesden Junction, as you can easily avoid going to Zone 1 on this trip

but the Single Fare Finder says you must touch the pinky at Willesden Junction.

Also, you can get the Zones from the StopPoint endpoints



Thank you for all that, but unfortunately it won’t help with my project.

I am just trying to make a simple app/site that allows the user to find the relevant travelcard cost when the user inputs origin and destination stations. In order to do that, I need to know which zones the user would have travelled through. I created an array of objects with station names, station ids, and zones but without looking at a map I have not been able to figure out how to get the zones travelled information.

Tfl’s site calculates travelcard cost if user inputs zones travelled, I wanted to make something easier for the user by allowing them to just input station names.

So in short, is there a way to calculate zones travelled without looking at the map?


Actually, it’s much easier than you might think. You used to have to know which Zones were travelled though, but that’s no longer the case. For example, if you travelled from Upminster to Hatch End, that used to be 9-zone journey (5, 4, 3, 2, 1, 2, 3, 4 and 5 again) but as no-one understood that it’s now treated as a 5 zone journey including Zone 1.

There are still zone-counting restrictions, but that is for timing, rather than price.

Annoyingly, the Travelcard (aka Weekly Caps) prices are in ****ing PDFs

There are other discount fares - see

You could hack the backend to the Official travelcard pricing page


Does this help?


I have an array of stations and zones and an array of travelcard prices. My issue is trying to figure out what zones are crossed between two stations without referring to the map.

For example:

Brent Cross Underground Station to Tooting Broadway Underground Station which translates to
Zones 1-3 £8.50 £8.50 £42.40 £13.50 £13.50 £42.40 £162.90 £1,696

Brent Cross Underground Staton to Golders Green Underground Station which translates to
Zone 3 only £8.50 £8.50 £27.00 £13.50 £13.50 £27.00 £103.70 £1,080

Both journeys start and end in zone 3, but one travels through multiple zones and one is zone 3 only.
How can I tell this without looking at the map? Fare finder will come back with a different fare so I know one journey is longer but I have no way of matching the information from fare finder with the relevant travelcard cost.


As a matter of explanation I had this out with London TravelWatch a few years ago. Basically, the Single Fare Finder is the DEFINITIVE way of working out fares: not the Tube Map.

I have attached their reply (about Hoxton Z1/2 to Stratford International DLR Z2/3) because it is instructive. However bizarre the reasoning, the Single Fare Finder is always correct.

Dear Mr Butterworth

0294556 - TFL ticketing information issue

Thank you for your enquiry.

I can understand your frustration with the responses you have received from Transport for London, which were initially obviously incorrect.

However, we have looked into the information on TFL’s Single Fare Finder and it does appear to be correct. Since it does give both the cheaper and more expensive fares and advises passengers to touch in at Stratford when taking the cheaper route.

This information is correct because, if a passenger travelling from Stratford International DLR did not validate their Oystercard when ‘interchanging’ at Stratford, then TFL’s system would automatically assume that they had taken the more expensive route through Zone 1 to Hoxton and charge the higher fare. That is to say, it would assume that the passenger had approached Hoxton from the direction of Whitechapel and Shoreditch High Street station, which is in Zone 1, and not from the direction of Dalston Junction and Haggerston, which are in Zone 2, and therefore on the cheaper route.

TFL could, of course, have explained this more fully rather than more or less asserting that they were right about it and leaving it at that.

I hope that this clarifies matters for you.

Yours sincerely

Mike Brown

I even coded up a version of the network using Dijkstra’s algorithm in PHP just to prove the Single Fare Finder is highly inconsistent: here’s a Excel Sheet -,%20rail,%20OSI%20from%20Charing%20Cross%20station.xlsx and an image of what I found about the fareness of the Zones …