Europe Traffic Signal Locations & Intersection Dataset avatar

Europe Traffic Signal Locations & Intersection Dataset

Pricing

$30.00 / 1,000 delivered intersections

Go to Apify Store
Europe Traffic Signal Locations & Intersection Dataset

Europe Traffic Signal Locations & Intersection Dataset

Download traffic signal locations for any European city or country — clean, deduplicated signalized intersections with street name, signal type, and confidence score. 271 cities, 41 countries. JSON/CSV/KML for Google Earth, SUMO/MATSim, V2X. Data © OpenStreetMap contributors (ODbL 1.0).

Pricing

$30.00 / 1,000 delivered intersections

Rating

5.0

(2)

Developer

ScholarStack

ScholarStack

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

5 days ago

Last modified

Share

Get traffic signal locations for any European city or country in minutes. This actor extracts signalised intersections from OpenStreetMap across 271 cities in 41 countries and returns one clean, deduplicated centroid per intersection — with nearest street name, signal type, and a confidence score. Export as JSON, CSV, Excel, or KML for Google Earth, ready for SUMO/MATSim traffic simulation, V2X/C-ITS development, HD maps, and routing.

Run a free dryRun first to see the exact intersection count and cost before paying — example costs: Luxembourg City ~$6, Munich ~$31, Berlin ~$63.

Need US coverage? Use the companion US Traffic Signal Locations & Intersection Dataset — same schema, all 50 states.

Every signalised intersection across Berlin extracted from OpenStreetMap Central Berlin signalised intersections mapped onto the road network

Berlin — full-city coverage (left, 2,089 intersections) and the central road network with signalised intersections (right). Data © OpenStreetMap contributors, ODbL 1.0.

How to extract traffic signal locations for any European city

  1. Click Try for free and pick an input mode:
ModeHowExample
Single citycity: "DE-berlin"Berlin only
Multiple citiescities: ["DE-berlin", "DE-munich"]Any combination
Whole state/regionstate: "DE-bayern"All of Bavaria: its listed cities + everything else in the state (bayern-rest)
Whole countrycountry: "DE"All German cities
Custom bboxcustomBbox: "52.4,13.2,52.6,13.5" + country: "DE"Any rectangle
  1. Set dryRun: true for a free estimate (count, cost, 10 sample records — no charge).
  2. Run for real and download the dataset as JSON, CSV, Excel, or KML from the Output tab.

What data you get for each signalised intersection

FieldDescription
intersection_idStable, location-based ID (e.g. berlin-u33db3f0) — same place always gets the same ID
latitude / longitudeIntersection centroid (WGS84)
nearest_streetName of the nearest named road
signal_typevehicular or pedestrian
confidenceClassifier confidence score (0–1)
signal_node_countNumber of OSM signal poles in the cluster
osm_last_editedWhen the signal was last edited in OSM
data_vintageDate of the OSM data snapshot used

Output example

{
"intersection_id": "berlin-u33db3f0",
"country": "DE",
"city": "berlin",
"city_name": "Berlin",
"latitude": 52.4755238,
"longitude": 13.3401799,
"nearest_street": "Hauptstraße",
"signal_type": "vehicular",
"confidence": 1.0,
"signal_node_count": 4,
"cluster_spread_m": 19.67,
"osm_last_edited": "2024-05-05T20:14:00+00:00",
"data_vintage": "2026-05-29",
"source": "© OpenStreetMap contributors",
"license": "ODbL-1.0"
}

Coverage: 271 cities across 41 European countries

Albania, Austria, Belarus, Belgium, Bosnia and Herzegovina, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Georgia, Germany, Great Britain, Greece, Hungary, Iceland, Ireland, Italy, Kosovo, Latvia, Lithuania, Luxembourg, Malta, Moldova, Montenegro, Netherlands, North Macedonia, Norway, Poland, Portugal, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey.

Run dryRun: true to see exact intersection counts and estimated cost for any city or country before paying.

Export traffic signals to KML / Google Earth, CSV, or Excel

Every run produces JSON and CSV, plus a KML file named by city and data vintage that opens directly in Google Earth — each signalized intersection as a placemark with its attributes. Excel export is available on the dataset. KML is the fastest way to visually verify coverage for your city before integrating the data.

Using this data in SUMO, MATSim, or V2X projects

The deduplicated centroids map cleanly onto network nodes: use latitude/longitude to match junctions in your SUMO or MATSim network, signal_type to separate vehicular junctions from pedestrian crossings, and signal_node_count as a proxy for junction complexity. For V2X/C-ITS work, the stable intersection_id gives you a persistent key for RSU placement planning and MAP message inventories across data refreshes.

Key parameters

  • signalType (default vehicular) — vehicular for junctions, pedestrian for crossings, all for both.
  • clusterRadiusMeters (default 70) — signals within this radius group into one intersection. Lower it for dense historic centres; raise it for sprawling suburbs.
  • mergeRadiusMeters (default 70) — centroids within this radius merge (fixes duplicate points on wide divided roads). Lower it if separate nearby junctions get merged.
  • state — extract a whole state/region (e.g. DE-bayern): expands to its listed cities plus a -rest remainder covering everything else inside the state boundary, with no overlap. State runs can be large — always dryRun first.
  • dryRun (default false) — free estimate: count, cost, 10 sample records. No charge.
  • priorDatasetId — Delta Mode; see below.

How much does it cost to extract traffic signal data?

$0.03 per delivered intersection.

CityApprox intersectionsApprox cost
Luxembourg City~215~$6
Munich~1,043~$31
Berlin~2,090~$63
Whole-country batchvaries by countryrun dryRun first

Always run dryRun: true first to see the exact count and cost before committing.

Delta Mode: monitor a city for signal changes

If you run the actor regularly for the same city, pay only for what changed:

  1. Run normally → note the defaultDatasetId from the Storage tab
  2. Next month, pass it as priorDatasetId
  3. The actor returns only added, removed, and changed intersections
  4. You pay only for the delta, not the full city

Intersection IDs are location-based — always use the same actor version for delta comparisons. Combined with Apify's scheduler, this turns the actor into a monthly traffic signal change-monitoring feed for your city.

Data quality and OSM attribution

  • Data comes from OpenStreetMap (ODbL 1.0). Coverage and accuracy depend on OSM contributor activity in each city.
  • Results are clipped to the city's real administrative boundary (OSM admin polygon), not just a rectangular bbox — so counts match the jurisdiction. Cities without a baked boundary polygon fall back to bbox-only behaviour.
  • Extracted counts typically land within ~15% of official city figures (sometimes higher, since OSM may retain decommissioned or minor signals).
  • Validated counts (with boundary clipping): Berlin ~2,150 official vs ~2,089 extracted.
  • osm_last_edited is included per intersection so you can judge freshness yourself.
  • Data is refreshed monthly.

Data © OpenStreetMap contributors, available under the Open Database License (ODbL 1.0). Any use of this data must credit OpenStreetMap contributors and comply with ODbL terms. Note for downstream use: datasets you build from this data are Derivative Databases under the ODbL — if you use them publicly, they must remain available under ODbL terms with OpenStreetMap attribution. Internal/private use carries no share-alike obligation.

Disclaimer

This is an independent, unofficial tool built on publicly available OpenStreetMap data. It is not affiliated with or endorsed by the OpenStreetMap Foundation, Google (Google Earth), the Eclipse Foundation (SUMO), or MATSim. Product names are used solely to indicate data-format compatibility.

FAQ

Where can I get traffic light locations for Berlin, Paris, or Amsterdam?

Run this actor with the city key (e.g. DE-berlin) and download the full set of signalized intersections in minutes — Berlin yields ~2,090 intersections (boundary-clipped), validated against the city's official figure of ~2,150. All 271 covered cities work the same way.

Does OpenStreetMap have traffic signal data?

Yes — OSM maps signals as highway=traffic_signals nodes, but raw nodes include multiple poles per junction. This actor clusters and deduplicates them into one record per real intersection, which is what simulation and mapping work actually needs.

Can I extract a whole country at once?

Yes — set country: "DE" (or any of the 41 covered countries) to process every listed city in one run. Use dryRun first to see the total count and cost.

Can I get the data as KML for Google Earth?

Yes — every run includes a KML file named by city and data vintage; open it directly in Google Earth.

How is this different from the US version?

Same pipeline and schema, different coverage: this actor covers 271 European cities in 41 countries; the US actor covers 225 US cities across all 50 states with additional ADA/accessibility flags.