Skip to content

Transport for London Unified API

Line status, arrivals, stop points and journey planning for London transport.
Status
Working
API key
Not needed
Browser calls
Runs in the browser
Latency
201 ms

Build snapshot, not live. One verifier run on , from the machine that built this site. How we check

Example request

GEThttps://api.tfl.gov.uk/Line/Mode/tube/Status

Sent from your browser straight to api.tfl.gov.uk. No proxy: this site never sees the request or the answer.

Copy the request

Shell
curl -s 'https://api.tfl.gov.uk/Line/Mode/tube/Status'

Response stored by the verifier

This is what api.tfl.gov.uk answered when the verifier sent the request above on : HTTP 200, application/json. Arrays are cut to two items and long strings are shortened. It comes from the build snapshot.

application/json · stored
[
  {
    "$type": "Tfl.Api.Presentation.Entities.Line, Tfl.Api.Presentation.Entities",
    "id": "bakerloo",
    "name": "Bakerloo",
    "modeName": "tube",
    "disruptions": [],
    "created": "2026-09-22T09:53:41.037Z",
    "modified": "2026-09-22T09:53:41.037Z",
    "lineStatuses": [
      {
        "$type": "Tfl.Api.Presentation.Entities.LineStatus, Tfl.Api.Presentation.Entities",
        "id": 0,
        "statusSeverity": 10,
        "statusSeverityDescription": "Good Service",
        "created": "0001-01-01T00:00:00",
        "validityPeriods": []
      }
    ],
    "routeSections": [],
    "serviceTypes": [
      {
        "$type": "Tfl.Api.Presentation.Entities.LineServiceTypeInfo, Tfl.Api.Presentation.Entities",
        "name": "Regular",
        "uri": "/Line/Route?ids=Bakerloo&serviceTypes=Regular"
      }
    ],
    "crowding": {
      "$type": "Tfl.Api.Presentation.Entities.Crowding, Tfl.Api.Presentation.Entities"
    }
  },
  {
    "$type": "Tfl.Api.Presentation.Entities.Line, Tfl.Api.Presentation.Entities",
    "id": "central",
    "name": "Central",
    "modeName": "tube",
    "disruptions": [],
    "created": "2026-09-22T09:53:41.037Z",
    "modified": "2026-09-2
…

Availability

Up 1 of 1 day checked · 30-day window

What counts as up for this API: an answer within five seconds, a 2xx status, and the body must be a JSON array with at least one item.

Last check: — passed, HTTP 200 in 201 ms.

The check runs from our infrastructure, not from where you are. If you need certainty, send the request yourself above. How the verifier works.

Questions

Does the Transport for London Unified API need an API key?

No. The sample request on this page was answered without a key, token or account. Note: Works without a key at a low rate; a free key raises it.

Can I call the Transport for London Unified API from the browser?

Yes. api.tfl.gov.uk answered our verifier with an Access-Control-Allow-Origin header on Oct 3, 2026, so a fetch call from a web page can read the response.

Is the Transport for London Unified API working?

At the check on Oct 3, 2026 it returned HTTP 200 with the expected data in 201 ms. The status at the top of this page shows the most recent result we have.