Overpass query example

One bus line by its number

Find a single bus or trolleybus line by its ref and get its route. Example: line 31 in Zürich.

Lines are identified by ref, the number shown on the vehicle. Some lines are trolleybuses (route=trolleybus), so match both.

The query

[out:json][timeout:25];
area["name"="Zürich"]["admin_level"="8"]->.a;
rel["route"~"^(bus|trolleybus)$"]["ref"="31"](area.a);
out geom;

Run it

Running the query…

Live result from overpass.ch, cached for up to 12 hours. Map data © OpenStreetMap contributors (ODbL).

How it works

  1. ["route"~"^(bus|trolleybus)$"] covers both vehicle types.
  2. ["ref"="31"] is the line number. Expect one relation per direction.

Variations

  • Get the stops in order: out body; and read the members with role stop or platform.

Run it from your code

curl https://api.overpass.ch/v1/YOUR_API_KEY/interpreter \
  --data-urlencode 'data@query.overpassql'

Save the query as query.overpassql. It works the same in Overpass Turbo, QGIS and JOSM.

More examples

All examples →