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.

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

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.

JSON endpoints

The interface uses these endpoints. Errors have the form {"error": "code", "message": "text"}.

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

Open the stop finder