US Traffic Signal Locations & Intersection Dataset avatar

US Traffic Signal Locations & Intersection Dataset

Pricing

from $30.00 / 1,000 delivered intersections

Go to Apify Store
US Traffic Signal Locations & Intersection Dataset

US Traffic Signal Locations & Intersection Dataset

Download traffic signal locations for any US city or state — ~170k signalized intersections across 225 cities, all 50 states + DC. Signal type, ADA flags, approach count, nearest street. JSON/CSV/Excel/KML for SUMO, VISSIM, V2X. Data © OpenStreetMap contributors (ODbL 1.0).

Pricing

from $30.00 / 1,000 delivered intersections

Rating

5.0

(1)

Developer

ScholarStack

ScholarStack

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

Get traffic signal locations for any US city or state in minutes. This actor extracts ~170,000 signalized intersections from OpenStreetMap across 225 cities in all 50 states + Washington, D.C. — one clean, deduplicated record per intersection, classified by signal type, with approach-arm count, ADA/accessibility flags, nearest street, and confidence score. Export as JSON, CSV, Excel, or KML for Google Earth, ready for V2X/C-ITS, traffic simulation (SUMO/VISSIM), HD maps, and routing.

Run a free dryRun first to see the exact intersection count and estimated cost before paying.

Need European coverage? Use the companion Europe Traffic Signal Locations & Intersection Dataset — same pipeline, 271 cities in 41 countries.

Every signalized intersection across Los Angeles extracted from OpenStreetMap Downtown Los Angeles signalized intersections mapped onto the road network

Los Angeles — full-city coverage (left) and the downtown road network with signalized intersections (right). Data © OpenStreetMap contributors, ODbL 1.0.

How to get traffic signal locations for any US city

  1. Click Try for free and pick an input mode:
ModeHowExample
Single citycity: "ca-socal-los_angeles"Los Angeles only
Multiple citiescities: ["wa-seattle", "ny-new_york"]Any combination
Whole statestate: "WA"All listed Washington cities
Custom bboxcustomBbox: "34.00,-118.50,34.20,-118.20" + state: "CA-SOCAL"Any rectangle
  1. Set dryRun: true for a free estimate (count, cost, 10 sample records — no charge).
  2. Run for real and download JSON, CSV, Excel, or KML from the Output tab.

What data you get for each signalized intersection

FieldDescription
intersection_idStable, location-based ID US-{STATE}-{CITY3}-{geohash8} (e.g. US-CA-SOCAL-LOS-9q5ctr1p)
state_codeUSPS state / region code (e.g. WA, CA-NORCAL, CA-SOCAL)
city_slug / city_nameCity key and human-readable name
lat / lonIntersection centroid (WGS84)
osm_idA representative OSM node id for the intersection
signal_typevehicular_junction, pedestrian_crossing, vehicular_and_pedestrian, hawk_signal, or level_crossing
approach_countNumber of road arms meeting at the junction (when available)
nearest_streetName of the nearest named road
accessibilityADA flags: button_operated, sound_signal, tactile_paving, countdown_display, vibration_signal, bicycle_signal, leading_pedestrian_interval (true/false/null)
confidence{ "score": 0.0–1.0, "reason": ... } — Phase 1 is OSM-density based
source_tierosm (Phase 2 will add official+osm)
osm_last_editedWhen the signal was last edited in OSM
data_vintageDate of the OSM data snapshot used
attribution© OpenStreetMap contributors, ODbL 1.0

Output example

{
"intersection_id": "US-CA-SOCAL-LOS-9q5ctr1p",
"state_code": "CA-SOCAL",
"city_slug": "ca-socal-los_angeles",
"city_name": "Los Angeles",
"lat": 34.0522342,
"lon": -118.2436849,
"osm_id": 123456789,
"signal_type": "vehicular_junction",
"approach_count": 4,
"nearest_street": "Wilshire Blvd",
"accessibility": {
"button_operated": true,
"sound_signal": true,
"tactile_paving": true,
"countdown_display": null,
"vibration_signal": false,
"bicycle_signal": null,
"leading_pedestrian_interval": null
},
"source_tier": "osm",
"confidence": { "score": 0.8, "reason": "osm_only_dense_city" },
"osm_last_edited": "2024-05-05T20:14:00+00:00",
"data_vintage": "2026-06-04",
"source": "© OpenStreetMap contributors",
"license": "ODbL-1.0",
"attribution": "© OpenStreetMap contributors, ODbL 1.0"
}

Signal types covered (vehicular, pedestrian, HAWK, level crossing)

ValueMeaning
vehicular_junctionRoad junction signal (highway=traffic_signals, no crossing)
pedestrian_crossingSignalized pedestrian crossing (crossing=traffic_signals)
vehicular_and_pedestrianJunction with a pedestrian phase
hawk_signalHAWK pedestrian beacon (US-specific)
level_crossingRailway level crossing with signals

Coverage: 225 cities, all 50 US states + DC

One major metro per state to start, with California split into NorCal and SoCal sub-regions (mirroring Geofabrik). Each region's signal data is sourced from the latest Geofabrik US-state OpenStreetMap extract. Run dryRun: true to see exact intersection counts and estimated cost for your city or state before paying.

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

Every run produces JSON and CSV; KML export gives you a Google Earth-ready file with each signalized intersection as a placemark, and 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, VISSIM, or V2X applications

Use lat/lon to match signalized junctions onto your SUMO or VISSIM network nodes, approach_count to sanity-check junction geometry, and signal_type to separate vehicular junctions from pedestrian crossings. For V2X/C-ITS work, the stable geohash-based intersection_id provides a persistent key for RSU placement planning and MAP/SPaT inventories across data refreshes. The ADA accessibility flags support pedestrian-accessibility audits and inclusive-routing applications.

Key parameters

  • signalType (default ["all"]) — array; pick any taxonomy values or all.
  • minConfidence (default 0) — integer 0–100 (interpreted as 0.00–1.00); drops intersections below it.
  • includeAccessibility (default true) — include the ADA flags block.
  • clusterRadiusMeters (default 70) — signals within this radius group into one intersection.
  • mergeRadiusMeters (default 70) — centroids within this radius merge (fixes divided-road duplicates).
  • maxResults (default 1000) — cap delivered/charged intersections. 0 = unlimited.
  • dryRun (default false) — free estimate: count, cost, 10 sample records. No charge.
  • priorDatasetId — Delta Mode; pass a previous run's defaultDatasetId to be charged only for added/removed/changed intersections.

How much does it cost to extract traffic signal data?

$0.03 per delivered intersection ($30 per 1,000), plus $0.25 per run for KML export. Always run dryRun: true first to see the exact count and cost. For recurring refreshes, Delta Mode charges only for intersections that were added, removed, or changed since your last run — combined with Apify's scheduler, that turns this actor into a monthly traffic signal change-monitoring feed for your city or state.

Data accuracy vs official city figures

Vehicular signalized-intersection counts from this actor track the figures published by city transportation departments within a few percent:

CityOfficial DOT figureThis actor (vehicular only)Difference
Los Angeles~4,850 (LADOT)4,8560%
New York City~13,770 (NYC DOT)13,198−4%
Chicago~2,900 (CDOT)2,988+3%

The default signalType: ["all"] additionally includes standalone pedestrian-crossing signals, so the all-types total per city is higher than the vehicular-only figure above. Set signalType: ["vehicular_junction", "vehicular_and_pedestrian"] to match a DOT's vehicular-intersection count.

Data quality, confidence scores, and OSM attribution

  • Data comes from OpenStreetMap (ODbL 1.0). Coverage and accuracy depend on OSM contributor activity in each city.
  • confidence.score reflects OSM density for the city (Phase 1). Phase 2 will fuse official city open-data and raise confidence where the two agree.
  • osm_last_edited is included per intersection so you can judge freshness yourself.
  • Data is refreshed periodically from the latest Geofabrik US-state extracts.

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, Geofabrik, Google (Google Earth), the Eclipse Foundation (SUMO), or PTV Group (VISSIM). Product names are used solely to indicate data-format compatibility.

FAQ

Where can I download traffic signal locations for a US city?

Run this actor with your city key (e.g. wa-seattle) and download every signalized intersection as JSON, CSV, Excel, or KML in minutes — no GIS tooling required. All 225 covered cities and 50 states work the same way.

Does OpenStreetMap have traffic signal data?

Yes — OSM maps signals as highway=traffic_signals and crossing=traffic_signals nodes, but raw nodes include multiple poles per junction. This actor clusters and deduplicates them into one record per real intersection, classified by signal type including US-specific HAWK beacons.

Can I get pedestrian signal and ADA accessibility data?

Yes — each record carries ADA flags (audible signals, tactile paving, push buttons, countdown displays, leading pedestrian intervals and more) where OSM contributors have mapped them.

Can I get the data as KML for Google Earth?

Yes — KML export ($0.25 per run) produces a Google Earth-ready file of all delivered intersections.

Can I monitor a city for new or changed signals?

Yes — Delta Mode (priorDatasetId) returns and charges only for added, removed, or changed intersections since your previous run. Schedule it monthly for a continuous change feed.

How is this different from the Europe version?

Same pipeline and schema family, different coverage: this actor covers 225 US cities across all 50 states with ADA/accessibility flags and the US signal taxonomy (incl. HAWK beacons); the Europe actor covers 271 cities in 41 countries.