About the UK Bus Stop Finder
This tool makes it easier to find the ATCO code recorded for a UK public transport stop in OpenStreetMap. ATCO codes are used by journey-planning services and integrations such as Home Assistant bus departure displays.
Search by postcode, street, place, ATCO code, or coordinates. Select a result to see its code, direction, coordinates, OSM tags, and associated bus route relations. Stops without an ATCO code are still shown and link to the OpenStreetMap editor.
Shareable URL parameters
Use one search form at a time; selecting a stop replaces search parameters with its OSM object ID.
| Parameters | Meaning | Example |
|---|---|---|
q |
A postcode, street, place name, or exact ATCO code. Place searches show up to 20 UK-only matches to choose from; a postcode with one match opens directly. | {{ url_for('index') }}?q=Bristol+Temple+Meads |
lat and lon |
Decimal latitude and longitude. Both are required. The map opens around this point. | {{ url_for('index') }}?lat=51.4545&lon=-2.5879 |
node |
An OpenStreetMap node ID. The stop opens with nearby stops visible. | {{ url_for('index') }}?node=485403178 |
way |
An OSM way ID, for the less common stop mapped as an area. | {{ url_for('index') }}?way=123456 |
relation |
An OSM relation ID used as a stop object. | {{ url_for('index') }}?relation=123456 |
You can also enter coordinates directly in the search box as
latitude, longitude, for example 51.4545, -2.5879.
Browser location searches produce a shareable lat/lon URL.
Using the map
- Search results are sorted by distance from the searched point.
- After moving the map, results are sorted from the new map centre.
- Text searches use the visible map as a Nominatim ranking preference, but matches outside the view remain eligible.
- Stops in the visible area load automatically at zoom level 15 or closer.
- Wider views do not query Overpass, to avoid requesting an excessively large area.
- Selecting a stop highlights it and refreshes surrounding markers without closing its details.
Data and availability
Stop and route data comes from OpenStreetMap contributors. Place searches use Nominatim. Transport queries use the Britain-and-Ireland Overpass instance operated at overpass.atownsend.org.uk, with Private.coffee as a fallback.
Public Overpass services can occasionally be busy. OSM data may be incomplete or out of date, and this finder is not an official source of NaPTAN data. If a code or stop is missing, use the edit link on its detail panel and follow OpenStreetMap's editing and source requirements.
Location and privacy
“Use my current location” asks the browser for permission. The coordinates are sent to this application to find nearby stops and appear in the shareable URL; the application does not intentionally persist search or location history. Requests to map tiles, Nominatim, and Overpass are subject to those services' own policies and operational logs.
Source code
The source code for this tool is available at git.4angle.com/edward/openstreetmap-tools.
JSON endpoints
The interface uses these endpoints. Errors have the form {"error": "code", "message": "text"}.
| Endpoint | Purpose |
|---|---|
GET {{ url_for('search') }}?q=… | Search a place, coordinates, or ATCO code. |
GET {{ url_for('stops') }}?lat=…&lon=… | Stops within 1 km of a point. |
GET {{ url_for('bounded_stops') }}?south=…&west=…&north=…&east=… | Stops in a safely limited map area. |
GET {{ url_for('stop_detail', element_type='node', element_id=485403178) }} | One stop by OSM type and ID. |
GET {{ url_for('stop_routes', element_type='node', element_id=485403178) }} | Stop-area-aware bus routes serving a stop. |