Transport For London Unified API

Getting started

To use the API, developers should register for an Application ID and Key. Enter your details below to try out the examples in the documentation.

Running the examples

You can run the examples in Postman, or with the form below each method in the documentation below, generate a URL.

If you're using .NET you can download our Data Transfer Objects (DTO) assembly to simplify deserialisation of the API responses.

Warnings

The following Actions have no Max Age Attribute

The following Actions have no Entities Used Attributes

  • Action GetBySms(2) on the StopPoint controller

AccidentStats

GET
7 days

/AccidentStats/{year}

Gets all accident details for accidents occuring in the specified year

Request
Query parameter
Default
Value
year The year for which to filter the accidents on.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* year
                                                    
                                                                                                        
                                                

AirQuality

GET
1 hour

/AirQuality

Gets air quality data feed

Response

On success, the HTTP status code in the response header is 200 OK.

Returns: Air quality data feed

BikePoint

GET
5 minutes

/BikePoint

Gets all bike point locations

Response

On success, the HTTP status code in the response header is 200 OK.

Returns: a list of all bike points

GET
5 minutes

/BikePoint/{id}

Gets the bike point with the given id.

Request
Query parameter
Default
Value
id A bike point id (a list of ids can be obtained from the above BikePoint call)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the matching bike point

GET
5 minutes

/BikePoint?swLat={swLat}&swLon={swLon}&neLat={neLat}&neLon={neLon}

Gets the bike points that lie within the bounding box defined by the lat/lon of its north-west and south-east corners.

Request
Query parameter
Default
Value
geoPointBBox Corners of the bounding box specified by the swLat (latitude), swLon (longitude), neLat (latitude), neLon (longitude)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the matching list of bike points

Generate URL

* swLat
* swLon
* neLat
* neLon
                                                    
                                                                                                        
                                                
GET
5 minutes

/BikePoint?lat={lat}&lon={lon}&radius={radius}

Gets the bike points that lie within the locus defined by the lat/lon of its centre and a radius in metres.

Request
Query parameter
Default
Value
geoPoint Complex type object with lat and lon properties. lat is latitude of the centre of the bounding circle. lon is longitude of the centre of the bounding circle
radius the radius of the bounding circle in metres
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the matching list of bike points, the centre of the locus and distances of each place from the centre

Generate URL

* lat
* lon
* radius
                                                    
                                                                                                        
                                                
GET
7 days

/BikePoint/Search?query={query}

Search for bike stations by their name, a bike points name contains location information

Request
Query parameter
Default
Value
query The search term e.g. "St. James"
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: The list of matching bike points

Generate URL

* query
                                                    
                                                                                                        
                                                

CycleSuperhighway

GET
5 minutes

/CycleSuperhighway

Gets all cycle superhighways

Response

On success, the HTTP status code in the response header is 200 OK.

Returns: all cycle superhighways

GET
5 minutes

/CycleSuperhighway/{ids}

Gets cycle superhighways by id

Request
Query parameter
Default
Value
ids The ids of the cycle superhighways to return
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: Matching cycle superhighways

Generate URL

* ids
                                                    
                                                                                                        
                                                

Journey

GET
5 minutes

/Journey/JourneyResults/{from}/to/{to}

Perform a Journey Planner search from the parameters specified in simple types

Request
Query parameter
Default
Value
from Origin of the journey (if in coordinate format then must be "longitude,latitude")
to Destination of the journey (if in coordinate format then must be "longitude,latitude")
via Optional. Travel through (if in coordinate format then must be "longitude,latitude")
nationalSearch [False] Optional. Does the journey cover stops outside London? eg. "nationalSearch=true"
date Optional. The date must be in yyyyMMdd format
time Optional. The time must be in HHmm format
timeIs [Departing] Optional. Does the time given relate to arrival or leaving time? Possible options: "departing" | "arriving"
journeyPreference [LeastTime] Optional. The journey preference eg possible options: "leastinterchange" | "leasttime" | "leastwalking"
mode Optional. The mode must be a comma separated list of modes. eg possible options: "public-bus,overground,train,tube,coach,dlr,cablecar,tram,river,walking,cycle"
accessibilityPreference Optional. The accessibility preference must be a comma separated list eg. "noSolidStairs,noEscalators,noElevators,stepFreeToVehicle,stepFreeToPlatform"
fromName Optional. From name is the location name associated with a from coordinate
toName Optional. To name is the label location associated with a to coordinate
viaName Optional. Via name is the location name associated with a via coordinate.
maxTransferMinutes Optional. The max walking time in minutes for transfer eg. "120"
maxWalkingMinutes Optional. The max walking time in minutes for journeys eg. "120"
walkingSpeed [Average] Optional. The walking speed. eg possible options: "slow" | "average" | "fast".
cyclePreference [None] Optional. The cycle preference. eg possible options: "allTheWay" | "leaveAtStation" | "takeOnTransport" | "cycleHire"
adjustment Optional. Time adjustment command. eg possible options: "TripFirst" | "TripLast"
bikeProficiency Optional. A comma separated list of cycling proficiency levels. eg possible options: "easy,moderate,fast"
alternativeCycle [False] Optional. Option to determine whether to return alternative cycling journey
alternativeWalking [True] Optional. Option to determine whether to return alternative walking journey
applyHtmlMarkup [False] Optional. Flag to determine whether certain text (e.g. walking instructions) should be output with HTML tags or not.
useMultiModalCall [False] Optional. A boolean to indicate whether or not to return 3 public transport journeys, a bus journey, a cycle hire journey, a personal cycle journey and a walking journey
walkingOptimization [False] Optional. A boolean to indicate whether to optimize journeys using walking
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: Either an object to support disambiguation or an object with the requested journey results.

Generate URL

* from
* to
via
nationalSearch
date
time
timeIs
journeyPreference
mode
accessibilityPreference
fromName
toName
viaName
maxTransferMinutes
maxWalkingMinutes
walkingSpeed
cyclePreference
adjustment
bikeProficiency
alternativeCycle
alternativeWalking
applyHtmlMarkup
useMultiModalCall
walkingOptimization
                                                    
                                                                                                        
                                                
GET
1 day

/Journey/Meta/{metadataType}

Returns metadata for methods that act upon the Journeys controller. If metadataType is "modes", gets a list of all of the available journey planner modes

Request
Query parameter
Default
Value
metadataType the type of metadata to return
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the metadata

Generate URL

* metadataType
                                                    
                                                                                                        
                                                

Line

GET
1 day

/Line/{ids}

Gets line specified by the line id.

Request
Query parameter
Default
Value
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A line of list of lines line object

Generate URL

* ids
                                                    
                                                                                                        
                                                
GET
10 seconds

/Line/{ids}/Arrivals

Get the list of arrival predictions for given line ids

Request
Query parameter
Default
Value
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of arrival predictions

Generate URL

* ids
                                                    
                                                                                                        
                                                
GET
10 seconds

/Line/{ids}/Arrivals?stopPointId={stopPointId}

Get the list of arrival predictions for given line ids based at the given stop

Request
Query parameter
Default
Value
stopPointId Id of stop to get arrival predictions for (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of arrival predictions

Generate URL

* stopPointId
* ids
                                                    
                                                                                                        
                                                
GET
10 seconds

/Line/{ids}/Arrivals/{stopPointId}?direction={direction}

Get the list of arrival predictions for given line ids based at the given stop going in the procided direction

Request
Query parameter
Default
Value
stopPointId Id of stop to get arrival predictions for (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
direction The direction of travel. Can be inbound or outbound
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of arrival predictions

Generate URL

* stopPointId
* ids
* direction
                                                    
                                                                                                        
                                                
GET
10 seconds

/Line/{ids}/Arrivals/{stopPointId}?direction={direction}&destinationStationId={destinationStationId}

Get the list of arrival predictions for given line ids based at the given stop going in the procided direction and terminating at given destination

Request
Query parameter
Default
Value
stopPointId Id of stop to get arrival predictions for (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
direction The direction of travel. Can be inbound or outbound
destinationStationId Id of destination stop
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of arrival predictions

Generate URL

* stopPointId
* ids
* direction
* destinationStationId
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/{ids}/Disruption

Get disruptions for the given line ids

Request
Query parameter
Default
Value
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of disruptions

Generate URL

* ids
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/{ids}/Disruption?startDate={startDate}&endDate={endDate}

Get disruptions for the given line ids during provided date range

Request
Query parameter
Default
Value
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
dateRange Specified as a range of 2 dates. Start date for start of the period, End date for the period that the disruption will fall within to be included in the results
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of disruptions

Generate URL

* ids
* startDate
* endDate
                                                    
                                                                                                        
                                                
GET
1 day

/Line/Meta/{metadataType}

Get metadata for methods that act upon the Line controller. If metadataType is "Modes", gets a list of all of the valid modes to filter lines by If metadataType is "Severity", gets a list of valid severity codes If metadataType is "DisruptionCategories", gets a list of valid categories to filter disruptions If metadataType is "ServiceTypes", gets a list of valid ServiceTypes to filter on

Request
Query parameter
Default
Value
metadataType the type of metadata to return (one of Modes, Severity, DisruptionCategories, ServiceTypes)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the metadata for the chosen type

Generate URL

* metadataType
                                                    
                                                                                                        
                                                
GET
1 day

/Line/Mode/{modes}

Gets line specified by provided modes.

Request
Query parameter
Default
Value
modes A comma-separated list of modes e.g. tube,dlr
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of lines

Generate URL

* modes
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/Mode/{modes}/Disruption

Get disruptions for all lines of the given modes.

Request
Query parameter
Default
Value
modes A comma-separated list of modes e.g. tube,dlr
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of disruptions

Generate URL

* modes
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/Mode/{modes}/Disruption?startDate={startDate}&endDate={endDate}

Get disruptions for all lines of the given modes during provided date range.

Request
Query parameter
Default
Value
modes A comma-separated list of modes e.g. tube,dlr
dateRange Specified as a range of 2 dates. Start date for start of the period, End date for the period that the disruption will fall within to be included in the results
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of disruptions

Generate URL

* modes
* startDate
* endDate
                                                    
                                                                                                        
                                                
GET
1 day

/Line/Mode/{modes}/Route

Gets all lines and their valid routes for given modes, including the name and id of the originating and terminating stops for each route

Request
Query parameter
Default
Value
modes A comma-separated list of modes e.g. tube,dlr
serviceTypes Optional. A comma seperated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of lines including high level route information

Generate URL

* modes
serviceTypes
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/Mode/{modes}/Status

Gets the line status of for all lines for the given modes

Request
Query parameter
Default
Value
modes A comma-separated list of modes to filter by. e.g. tube,dlr
detail [False] Optional. Include details of the disruptions that are causing the line status including the affected stops and routes
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of lines including current status information

Generate URL

* modes
detail
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/Mode/{modes}/Status?startDate={startDate}&endDate={endDate}

Gets the line status of for all lines for the given modes during the provided dates e.g Minor Delays

Request
Query parameter
Default
Value
modes A comma-separated list of modes e.g. tube,dlr
dateRange Specified as a range of 2 dates. Start date for start of the period, End date for the period that the disruption will fall within to be included in the results
detail [False] Optional. Include details of the disruptions that are causing the line status including the affected stops and routes
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of lines including status information during requested time period

Generate URL

* modes
* startDate
* endDate
detail
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/Route

Get all valid routes for all lines, including the name and id of the originating and terminating stops for each route.

Request
Query parameter
Default
Value
serviceTypes Optional. A comma seperated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of lines including high level route information

Generate URL

serviceTypes
                                                    
                                                                                                        
                                                
GET
1 day

/Line/{ids}/Route

Get all valid routes for given line ids, including the name and id of the originating and terminating stops for each route.

Request
Query parameter
Default
Value
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
serviceTypes Optional. A comma seperated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of lines including high level route information

Generate URL

* ids
serviceTypes
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/{id}/Route/Sequence/{direction}

Gets all valid routes for given line id, including the sequence of stops on each route.

Request
Query parameter
Default
Value
id A single line id e.g. victoria (you can use the /Line/ endpoint to retrieve all lines and their ids)
direction The direction of travel. Can be inbound or outbound.
serviceTypes Optional. A comma seperated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified
excludeCrowding [True] Optional. That excludes crowding from line disruptions. Can be true or false.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: Line object including detailed route information

Generate URL

* id
* direction
serviceTypes
excludeCrowding
                                                    
                                                                                                        
                                                
GET
1 day

/Line/Search/{query}

Search for lines or routes matching the query string

Request
Query parameter
Default
Value
query Search term e.g victoria
modes Optional. Optionally filter by the specified modes
serviceTypes Optional. A comma seperated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of route matches

Generate URL

* query
modes
serviceTypes
                                                    
                                                                                                        
                                                
GET
1 minute

/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

Request
Query parameter
Default
Value
severity The level of severity (eg: a number from 0 to 14)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of lines including current status information

Generate URL

* severity
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/{ids}/Status

Gets the line status of for given line ids e.g Minor Delays

Request
Query parameter
Default
Value
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
detail [False] Optional. Include details of the disruptions that are causing the line status including the affected stops and routes
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of lines including current status information

Generate URL

* ids
detail
                                                    
                                                                                                        
                                                
GET
1 minute

/Line/{ids}/Status/{startDate}/to/{endDate}

Gets the line status for given line ids during the provided dates e.g Minor Delays

Request
Query parameter
Default
Value
ids A comma-separated list of line ids e.g. victoria,circle,N133. Max. approx. 20 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
dateRange Specified as a range of 2 dates. Start date for start of the period, End date for the period that the disruption will fall within to be included in the results
detail [False] Optional. Include details of the disruptions that are causing the line status including the affected stops and routes
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of lines including status information during requested time period

Generate URL

* ids
* startDate
* endDate
detail
                                                    
                                                                                                        
                                                
GET
1 day

/Line/{id}/StopPoints

Gets a list of the stations that serve the given line id

Request
Query parameter
Default
Value
id A single line id e.g. victoria (you can use the /Line/ endpoint to retrieve all lines and their ids)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of Stations

GET
1 day

/Line/{id}/Timetable/{fromStopPointId}

Gets the timetable for a specified station on the give line

Request
Query parameter
Default
Value
fromStopPointId The originating station's stop point id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
id A single line id e.g. victoria (you can use the /Line/ endpoint to retrieve all lines and their ids)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A timetable for the requested station and line

Generate URL

* fromStopPointId
* id
                                                    
                                                                                                        
                                                
GET
1 day

/Line/{id}/Timetable/{fromStopPointId}?direction={direction}

Gets the timetable for a specified station on the give line in a specific direction.

Request
Query parameter
Default
Value
fromStopPointId The originating station's stop point id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
id A single line id e.g. victoria (you can use the /Line/ endpoint to retrieve all lines and their ids)
direction The direction of travel. Can be inbound or outbound
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A timetable for the requested station, line and direction

Generate URL

* fromStopPointId
* id
* direction
                                                    
                                                                                                        
                                                
GET
1 day

/Line/{id}/Timetable/{fromStopPointId}/to/{toStopPointId}

Gets the timetable for a specified station on the give line with specified destination

Request
Query parameter
Default
Value
fromStopPointId The originating station's stop point id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
id A single line id e.g. victoria (you can use the /Line/ endpoint to retrieve all lines and their ids)
toStopPointId The destination stations's Naptan code
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A timetable for the requested station/direction/line

Generate URL

* fromStopPointId
* id
* toStopPointId
                                                    
                                                                                                        
                                                

Mode

GET
1 minute

/Mode/ActiveServiceTypes

Returns the service type active for a mode. Currently only supports tube

Response

On success, the HTTP status code in the response header is 200 OK.

Returns: The active service type for a mode.

GET
10 seconds

/Mode/{mode}/Arrivals

Gets the nearest arrival prediction(s) for a given mode

Request
Query parameter
Default
Value
mode A mode name e.g. tube,dlr
count [1] Optional. A number of arrivals to return
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: The nearest arrival prediction(s) for a given mode

Generate URL

* mode
count
                                                    
                                                                                                        
                                                

Notification - Coming soon

DELETE
0 minutes

/Notification/{id}

Coming soon

Request
Query parameter
Default
Value
id The id of the subscription to cancel.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

GET
1 day

/Notification

Coming soon

Response

On success, the HTTP status code in the response header is 200 OK.

Returns: List of NotificationEvent

GET
0 minutes

/Notification/{ids}

Coming soon

Request
Query parameter
Default
Value
ids The id of the subscription.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* ids
                                                    
                                                                                                        
                                                
POST
0 minutes

/Notification

Coming soon

Request
Query parameter
Default
Value
subscription The subscription.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A unique identifier for the new subscription.

Generate URL

* userName
* eventName
* callbackUrl
* callbackVerb
* useProxy
POST
0 minutes

/Notification?userName={userName}&eventName={eventName}&callbackUrl={callbackUrl}&callbackVerb={callbackVerb}

Coming soon

Request
Query parameter
Default
Value
userName The username.
eventName The name of the event to subscribe to.
callbackUrl The URL to call if the event is raised.
callbackVerb The verb to use when calling the URL.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A unique identifier for the new subscription.

Generate URL

* userName
* eventName
* callbackUrl
* callbackVerb

Occupancy

GET
1 minute

/Occupancy/CarPark

Gets the occupancy for all car parks that have occupancy data

Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

GET
1 minute

/Occupancy/CarPark/{id}

Gets the occupancy for a car park with a given id

Request
Query parameter
Default
Value
id
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Place

GET
1 hour

/Place/{id}

Gets the place with the given id.

Request
Query parameter
Default
Value
id The id of the place, you can use the /Place/Types/{types} endpoint to get a list of places for a given type including their ids
includeChildren [False] Optional. Defaults to false. If true child places e.g. individual charging stations at a charge point while be included, otherwise just the URLs of any child places will be returned
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the place

Generate URL

* id
includeChildren
                                                    
                                                                                                        
                                                
GET
1 day

/Place?lat={lat}&lon={lon}&radius={radius}

Gets the places that lie within the locus defined by the lat/lon of its centre and a radius in metres. Optionally filters on type and can strip properties for a smaller payload.

Request
Query parameter
Default
Value
location complex type object with lat and lon properties. lat is latitude of the centre of the bounding circle. lon is longitude of the centre of the bounding circle
radius the radius of the bounding circle in metres
categories Optional. an optional list of comma separated property categories to return in the Place's property bag. If null or empty, all categories of property are returned. Pass the keyword "none" to return no properties (a valid list of categories can be obtained from the /Place/Meta/categories endpoint)
includeChildren [False] Optional. Defaults to false. If true child places e.g. individual charging stations at a charge point while be included, otherwise just the URLs of any child places will be returned
type Optional. place types to filter on, or null to return all types (white spaces will be stripped out)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the filtered list of places, the centre of the locus and distances of each place from the centre

Generate URL

* lat
* lon
* radius
categories
includeChildren
type
                                                    
                                                                                                        
                                                
GET
1 day

/Place?swLat={swLat}&swLon={swLon}&neLat={neLat}&neLon={neLon}

Gets the places that lie within the 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.

Request
Query parameter
Default
Value
bbBoxpoints Corners of the bounding box specified by the swLat (latitude), swLon (longitude), neLat (latitude), neLon (longitude)
categories Optional. an optional list of comma separated property categories to return in the Place's property bag. If null or empty, all categories of property are returned. Pass the keyword "none" to return no properties (a valid list of categories can be obtained from the /Place/Meta/categories endpoint)
includeChildren [False] Optional. Defaults to false. If true child places e.g. individual charging stations at a charge point while be included, otherwise just the URLs of any child places will be returned
type Optional. place types to filter on, or null to return all types
activeOnly [False] Optional. An optional parameter to limit the results to active records only (Currently only the 'VariableMessageSign' place type is supported)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the filtered list of places

Generate URL

* swLat
* swLon
* neLat
* neLon
categories
includeChildren
type
activeOnly
                                                    
                                                                                                        
                                                
GET
1 day

/Place/{type}/At/{lat}/{lon}

Gets any places of the given type at the given latitude and longitude.

Request
Query parameter
Default
Value
location complex type object with lat and lon properties. lat is latitude of the centre of the bounding circle. lon is longitude of the centre of the bounding circle
type The place type (a valid list of place types can be obtained from the /Place/Meta/placeTypes endpoint)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of places

Generate URL

* lat
* lon
* type
                                                    
                                                                                                        
                                                
GET
1 day

/Place/Meta/{metadataType}

Returns metadata for methods that act upon the Places controller. If metadataType is "categories", gets a list of all of the available place property categories and keys, grouped by category name. If metadataType is "placeTypes", gets a list of the available types of Place.

Request
Query parameter
Default
Value
metadataType the type of metadata to return
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the metadata

Generate URL

* metadataType
                                                    
                                                                                                        
                                                
GET
1 day

/Place/Type/{types}

Gets all places of a given type

Request
Query parameter
Default
Value
types A comma-separated list of the types to return. Max. approx 12 types. A valid list of place types can be obtained from the /Place/Meta/placeTypes endpoint.
activeOnly [False] Optional. An optional parameter to limit the results to active records only (Currently only the 'VariableMessageSign' place type is supported)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of all places of the requested types

Generate URL

* types
activeOnly
                                                    
                                                                                                        
                                                

Road

GET
5 minutes

/Road

Gets all roads managed by TfL

Response

On success, the HTTP status code in the response header is 200 OK.

Returns: all roads

GET
5 minutes

/Road/{ids}

Gets the road with the specified id (e.g. A1)

Request
Query parameter
Default
Value
ids Comma-separated list of road identifiers e.g. "A406, A2" (a full list of supported road identifiers can be found at the /Road/ endpoint)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: The road with the specified id, or null if none exists

Generate URL

* ids
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/all/Disruption/{disruptionIds}

Gets a list of active disruptions filtered by disruption Ids.

Request
Query parameter
Default
Value
disruptionIds Comma-separated list of disruption identifiers to filter by.
stripContent Optional. Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location and comments.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* disruptionIds
stripContent
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/all/Street/Disruption?startDate={startDate}&endDate={endDate}

Gets a list of disrupted streets. If no date filters are provided, current disruptions are returned.

Request
Query parameter
Default
Value
startDate Optional, the start time to filter on.
endDate Optional, The end time to filter on.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* startDate
* endDate
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/{ids}/Disruption

Get active disruptions, filtered by road ids

Request
Query parameter
Default
Value
ids Comma-separated list of road identifiers e.g. "A406, A2" use all for all to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)
stripContent [False] Optional. Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location, comments and streets
severities Optional. an optional list of Severity names to filter on (a valid list of severities can be obtained from the /Road/Meta/severities endpoint)
categories Optional. an optional list of category names to filter on (a valid list of categories can be obtained from the /Road/Meta/categories endpoint)
closures [True] Optional. Optional, defaults to true. When true, always includes disruptions that have road closures, regardless of the severity filter. When false, the severity filter works as normal.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: The filtered disruptions

Generate URL

* ids
stripContent
severities
categories
closures
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/{ids}/Disruption?startDate={startDate}&endDate={endDate}

Get active disruptions between two dates, filtered by road ids Optionally filters on severities.

Request
Query parameter
Default
Value
ids Comma-separated list of road identifiers e.g. "A406, A2" use all for all to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)
dateRange Specified as a range of 2 dates. Start date for period of interest, End date for period of interest
stripContent [False] Optional. Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location, comments and streets
severities Optional. an optional list of Severity names to filter on (a valid list of severities can be obtained from the /Road/Meta/severities endpoint)
categories Optional. an optional list of category names to filter on (a valid list of categories can be obtained from the /Road/Meta/categories endpoint)
closures [True] Optional. Optional, defaults to true. When true, always includes disruptions that have road closures, regardless of the severity filter. When false, the severity filter works as normal.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* ids
* startDate
* endDate
stripContent
severities
categories
closures
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/{ids}/Disruption?swLat={swLat}&swLon={swLon}&neLat={neLat}&neLon={neLon}

Gets the road disruptions that lie within the bounding box defined by the lat/lon of its north-west and south-east corners. The bounding box is optional, if any lat/lon is null the spatial filter is ignored. Optionally filters on lists of road ids and severities.

Request
Query parameter
Default
Value
ids Comma-separated list of road identifiers e.g. "A406, A2" use all for all to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)
geoPointBBox Corners of the bounding box specified by the swLat (latitude), swLon (longitude), neLat (latitude), neLon (longitude)
stripContent [False] Optional. Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location, comments and streets
severities Optional. an optional list of Severity names to filter on (a valid list of severities can be obtained from the /Road/Meta/severities endpoint)
categories Optional. an optional list of category names to filter on (a valid list of categories can be obtained from the /Road/Meta/categories endpoint)
closures [True] Optional. Optional, defaults to true. When true, always includes disruptions that have road closures, regardless of the severity filter. When false, the severity filter works as normal.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the filtered list of road disruptions

Generate URL

* ids
* swLat
* swLon
* neLat
* neLon
stripContent
severities
categories
closures
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/{ids}/Disruption?lat={lat}&lon={lon}&radius={radius}

Gets the road disruptions that lie within the locus defined by the lat/lon of the centre and a radius in meters. If any of lat/lon/radius are null, they will all be ignored and the query will have no spatial filter. Optionally also filters on lists of road ids and severities.

Request
Query parameter
Default
Value
ids Comma-separated list of road identifiers e.g. "A406, A2" use all for all to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)
location complex type object with lat and lon properties. lat is latitude of the centre of the bounding circle. lon is longitude of the centre of the bounding circle
radius the radius of the bounding circle in metres
stripContent [False] Optional. Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location, comments and streets
severities Optional. an optional list of Severity names to filter on (a valid list of severities can be obtained from the /Road/Meta/severities endpoint)
categories Optional. an optional list of category names to filter on (a valid list of categories can be obtained from the /Road/Meta/categories endpoint)
closures [True] Optional. Optional, defaults to true. When true, always includes disruptions that have road closures, regardless of the severity filter. When false, the severity filter works as normal.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the filtered list of road disruptions

Generate URL

* ids
* lat
* lon
* radius
stripContent
severities
categories
closures
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/{ids}/Disruption?swLat={swLat}&swLon={swLon}&neLat={neLat}&neLon={neLon}&startDate={startDate}&endDate={endDate}

Gets the planned road disruptions that lie within the bounding box defined by the lat/lon of its north-west and south-east corners. The bounding box is optional, but if any lat/lon is specified they must all be specified. Optionally filters on lists of road ids, severities and start/end date time.

Request
Query parameter
Default
Value
ids Comma-separated list of road identifiers e.g. "A406, A2" use all for all to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)
geoPointBBox Corners of the bounding box specified by the swLat (latitude), swLon (longitude), neLat (latitude), neLon (longitude)
dateRange Specified as a range of 2 dates. Start date for start of the period that the disruption will fall within to be included in the results, End date for the period that the disruption will fall within to be included in the results
stripContent [False] Optional. Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location, comments and streets
severities Optional. an optional list of Severity names to filter on (a valid list of severities can be obtained from the /Road/Meta/severities endpoint)
categories Optional. an optional list of category names to filter on (a valid list of categories can be obtained from the /Road/Meta/categories endpoint)
closures [True] Optional. Optional, defaults to true. When true, always includes disruptions that have road closures, regardless of the severity filter. When false, the severity filter works as normal.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the filtered list of road disruptions

Generate URL

* ids
* swLat
* swLon
* neLat
* neLon
* startDate
* endDate
stripContent
severities
categories
closures
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/{ids}/Disruption?lat={lat}&lon={lon}&radius={radius}&startDate={startDate}&endDate={endDate}

Gets the planned road disruptions that lie within the locus defined by the lat/lon of the centre and a radius in meters. If any of lat/lon/radius are null, they will all be ignored and the query will have no spatial filter. Optionally also filters on lists of road ids and severities.

Request
Query parameter
Default
Value
ids Comma-separated list of road identifiers e.g. "A406, A2" use all for all to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)
location complex type object with lat and lon properties. lat is latitude of the centre of the bounding circle. lon is longitude of the centre of the bounding circle
radius the radius of the bounding circle in metres
dateRange Specified as a range of 2 dates. Start date for start of the period that the disruption will fall within to be included in the results, End date for the period that the disruption will fall within to be included in the results
stripContent [False] Optional. Optional, defaults to false. When true, removes every property/node except for id, point, severity, severityDescription, startDate, endDate, corridor details, location, comments and streets
severities Optional. an optional list of Severity names to filter on (a valid list of severities can be obtained from the /Road/Meta/severities endpoint)
categories Optional. an optional list of category names to filter on (a valid list of categories can be obtained from the /Road/Meta/categories endpoint)
closures [True] Optional. Optional, defaults to true. When true, always includes disruptions that have road closures, regardless of the severity filter. When false, the severity filter works as normal.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the filtered list of road disruptions

Generate URL

* ids
* lat
* lon
* radius
* startDate
* endDate
stripContent
severities
categories
closures
                                                    
                                                                                                        
                                                
GET
1 day

/Road/Meta/{metadataType}

Get metadata for methods that act upon the Road controller. If metadataType is "categories", gets a list of all of the valid categories to filter by If metadataType is "severities", gets a list of valid severity codes to filter road disruptions by

Request
Query parameter
Default
Value
metadataType the type of metadata to return (one of categories or severities)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the metadata for the chosen type

Generate URL

* metadataType
                                                    
                                                                                                        
                                                
GET
5 minutes

/Road/{ids}/Status?startDate={startDate}&endDate={endDate}

Gets the specified roads with the status aggregated over the date range specified, or now until the end of today if no dates are passed.

Request
Query parameter
Default
Value
ids Comma-separated list of road identifiers e.g. "A406, A2" or use "all" to ignore id filter (a full list of supported road identifiers can be found at the /Road/ endpoint)
dateRangeNullable No Documentation Found.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: All roads with matching id, or an empty list if none exist

Generate URL

* ids
* startDate
* endDate
                                                    
                                                                                                        
                                                

Search

GET
1 hour

/Search?query={query}

Search 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.

Request
Query parameter
Default
Value
query The search query
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* query
                                                    
                                                                                                        
                                                
GET
1 hour

/Search?query={query}&searchProviders={searchProviders}

Search the site for occurrences of the query string, using the specified searchProviders.

Request
Query parameter
Default
Value
query The search query
searchProviders A comma seperated list of searchProviders e.g. content (a full list of supported search providers can be obtained from the /Search/Meta/searchProviders endpoint)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of SearchResponses, one for each provider.

Generate URL

* query
* searchProviders
                                                    
                                                                                                        
                                                
GET
1 hour

/Search?query={query}&pageSize={pageSize}&pageFrom={pageFrom}

Search the site content for occurrences of the query string, returning the offset page of results specified by pageFrom and where each page contains a number of results specified by pageSize. The value of pageSize is limited to 100, a higher value will not increase the page size beyond this. The "total" field in the SearchResponse can be used to determine how many additional pages are available after the first page.

Request
Query parameter
Default
Value
query The search query.
searchPaging pageFrom: The page of results to start from, where 0 is the first page. pageSize: The page size, where 1 is the minimum.
sort Optional. How to sort results. Use the meta endpoint to find the valid sort field names.
category Optional. Category to filter on. One of Pages, News, Docs.
from Optional. The DateTime to filter from, inclusive. If null, no lower bound is specified (i.e. anything older than the toDateTime)
to Optional. The DateTime to filter to inclusive. If null, no upped bound is specified (i.e. anything more recent than fromDateTime)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* query
* pageSize
* pageFrom
sort
category
from
to
                                                    
                                                                                                        
                                                
GET
1 day

/Search/BusSchedules?query={query}

Searches the bus schedules folder on S3 for a given bus number.

Request
Query parameter
Default
Value
query The search query
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of matching bus schedules.

Generate URL

* query
                                                    
                                                                                                        
                                                
GET
1 day

/Search/Meta/{metadataType}

Returns metadata for search methods.

Request
Query parameter
Default
Value
metadataType the type of metadata to return. Valid metadata is categories, searchProviders or sorts
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the metadata

Generate URL

* metadataType
                                                    
                                                                                                        
                                                

StopPoint

GET
1 day

/StopPoint/{ids}

Gets a list of StopPoints corresponding to the given list of stop ids.

Request
Query parameter
Default
Value
ids A comma-separated list of stop point ids (station naptan code e.g. 940GZZLUASL). Max. approx. 20 ids. You can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of stop points

Generate URL

* ids
                                                    
                                                                                                        
                                                
GET
1 day

/StopPoint?lat={lat}&lon={lon}&stopTypes={stopTypes}

Gets a list of StopPoints within by the specified criteria

Request
Query parameter
Default
Value
location No Documentation Found.
stopTypes a list of stopTypes that should be returned (a list of valid stop types can be obtained from the StopPoint/meta/stoptypes endpoint)
radius [200] Optional. the radius of the bounding circle in metres (default : 200)
useStopPointHierarchy [True] Optional. Re-arrange the output into a parent/child hierarchy
modes Optional. the list of modes to search (comma separated mode names e.g. tube,dlr)
categories Optional. an optional list of comma separated property categories to return in the StopPoint's property bag. If null or empty, all categories of property are returned. Pass the keyword "none" to return no properties (a valid list of categories can be obtained from the /StopPoint/Meta/categories endpoint)
returnLines [True] Optional. true to return the lines that each stop point serves as a nested resource
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: An IEnumerable of StopPoint, the centre of the locus and distances of each place from the centre

Generate URL

* lat
* lon
* stopTypes
radius
useStopPointHierarchy
modes
categories
returnLines
                                                    
                                                                                                        
                                                
GET
1 day

/StopPoint?swLat={swLat}&swLon={swLon}&neLat={neLat}&neLon={neLon}&stopTypes={stopTypes}

Gets a list of StopPoints contained within a lat/long bounding box and filtered by the specified criteria.

Request
Query parameter
Default
Value
geoPointBBox Corners of the bounding box specified by the swLat (latitude), swLon (longitude), neLat (latitude), neLon (longitude)
stopTypes a list of stopTypes that should be returned (a list of valid stop types can be obtained from the StopPoint/meta/stoptypes endpoint)
modes Optional. the list of modes to search (comma separated mode names e.g. tube,dlr)
useStopPointHierarchy [True] Optional. Re-arrange the output into a parent/child hierarchy
includeChildren [True] Optional. True to include child elements in the response
categories Optional. an optional list of comma separated property categories to return in the StopPoint's property bag. If null or empty, all categories of property are returned. Pass the keyword "none" to return no properties (a valid list of categories can be obtained from the /StopPoint/Meta/categories endpoint)
returnLines [True] Optional.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A List of StopPoints

Generate URL

* swLat
* swLon
* neLat
* neLon
* stopTypes
modes
useStopPointHierarchy
includeChildren
categories
returnLines
                                                    
                                                                                                        
                                                
GET
10 seconds

/StopPoint/{id}/Arrivals

Gets the list of arrival predictions for the given stop point id

Request
Query parameter
Default
Value
id A StopPoint id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of all the predictions for each line and platform

GET
1 day

/StopPoint/{id}/CanReachOnLine/{lineId}

Gets Stopoints that are reachable from a station/line combination.

Request
Query parameter
Default
Value
id The id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name) of the stop point to filter by
lineId Line id of the line to filter by (e.g. victoria)
serviceTypes Optional. A comma-separated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* id
* lineId
serviceTypes
                                                    
                                                                                                        
                                                
GET
1 day

/StopPoint/{id}/DirectionTo/{toStopPointId}

Returns the canonical direction, "inbound" or "outbound", for a given pair of stop point Ids in the direction from -> to.

Request
Query parameter
Default
Value
id Originating stop id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
toStopPointId Destination stop id (station naptan code e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
lineId Optional. Optional line id filter e.g. victoria
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A string containing the direction either inbound or outbound

Generate URL

* id
* toStopPointId
lineId
                                                    
                                                                                                        
                                                
GET
1 minute

/StopPoint/{ids}/Disruption

Gets all disruptions for the specified StopPointId, plus disruptions for any child Naptan records it may have.

Request
Query parameter
Default
Value
ids A comma-seperated list of stop point ids. Max. approx. 20 ids. You can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name.
getFamily [False] Optional. Specify true to return disruptions for entire family, or false to return disruptions for just this stop point. Defaults to false.
includeRouteBlockedStops [False] Optional.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: All disruptions affecting the specified StopPointId.

Generate URL

* ids
getFamily
includeRouteBlockedStops
                                                    
                                                                                                        
                                                
GET
1 minute

/StopPoint/{ids}/Disruption?startDate={startDate}&endDate={endDate}

Gets all disruptions for the specified StopPointId, plus disruptions for any child Naptan records it may have.

Request
Query parameter
Default
Value
ids A comma-seperated list of stop point ids. Max. approx. 20 ids. You can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name.
dateRange Specified as a range of 2 dates. Start date for period of interest, End date for period of interest
getFamily [False] Optional. Specify true to return disruptions for entire family, or false to return disruptions for just this stop point. Defaults to false.
includeRouteBlockedStops [False] Optional.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: All disruptions affecting the specified StopPointId.

Generate URL

* ids
* startDate
* endDate
getFamily
includeRouteBlockedStops
                                                    
                                                                                                        
                                                
GET
1 day

/StopPoint/Meta/{metadataType}

Gets metadata for methods that act upon the Stops controller. If metadataType is "categories", gets a list of all of the available stops property categories and keys, grouped by category name. If metadataType is "stoptypes", gets a list of the available types of stops. If metadataType is "modes", gets a list of the valid modes to filter stops by.

Request
Query parameter
Default
Value
metadataType the type of metadata to return (One of categories, stoptypes, modes)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: the metadata

Generate URL

* metadataType
                                                    
                                                                                                        
                                                
GET
7 days

/StopPoint/Mode/{modes}

Gets a list of StopPoints filtered by the modes available at that StopPoint.

Request
Query parameter
Default
Value
modes A comma-seperated list of modes e.g. tube,dlr
page Optional. The data set page to return. Page 1 equates to the first 1000 stop points, page 2 equates to 1001-2000 etc. Must be entered for bus mode as data set is too large.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of stop points

Generate URL

* modes
page
                                                    
                                                                                                        
                                                
GET
1 minute

/StopPoint/Mode/{modes}/Disruption

Gets a distinct list of disrupted stop points for the given modes

Request
Query parameter
Default
Value
modes A comma-seperated list of modes e.g. tube,dlr
includeRouteBlockedStops [True] Optional.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A distinct list of disruptions that meet the filter criteria.

Generate URL

* modes
includeRouteBlockedStops
                                                    
                                                                                                        
                                                
GET
1 minute

/StopPoint/Mode/{modes}/Disruption?startDate={startDate}&endDate={endDate}

Gets a distinct list of disrupted stop points for given modes

Request
Query parameter
Default
Value
modes A comma-seperated list of modes e.g. tube,dlr
dateRange Specified as a range of 2 dates. Start date for period of interest, End date for period of interest
includeRouteBlockedStops [False] Optional.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A distinct list of disruptions that meet the filter criteria.

Generate URL

* modes
* startDate
* endDate
includeRouteBlockedStops
                                                    
                                                                                                        
                                                
GET
1 day

/StopPoint/{id}/Route

Returns the route sections for all the lines that service the given stop point ids

Request
Query parameter
Default
Value
id A stop point id (station naptan codes e.g. 940GZZLUASL, you can use /StopPoint/Search/{query} endpoint to find a stop point id from a station name)
serviceTypes Optional. A comma-separated list of service types to filter on. If not specified. Supported values: Regular, Night. Defaulted to 'Regular' if not specified
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of route sections

Generate URL

* id
serviceTypes
                                                    
                                                                                                        
                                                
GET
7 days

/StopPoint/Search/{query}

Search StopPoints by their common name, or their 5-digit Countdown Bus Stop Code.

Request
Query parameter
Default
Value
query The query string, case-insensitive. Leading and trailing wildcards are applied automatically.
modes Optional. An optional, parameter separated list of the modes to filter by
faresOnly [False] Optional. True to only return stations in that have Fares data available for single fares to another station.
maxResults Optional. An optional result limit, defaulting to and with a maximum of 50. Since children of the stop point heirarchy are returned for matches, it is possible that the flattened result set will contain more than 50 items.
lines Optional. An optional, parameter separated list of the lines to filter by
includeHubs [True] Optional. If true, returns results including HUBs.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A MatchedStop for each matching stop point, describing the AtcoCode, CommonName and any location information.

Generate URL

* query
modes
faresOnly
maxResults
lines
includeHubs
                                                    
                                                                                                        
                                                
GET
1 day

/StopPoint/ServiceTypes?id={id}

Gets the service types for a given stoppoint

Request
Query parameter
Default
Value
id The Naptan id of the stop
lineIds Optional. The lines which contain the given Naptan id (all lines relevant to the given stoppoint if empty)
modes Optional. The modes which the lines are relevant to (all if empty)
Response

On success, the HTTP status code in the response header is 200 OK.

Returns:

Generate URL

* id
lineIds
modes
                                                    
                                                                                                        
                                                
GET
7 days

/StopPoint/Sms/{id}

Gets a StopPoint for a given sms code.

Request
Query parameter
Default
Value
id A 5-digit Countdown Bus Stop Code e.g. 73241, 50435, 56334.
output Optional. If set to "web", a 302 redirect to relevant website bus stop page is returned. Valid values are : web. All other values are ignored.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A stop point for a given sms code.

Generate URL

* id
output
                                                    
                                                                                                        
                                                
GET
1 day

/StopPoint/Type/{types}

Gets all stop points of a given type

Request
Query parameter
Default
Value
types A comma-separated list of the types to return. Max. approx. 12 types. A list of valid stop types can be obtained from the StopPoint/meta/stoptypes endpoint.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of all stop points of the requested types

Generate URL

* types
                                                    
                                                                                                        
                                                

Vehicle

GET
50 seconds

/Vehicle/{ids}/Arrivals

Gets the predictions for a given list of vehicle Id's.

Request
Query parameter
Default
Value
ids A comma-separated list of vehicle ids e.g. LX58CFV,LX11AZB,LX58CFE. Max approx. 25 ids. You can use the /Line/ endpoint to retrieve all lines and their ids.
Response

On success, the HTTP status code in the response header is 200 OK.

Returns: A list of predictions prediction object

Generate URL

* ids