TfL's Unified API at https://api.tfl.gov.uk covers the Tube, buses, rail, and bikes: line status, live arrivals, and journey planning.
None for light use. A free app_key from the TfL API portal raises the rate limit.
Full reference: https://api-portal.tfl.gov.uk/
curl https://api.tfl.gov.uk/Line/Mode/tube/Status
[
{
"$type": "Tfl.Api.Presentation.Entities.Line, Tfl.Api.Presentation.Entities",
"id": "bakerloo",
"name": "Bakerloo",
"modeName": "tube",
"disruptions": [],
"created": "2026-09-15T13:26:22.117Z",
"modified": "2026-09-15T13:26:22.117Z",
"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-15T13:26:22.117Z",
"modified": "2026-09-15T13:26:22.117Z",
"lineStatuses": [
{
"$type": "Tfl.Api.Presentation.Entities.LineStatus, Tfl.Api.Presentation.Entities",
"id": 0,
"lineId": "central",
"statusSeverity": 9,
"statusSeverityDescription": "Minor Delays",
"reason": "Central Line: Minor delays due to to train cancellations. ",
"created": "0001-01-01T00:00:00",
"validityPeriods": [],
"disruption": {
"$type": "Tfl.Api.Presentation.Entities.Disruption, Tfl.Api.Presentation.Entities",
"category": "RealTime",
"categoryDescription": "RealTime",
"description": "Central Line: Minor delays due to to train cancellations. "
}
}
],
"routeSections": [],
"serviceTypes": [
{
"$type": "Tfl.Api.Presentation.Entities.LineServiceTypeInfo, Tfl.Api.Presentation.Entities",
"name": "Regular",
"uri": "/Line/Route?ids=Central&serviceTypes=Regular"
},
{
"$type": "Tfl.Api.Presentation.Entities.LineServiceTypeInfo, Tfl.Api.Presentation.Entities",
"name": "Night",
"uri": "/Line/Route?ids=Central&serviceTypes=Night"
}
],
"crowding": {
"$type": "Tfl.Api.Presentation.Entities.Crowding, Tfl.Api.Presentation.Entities"
}
}
]
curl https://api.tfl.gov.uk/Line/victoria/Arrivals
[
{
"$type": "Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
"id": "-1665052205",
"operationType": 1,
"vehicleId": "235",
"naptanId": "940GZZLUWWL",
"stationName": "Walthamstow Central Underground Station",
"lineId": "victoria",
"lineName": "Victoria",
"platformName": "Southbound - Platform 2",
"bearing": "",
"destinationNaptanId": "940GZZLUWWL",
"destinationName": "Walthamstow Central Underground Station",
"timestamp": "2026-09-23T21:17:41.4055751Z",
"timeToStation": 139,
"currentLocation": "Left Blackhorse Road"
},
{
"$type": "Tfl.Api.Presentation.Entities.Prediction, Tfl.Api.Presentation.Entities",
"id": "-527339481",
"operationType": 1,
"vehicleId": "276",
"naptanId": "940GZZLUEUS",
"stationName": "Euston Underground Station",
"lineId": "victoria",
"lineName": "Victoria",
"platformName": "Southbound - Platform 5",
"direction": "inbound",
"bearing": "",
"destinationNaptanId": "940GZZLUBXN",
"destinationName": "Brixton Underground Station",
"timestamp": "2026-09-23T21:17:41.4055751Z",
"timeToStation": 48
}
]
curl "https://api.tfl.gov.uk/BikePoint/Search?query=Waterloo"
[
{
"$type": "Tfl.Api.Presentation.Entities.Place, Tfl.Api.Presentation.Entities",
"id": "BikePoints_154",
"url": "/Place/BikePoints_154",
"commonName": "Waterloo Station 3, Waterloo",
"placeType": "BikePoint",
"additionalProperties": [],
"children": [],
"childrenUrls": [],
"lat": 51.503791,
"lon": -0.112824
},
{
"$type": "Tfl.Api.Presentation.Entities.Place, Tfl.Api.Presentation.Entities",
"id": "BikePoints_160",
"url": "/Place/BikePoints_160",
"commonName": "Waterloo Place, St. James's",
"placeType": "BikePoint",
"additionalProperties": [],
"children": [],
"childrenUrls": [],
"lat": 51.506633,
"lon": -0.131773
}
]