ParseForge Scrapers

TfL London Live Status Scraper

parseforge/tfl-london-status-scraper

BusinessAutomationOther

Scrapes live Transport for London status data. Returns line service health, disruptions, stations with NaPTAN codes, Santander Cycles dock occupancy, air quality forecasts, and vehicle arrivals as flat rows. No key required.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
107
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

TfL London Live Status Scraper

Scrape live Transport for London (TfL) status for every line, station, bike-point, and car park, up to a million items per run. Each record returns real-time service health, active disruptions, vehicle arrivals, and dock occupancy. No API key required. Export to CSV, JSON, Excel, or XML.

The TfL Unified API needs key registration and rate limits that slow down bulk collection. This Actor reads the public live data feeds directly and returns line-status, disruptions, station catalogues, Santander Cycles dock occupancy, air-quality forecasts, and car-park occupancy in one fixed schema. Choose a mode, set a transport mode filter, and collect exactly the slice of London transport data you need.

Who uses it What they scrape Transport for London (TfL) for
Commuter app builders Feeding a mobile app with per-line service status and live arrival counts.
Data journalists Tracking disruption frequency and severity across London's transport network over time.
City planners Analysing station catalogue completeness and NaPTAN code distribution for accessibility studies.
Mobility researchers Measuring Santander Cycles dock occupancy and air-quality forecasts against neighbourhood demand.

What it does

This Actor collects live Transport for London data by mode (line status, disruptions, stations, arrivals, bike points, air quality, or car park occupancy) and returns each item as a flat row.

  • πŸš‡ Seven data modes: line-status, disruptions, stations, arrivals, bike-points, air-quality, and car-park occupancy, each with a flat row schema.
  • 🚌 Transport mode filter: limit results to Tube, DLR, Overground, Elizabeth line, National Rail, Bus, Tram, River Bus, Cable Car, or Cycle, or fan out across all modes.
  • πŸ“ Station catalogue with NaPTAN: every station record includes its national public transport access node identifier for mapping and integration.
  • 🚲 Santander Cycles dock occupancy: live bike and empty dock counts for every docking station in London.
  • 🌬️ Air-quality forecast: the daily London air-quality band and pollution summary from the TfL data feed.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Transport for London (TfL) data

πŸ“± Populate a London travel app.

A developer runs the line-status mode daily to feed service health, disruptions, and arrival counts into a passenger-facing mobile application.

πŸ“° Monitor disruption patterns for reporting.

A journalist runs the disruptions mode weekly against all modes, then charts incident frequency by line and severity level for a city-mobility story.

🚲 Balance cycle-hire dock distribution.

An operations analyst runs bike-points mode every 30 minutes to detect docks running empty or full and inform redistribution vans.

πŸ—ΊοΈ Build a station accessibility map.

A city planner runs stations mode once, extracts NaPTAN codes and geolocations, then joins the catalogue against step-free access datasets.

🌫️ Track London air quality by zone.

A researcher runs air-quality mode daily and saves each forecast row to a time-series database for correlation with traffic and health data.

Why choose this scraper

What you get
No API key needed Accesses public TfL data feeds directly with zero registration or OAuth setup.
Fixed flat schema Every mode returns the same structured output format ready for SQL, BigQuery, or Excel.
All transport modes Covers every TfL mode including River Bus, Cable Car, and Cycle, not rail and bus.

How it compares

This Actor covers every TfL live data mode in one tool, including bike-points, air quality, and car-park occupancy, which competing TfL scrapers do not list.

Feature ParseForge TfL London Scraper - Live Transport Data TfL Service Status Scraper - London Transport Data
Line status (per-line service health) Yes, across all TfL modes Yes Yes
Live vehicle arrivals by line Yes, with lineId parameter Yes Not listed
Station catalogue with NaPTAN codes Yes Not listed Not listed
Santander Cycles dock occupancy Yes Not listed Not listed
London air-quality forecast Yes Not listed Not listed
Car-park occupancy Yes Not listed Not listed

Configure the run

Drive the Actor by choosing a data mode, optionally filtering by transport mode, then set a line ID for arrivals or a maximum item count to control run size. Filters apply as each record is read, so only matched items reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10
}

A larger pull:

{
 "maxItems": 200
}

Pricing

Pay-per-result: $0.039 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.90
1,000 results $39.00
10,000 results $390.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the TfL London Live Status Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Transport for London (TfL) through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/tfl-london-status-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting zero results?

Check that your transport mode filter matches the data mode. For example, station data exists for Tube but not for River Bus. Try running with 'All modes' first, then narrow down.

The arrivals mode returns an error.

Arrivals mode requires a valid lineId. Make sure you have provided an ID like 'northern' or 'bakerloo' in the Line ID field. You can get a full list of line IDs from a line-status run.

Some lines are missing from my line-status run.

If you set transportMode to a single mode, only lines from that mode appear. Set it to 'All modes' to collect every line, including Elizabeth line, Tram, and Cable Car.

The dataset columns don't match what I expected.

Each data mode returns a different flat schema. Check you have selected the correct mode in the input. Mode 'line-status' returns service health fields, while 'bike-points' returns dock counts.

My run times out before collecting all stations.

The stations catalogue is finite. Set maxItems to 2000 and transportMode to 'All modes', then increase the run timeout in the Apify actor settings if necessary.

FAQ

Question Answer
Do I need a TfL API key to use this Actor? No. It reads public TfL data feeds directly, so there is no registration, OAuth, or key management required.
Which transport modes are supported? All TfL modes: Tube, DLR, London Overground, Elizabeth line, National Rail, Bus, Tram, River Bus, IFS Cloud Cable Car, and Santander Cycles. You can select one mode or all modes.
Can I get live vehicle arrivals? Yes. Set the mode to arrivals and provide a line ID like 'central' or 'jubilee'. The Actor returns the next vehicles with expected arrival times.
Does this scraper return station NaPTAN codes? Yes. The stations mode includes the full National Public Transport Access Node identifier for every station, useful for mapping and data joining.
How often can I run the disruptions mode? As often as your schedule permits. There is no source rate limit, but we recommend running it every few minutes to capture fresh incidents without unnecessary duplication.
What does the bike-points mode return? It returns every Santander Cycles docking station with its current bike count, empty dock count, location, and dock ID from the live TfL feed.
Can I scrape air-quality data for London? Yes. The air-quality mode returns the daily London-wide and site-specific air-quality forecast, including pollution bands and text summaries.
What is the maximum items I can scrape per run? You can set maxItems up to 1,000,000. For line-status or stations, set it higher than the number of expected lines or stations to collect everything in one run.
How do I get line status for only Tube lines? Set mode to 'line-status' and transportMode to 'tube'. The Actor returns service health for every London Underground line as separate flat rows.
Can I export the data to CSV? Yes. Like all Apify Actors, you can export the dataset to CSV, JSON, Excel, XML, and other formats directly from the run console.

Related actors

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Transport for London. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
mode string (7 options) Choose what to scrape. Line-status returns service health per line. Disruptions returns active incidents. Stations returns the full station catalogue with NaPTAN. Arrivals returns next vehicles for a specific line (set lineId). Bike-points returns Santander Cycles dock occupancy. Air-quality returns the daily London air-quality forecast. Occupancy returns live car-park occupancy. line-status
transportMode string (11 options) Limit results to one TfL transport mode, or use 'All modes' to fan out across every mode (Tube, DLR, Overground, Elizabeth line, National Rail, Bus, Tram, River Bus, Cable Car, Cycle). all
lineId string Required when mode is 'Arrivals'. Single line identifier (e.g. 'central', 'piccadilly', 'jubilee', 'elizabeth'). not set
maxItems integer How many lines to collect per run. 10

Pricing

from $29.25 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.02925 to $0.039

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~tfl-london-status-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run TfL London Live Status Scraper on Apify All scrapers