Public Transport Stops (NaPTAN)
Every public transport access point in Great Britain — 434,000 bus stops, station entrances, tram platforms, ferry and airport access points and taxi ranks — each with a map coordinate and a stable code. The official answer to 'how well served is this location?'
Retail Hospitality Property Logistics Transport & travel
| Publisher | Department for Transport |
|---|---|
| Licence | Open Government Licence v3 what this means |
| Updates | Updated daily |
| Cost | Free — open data |
| Last verified | 2026-07-16 |
What your business can use it for
Site selection
Count the stops within walking distance of each candidate site and see what kind they are — a location on twelve bus routes and one two streets from a station are different propositions.
Market analysis
Public transport access shapes who can reach you, for custom and for staff. Use it to explain why footfall or recruitment differs between sites that otherwise look alike.
Works with data you already have
-
Locations you already map — shops, sites, properties, jobs
Map coordinates
Every stop carries WGS84 latitude/longitude and OSGB easting/northing, so it drops onto whatever map you already have
How to get it
-
API
NaPTAN API — the whole national register as one CSV
No key needed. One request returns every stop in Great Britain (~96 MB). The API always returns the current state — there is no archive, so date-stamp what you download if you care about history. -
Portal
NaPTAN site — browse and search stops
The front-end for looking things up by hand. For data, use the API above rather than scraping this.
What's involved in using it
- The main list of stops is a single, reasonably tidy file with map coordinates already on it — for straightforward "where are the stops near my sites" work this one is genuinely simple to use.
- The companion file that translates area codes into readable place names is only supplied as a technical XML file, not a spreadsheet, so if you want proper town and locality names you need someone to extract them from it first.
- Stop types are short three-letter codes that need a reference list to decode, and the file includes inactive and archived stops, so filter to active ones before counting.
Worth knowing before you start
- There is no postcode on a stop — the join is by coordinate, so you will need your own locations mapped before this is useful.
- Roughly 5% of rows are not active. Filter on the status column or you will count stops that no longer exist.
- A stop is not a service. This tells you a bus stop is there, not whether anything calls at it — for that you need the Bus Open Data Service timetables.
- Locality names nest confusingly: the locality may be a small village, with the town and city in separate parent columns. Use the town field for 'what place is this in?'
- The companion place-name gazetteer (NPTG) is XML only and hierarchical — asking the API for CSV is silently ignored.
Ask us about Public Transport Stops (NaPTAN)
Ask a factual question about Public Transport Stops (NaPTAN) — what it covers, how often it changes, whether it matches the records you keep — and we will answer, free. Or tell us what you are trying to work out, and we will tell you what it would take to get this data working next to the numbers you already have.