Transportation — entry 047 of 69

Transport for London, England

Verified Jul 2026

Transport for London's Unified API is the official real-time and static data feed for the capital's entire transport network — Tube, bus, rail, river, cycle hire, and road status — covering arrivals, journey planning, disruptions, and air-quality data. A free app_key raises the default 50-requests-per-minute anonymous limit to 500 requests per minute, with higher quotas available on request; responses are served as JSON or XML.

transituklondonreal-timeopen-data
AuthenticationAPI KeySign up with the provider to obtain credentials.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSON, XMLResponses can be requested as JSON or XML.

GreatAPIs Score

Score90out of 100
Authentication15/25API key required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats15/15Supports 2 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 90 on greatapis.com
<a href="https://greatapis.com/api/transport-for-london-england/"><img src="https://greatapis.com/badge/transport-for-london-england.svg" alt="Scored 90 on greatapis.com"></a>

Auth quickstart

  1. Sign up with the provider to get an API key.
  2. Send it on every request as a headerAuthorization: <key>
  3. The exact header isn't documented — Authorization is a common default; confirm in the provider's docs.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://api.tfl.gov.uk
AccidentStats1
GET/AccidentStats/{year}Gets all accident details for accidents occuring in the specified year
Parameters
NameInRequiredType
yearpathyesinteger
Responses
StatusDescriptionSchema
200OK
AirQuality1
GET/AirQualityGets air quality data feed
Responses
StatusDescriptionSchema
200OKSystem.Object
BikePoint3
GET/BikePointGets all bike point locations. The Place object has an addtionalProperties array which contains the nbBikes, nbDocks and nbSpaces numbers which give the status of the BikePoint. A mismatch in these numbers i.e. nbDocks - (nbBikes + nbSpaces) != 0 indicates broken docks.
Responses
StatusDescriptionSchema
200OK
GET/BikePoint/SearchSearch for bike stations by their name, a bike point's name often contains information about the name of the street or nearby landmarks, for example. Note that the search result does not contain the PlaceProperties i.e. the status or occupancy of the BikePoint, to get that information you should retrieve the BikePoint by its id on /BikePoint/id.
Parameters
NameInRequiredType
queryqueryyesstring
Responses
StatusDescriptionSchema
200OK
GET/BikePoint/{id}Gets the bike point with the given id.
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.Place
Cabwise1
GET/Cabwise/searchGets taxis and minicabs contact information
Parameters
NameInRequiredType
latqueryyesnumber
lonqueryyesnumber
optypequerynostring
wcquerynostring
radiusquerynonumber
namequerynostring
maxResultsquerynointeger
legacyFormatquerynoboolean
forceXmlquerynoboolean
twentyFourSevenOnlyquerynoboolean
Responses
StatusDescriptionSchema
200OKSystem.Object
Journey2
GET/Journey/JourneyResults/{from}/to/{to}Perform a Journey Planner search from the parameters specified in simple types
Parameters
NameInRequiredType
frompathyesstring
topathyesstring
viaquerynostring
nationalSearchquerynoboolean
datequerynostring
timequerynostring
timeIsquerynostring
journeyPreferencequerynostring
modequerynoarray
accessibilityPreferencequerynoarray
fromNamequerynostring
toNamequerynostring
viaNamequerynostring
maxTransferMinutesquerynostring
maxWalkingMinutesquerynostring
walkingSpeedquerynostring
cyclePreferencequerynostring
adjustmentquerynostring
bikeProficiencyquerynoarray
alternativeCyclequerynoboolean
alternativeWalkingquerynoboolean
applyHtmlMarkupquerynoboolean
useMultiModalCallquerynoboolean
walkingOptimizationquerynoboolean
taxiOnlyTripquerynoboolean
routeBetweenEntrancesquerynoboolean
useRealTimeLiveArrivalsquerynoboolean
calcOneDirectionquerynoboolean
includeAlternativeRoutesquerynoboolean
overrideMultiModalScenarioquerynointeger
combineTransferLegsquerynoboolean
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.JourneyPlanner.ItineraryResult
GET/Journey/Meta/ModesGets a list of all of the available journey planner modes
Responses
StatusDescriptionSchema
200OK
Line21
GET/Line/Meta/DisruptionCategoriesGets a list of valid disruption categories
Responses
StatusDescriptionSchema
200OK
GET/Line/Meta/ModesGets a list of valid modes
Responses
StatusDescriptionSchema
200OK
GET/Line/Meta/ServiceTypesGets a list of valid ServiceTypes to filter on
Responses
StatusDescriptionSchema
200OK
GET/Line/Meta/SeverityGets a list of valid severity codes
Responses
StatusDescriptionSchema
200OK
GET/Line/Mode/{modes}Gets lines that serve the given modes.
Parameters
NameInRequiredType
modespathyesarray
Responses
StatusDescriptionSchema
200OK
GET/Line/Mode/{modes}/DisruptionGet disruptions for all lines of the given modes.
Parameters
NameInRequiredType
modespathyesarray
Responses
StatusDescriptionSchema
200OK
GET/Line/Mode/{modes}/RouteGets all lines and their valid routes for given modes, including the name and id of the originating and terminating stops for each route
Parameters
NameInRequiredType
modespathyesarray
serviceTypesquerynoarray
Responses
StatusDescriptionSchema
200OK
GET/Line/Mode/{modes}/StatusGets the line status of for all lines for the given modes
Parameters
NameInRequiredType
modespathyesarray
detailquerynoboolean
severityLevelquerynostring
Responses
StatusDescriptionSchema
200OK
GET/Line/RouteGet all valid routes for all lines, including the name and id of the originating and terminating stops for each route.
Parameters
NameInRequiredType
serviceTypesquerynoarray
Responses
StatusDescriptionSchema
200OK
GET/Line/Search/{query}Search for lines or routes matching the query string
Parameters
NameInRequiredType
querypathyesstring
modesquerynoarray
serviceTypesquerynoarray
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.RouteSearchResponse
GET/Line/Status/{severity}Gets the line status for all lines with a given severity A list of valid severity codes can be obtained from a call to Line/Meta/Severity
Parameters
NameInRequiredType
severitypathyesinteger
Responses
StatusDescriptionSchema
200OK
GET/Line/{ids}Gets lines that match the specified line ids.
Parameters
NameInRequiredType
idspathyesarray
Responses
StatusDescriptionSchema
200OK
GET/Line/{ids}/Arrivals/{stopPointId}Get the list of arrival predictions for given line ids based at the given stop
Parameters
NameInRequiredType
idspathyesarray
stopPointIdpathyesstring
directionquerynostring
destinationStationIdquerynostring
Responses
StatusDescriptionSchema
200OK
GET/Line/{ids}/DisruptionGet disruptions for the given line ids
Parameters
NameInRequiredType
idspathyesarray
Responses
StatusDescriptionSchema
200OK
GET/Line/{ids}/RouteGet all valid routes for given line ids, including the name and id of the originating and terminating stops for each route.
Parameters
NameInRequiredType
idspathyesarray
serviceTypesquerynoarray
Responses
StatusDescriptionSchema
200OK
GET/Line/{ids}/StatusGets the line status of for given line ids e.g Minor Delays
Parameters
NameInRequiredType
idspathyesarray
detailquerynoboolean
Responses
StatusDescriptionSchema
200OK
GET/Line/{ids}/Status/{StartDate}/to/{EndDate}Gets the line status for given line ids during the provided dates e.g Minor Delays
Parameters
NameInRequiredType
idspathyesarray
detailquerynoboolean
startDatequeryyesstring
endDatequeryyesstring
dateRange.startDatequerynostring
dateRange.endDatequerynostring
Responses
StatusDescriptionSchema
200OK
GET/Line/{id}/Route/Sequence/{direction}Gets all valid routes for given line id, including the sequence of stops on each route.
Parameters
NameInRequiredType
idpathyesstring
directionpathyesstring
serviceTypesquerynoarray
excludeCrowdingquerynoboolean
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.RouteSequence
GET/Line/{id}/StopPointsGets a list of the stations that serve the given line id
Parameters
NameInRequiredType
idpathyesstring
tflOperatedNationalRailStationsOnlyquerynoboolean
Responses
StatusDescriptionSchema
200OK
GET/Line/{id}/Timetable/{fromStopPointId}Gets the timetable for a specified station on the give line
Parameters
NameInRequiredType
fromStopPointIdpathyesstring
idpathyesstring
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.TimetableResponse
GET/Line/{id}/Timetable/{fromStopPointId}/to/{toStopPointId}Gets the timetable for a specified station on the give line with specified destination
Parameters
NameInRequiredType
fromStopPointIdpathyesstring
idpathyesstring
toStopPointIdpathyesstring
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.TimetableResponse
Mode2
GET/Mode/ActiveServiceTypesReturns the service type active for a mode. Currently only supports tube
Responses
StatusDescriptionSchema
200OK
GET/Mode/{mode}/ArrivalsGets the next arrival predictions for all stops of a given mode
Parameters
NameInRequiredType
modepathyesstring
countquerynointeger
Responses
StatusDescriptionSchema
200OK
Occupancy5
GET/Occupancy/BikePoints/{ids}Get the occupancy for bike points.
Parameters
NameInRequiredType
idspathyesarray
Responses
StatusDescriptionSchema
200OK
GET/Occupancy/CarParkGets the occupancy for all car parks that have occupancy data
Responses
StatusDescriptionSchema
200OK
GET/Occupancy/CarPark/{id}Gets the occupancy for a car park with a given id
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.CarParkOccupancy
GET/Occupancy/ChargeConnectorGets the occupancy for all charge connectors
Responses
StatusDescriptionSchema
200OK
GET/Occupancy/ChargeConnector/{ids}Gets the occupancy for a charge connectors with a given id (sourceSystemPlaceId)
Parameters
NameInRequiredType
idspathyesarray
Responses
StatusDescriptionSchema
200OK
Place9
GET/PlaceGets the places that lie within a geographic region. The geographic region of interest can either be specified by using a lat/lon geo-point and a radius in metres to return places within the locus defined by the lat/lon of its centre or alternatively, by the use of a bounding box defined by the lat/lon of its north-west and south-east corners. Optionally filters on type and can strip properties for a smaller payload.
Parameters
NameInRequiredType
radiusquerynonumber
categoriesquerynoarray
includeChildrenquerynoboolean
typequerynoarray
activeOnlyquerynoboolean
numberOfPlacesToReturnquerynointeger
placeGeo.swLatquerynonumber
placeGeo.swLonquerynonumber
placeGeo.neLatquerynonumber
placeGeo.neLonquerynonumber
placeGeo.latquerynonumber
placeGeo.lonquerynonumber
Responses
StatusDescriptionSchema
200OK
GET/Place/Address/Streets/{Postcode}Gets the set of streets associated with a post code.
Parameters
NameInRequiredType
postcodequeryyesstring
postcodeInput.postcodequerynostring
Responses
StatusDescriptionSchema
200OKSystem.Object
GET/Place/Meta/CategoriesGets a list of all of the available place property categories and keys.
Responses
StatusDescriptionSchema
200OK
GET/Place/Meta/PlaceTypesGets a list of the available types of Place.
Responses
StatusDescriptionSchema
200OK
GET/Place/SearchGets all places that matches the given query
Parameters
NameInRequiredType
namequeryyesstring
typesquerynoarray
Responses
StatusDescriptionSchema
200OK
GET/Place/Type/{types}Gets all places of a given type
Parameters
NameInRequiredType
typespathyesarray
activeOnlyquerynoboolean
Responses
StatusDescriptionSchema
200OK
GET/Place/{id}Gets the place with the given id.
Parameters
NameInRequiredType
idpathyesstring
includeChildrenquerynoboolean
Responses
StatusDescriptionSchema
200OK
GET/Place/{type}/At/{Lat}/{Lon}Gets any places of the given type whose geography intersects the given latitude and longitude. In practice this means the Place must be polygonal e.g. a BoroughBoundary.
Parameters
NameInRequiredType
typepathyesarray
latqueryyesstring
lonqueryyesstring
location.latqueryyesnumber
location.lonqueryyesnumber
Responses
StatusDescriptionSchema
200OKSystem.Object
GET/Place/{type}/overlay/{z}/{Lat}/{Lon}/{width}/{height}Gets the place overlay for a given set of co-ordinates and a given width/height.
Parameters
NameInRequiredType
zpathyesinteger
typepathyesarray
widthpathyesinteger
heightpathyesinteger
latqueryyesstring
lonqueryyesstring
location.latqueryyesnumber
location.lonqueryyesnumber
Responses
StatusDescriptionSchema
200OKSystem.Object
Road8
GET/RoadGets all roads managed by TfL
Responses
StatusDescriptionSchema
200OK
GET/Road/Meta/CategoriesGets a list of valid RoadDisruption categories
Responses
StatusDescriptionSchema
200OK
GET/Road/Meta/SeveritiesGets a list of valid RoadDisruption severity codes
Responses
StatusDescriptionSchema
200OK
GET/Road/all/Disruption/{disruptionIds}Gets a list of active disruptions filtered by disruption Ids.
Parameters
NameInRequiredType
disruptionIdspathyesarray
stripContentquerynoboolean
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.RoadDisruption
GET/Road/all/Street/DisruptionGets a list of disrupted streets. If no date filters are provided, current disruptions are returned.
Parameters
NameInRequiredType
startDatequeryyesstring
endDatequeryyesstring
Responses
StatusDescriptionSchema
200OKSystem.Object
GET/Road/{ids}Gets the road with the specified id (e.g. A1)
Parameters
NameInRequiredType
idspathyesarray
Responses
StatusDescriptionSchema
200OK
GET/Road/{ids}/DisruptionGet active disruptions, filtered by road ids
Parameters
NameInRequiredType
idspathyesarray
stripContentquerynoboolean
severitiesquerynoarray
categoriesquerynoarray
closuresquerynoboolean
Responses
StatusDescriptionSchema
200OK
GET/Road/{ids}/StatusGets the specified roads with the status aggregated over the date range specified, or now until the end of today if no dates are passed.
Parameters
NameInRequiredType
idspathyesarray
dateRangeNullable.startDatequerynostring
dateRangeNullable.endDatequerynostring
Responses
StatusDescriptionSchema
200OK
Search5
GET/SearchSearch the site for occurrences of the query string. The maximum number of results returned is equal to the maximum page size of 100. To return subsequent pages, use the paginated overload.
Parameters
NameInRequiredType
queryqueryyesstring
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.SearchResponse
GET/Search/BusSchedulesSearches the bus schedules folder on S3 for a given bus number.
Parameters
NameInRequiredType
queryqueryyesstring
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.SearchResponse
GET/Search/Meta/CategoriesGets the available search categories.
Responses
StatusDescriptionSchema
200OK
GET/Search/Meta/SearchProvidersGets the available searchProvider names.
Responses
StatusDescriptionSchema
200OK
GET/Search/Meta/SortsGets the available sorting options.
Responses
StatusDescriptionSchema
200OK
StopPoint23
GET/StopPointGets a list of StopPoints within {radius} by the specified criteria
Parameters
NameInRequiredType
stopTypesqueryyesarray
radiusquerynointeger
useStopPointHierarchyquerynoboolean
modesquerynoarray
categoriesquerynoarray
returnLinesquerynoboolean
location.latqueryyesnumber
location.lonqueryyesnumber
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.StopPointsResponse
GET/StopPoint/Meta/CategoriesGets the list of available StopPoint additional information categories
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/Meta/ModesGets the list of available StopPoint modes
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/Meta/StopTypesGets the list of available StopPoint types
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/Mode/{modes}Gets a list of StopPoints filtered by the modes available at that StopPoint.
Parameters
NameInRequiredType
modespathyesarray
pagequerynointeger
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.StopPointsResponse
GET/StopPoint/Mode/{modes}/DisruptionGets a distinct list of disrupted stop points for the given modes
Parameters
NameInRequiredType
modespathyesarray
includeRouteBlockedStopsquerynoboolean
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/SearchSearch StopPoints by their common name, or their 5-digit Countdown Bus Stop Code.
Parameters
NameInRequiredType
queryqueryyesstring
modesquerynoarray
faresOnlyquerynoboolean
maxResultsquerynointeger
linesquerynoarray
includeHubsquerynoboolean
tflOperatedNationalRailStationsOnlyquerynoboolean
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.SearchResponse
GET/StopPoint/Search/{query}Search StopPoints by their common name, or their 5-digit Countdown Bus Stop Code.
Parameters
NameInRequiredType
querypathyesstring
modesquerynoarray
faresOnlyquerynoboolean
maxResultsquerynointeger
linesquerynoarray
includeHubsquerynoboolean
tflOperatedNationalRailStationsOnlyquerynoboolean
Responses
StatusDescriptionSchema
200OKTfl.Api.Presentation.Entities.SearchResponse
GET/StopPoint/ServiceTypesGets the service types for a given stoppoint
Parameters
NameInRequiredType
idqueryyesstring
lineIdsquerynoarray
modesquerynoarray
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/Sms/{id}Gets a StopPoint for a given sms code.
Parameters
NameInRequiredType
idpathyesstring
outputquerynostring
Responses
StatusDescriptionSchema
200OKSystem.Object
GET/StopPoint/Type/{types}Gets all stop points of a given type
Parameters
NameInRequiredType
typespathyesarray
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/Type/{types}/page/{page}Gets all the stop points of given type(s) with a page number
Parameters
NameInRequiredType
typespathyesarray
pagepathyesinteger
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{ids}Gets a list of StopPoints corresponding to the given list of stop ids.
Parameters
NameInRequiredType
idspathyesarray
includeCrowdingDataquerynoboolean
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{ids}/DisruptionGets all disruptions for the specified StopPointId, plus disruptions for any child Naptan records it may have.
Parameters
NameInRequiredType
idspathyesarray
getFamilyquerynoboolean
includeRouteBlockedStopsquerynoboolean
flattenResponsequerynoboolean
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{id}/ArrivalDeparturesGets the list of arrival and departure predictions for the given stop point id (overground, Elizabeth line and thameslink only)
Parameters
NameInRequiredType
idpathyesstring
lineIdsqueryyesarray
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{id}/ArrivalsGets the list of arrival predictions for the given stop point id
Parameters
NameInRequiredType
idpathyesstring
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{id}/CanReachOnLine/{lineId}Gets Stopoints that are reachable from a station/line combination.
Parameters
NameInRequiredType
idpathyesstring
lineIdpathyesstring
serviceTypesquerynoarray
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{id}/Crowding/{line}Gets all the Crowding data (static) for the StopPointId, plus crowding data for a given line and optionally a particular direction.
Parameters
NameInRequiredType
idpathyesstring
linepathyesstring
directionqueryyesstring
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{id}/DirectionTo/{toStopPointId}Returns the canonical direction, "inbound" or "outbound", for a given pair of stop point Ids in the direction from -&gt; to.
Parameters
NameInRequiredType
idpathyesstring
toStopPointIdpathyesstring
lineIdquerynostring
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{id}/RouteReturns the route sections for all the lines that service the given stop point ids
Parameters
NameInRequiredType
idpathyesstring
serviceTypesquerynoarray
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{id}/placeTypesGet a list of places corresponding to a given id and place types.
Parameters
NameInRequiredType
idpathyesstring
placeTypesqueryyesarray
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{stopPointId}/CarParksGet car parks corresponding to the given stop point id.
Parameters
NameInRequiredType
stopPointIdpathyesstring
Responses
StatusDescriptionSchema
200OK
GET/StopPoint/{stopPointId}/TaxiRanksGets a list of taxi ranks corresponding to the given stop point id.
Parameters
NameInRequiredType
stopPointIdpathyesstring
Responses
StatusDescriptionSchema
200OK
TravelTime2
GET/TravelTimes/compareOverlay/{z}/mapcenter/{mapCenterLat}/{mapCenterLon}/pinlocation/{pinLat}/{pinLon}/dimensions/{width}/{height}Gets the TravelTime overlay.
Parameters
NameInRequiredType
zpathyesinteger
pinLatpathyesnumber
pinLonpathyesnumber
mapCenterLatpathyesnumber
mapCenterLonpathyesnumber
scenarioTitlequeryyesstring
timeOfDayIdqueryyesstring
modeIdqueryyesstring
widthpathyesinteger
heightpathyesinteger
directionqueryyesstring
travelTimeIntervalqueryyesinteger
compareTypequeryyesstring
compareValuequeryyesstring
Responses
StatusDescriptionSchema
200OKSystem.Object
GET/TravelTimes/overlay/{z}/mapcenter/{mapCenterLat}/{mapCenterLon}/pinlocation/{pinLat}/{pinLon}/dimensions/{width}/{height}Gets the TravelTime overlay.
Parameters
NameInRequiredType
zpathyesinteger
pinLatpathyesnumber
pinLonpathyesnumber
mapCenterLatpathyesnumber
mapCenterLonpathyesnumber
scenarioTitlequeryyesstring
timeOfDayIdqueryyesstring
modeIdqueryyesstring
widthpathyesinteger
heightpathyesinteger
directionqueryyesstring
travelTimeIntervalqueryyesinteger
Responses
StatusDescriptionSchema
200OKSystem.Object
Vehicle1
GET/Vehicle/{ids}/ArrivalsGets the predictions for a given list of vehicle Id's.
Parameters
NameInRequiredType
idspathyesarray
Responses
StatusDescriptionSchema
200OK

Try it

Developer reference

Base URLhttps://api.tfl.gov.uk
Rate limit

Anonymous: 50 requests/minute. Free app_key ("500 Requests per min" product): 500/minute. Higher quotas available on request.

Key endpoints
  • GET/StopPoint/{id}/Arrivals
  • GET/Line/{ids}/Status
  • GET/Journey/JourneyResults/{from}/to/{to}
  • GET/BikePoint
  • GET/AirQuality