Skip to content

Waze Traffic Scraper

Try for free

Live Waze traffic alerts (accidents, hazards, police, closures) and jams for any map area, Waze driving routes with ETAs, tolls and on-route incidents, and Waze place search. No login.

🚦 Waze Traffic Scraper

Pull live Waze traffic into clean rows: every accident, hazard, police report, road closure and traffic jam inside any map area, Waze's driving routes with travel times, tolls and on-route incidents, and Waze place search. No Waze account, no API key, and you pay per map area query, not per row.

✨ Why use Waze Traffic Scraper?

  • 🗺️ Any map area, any size — draw a box around a street, a city or a whole metro area. Waze shows at most 200 alerts and 200 jams per map view; this actor splits large areas into tiles automatically, so you can collect up to 10,000 of each per area.
  • 📍 Several areas in one run — add as many boxes as you like (London, Paris and New York together); overlapping areas are de-duplicated.
  • 🧭 Routes by address or coordinates — ask for Times Square, New York -> JFK Airport and get up to 5 alternative routes with minutes, kilometres, toll price, HOV rules and the alerts and jams along each route.
  • 🏷️ Ready-to-use rows — country and city on every alert and jam, ISO timestamps, speed in km/h, jam polylines and a Waze link for each row.
  • 🔒 No login — only public live map data. Nothing to sign up for.
  • 💸 Pay per map area — one charge covers up to 200 alerts and jams.

🎯 Use cases

  • 🚚 Logistics and fleet routing — check live jams and closures on delivery corridors before dispatching, or compare Waze ETAs for a list of trips.
  • 🛡️ Insurance and risk — collect accident, hazard and police reports by area and time of day.
  • 📰 News and incident monitoring — schedule the actor every few minutes over a city and alert your team on new road closures or major accidents.
  • 🏙️ Mobility and urban research — measure congestion levels, jam lengths and speeds across neighbourhoods.
  • 📍 Location data — find gas stations, parking lots or chains on the Waze map inside a given area.

🚀 How to use

  1. Choose What to scrape: Alerts & jams, Driving directions or Places search.
  2. For alerts and places, enter the bottom-left and top-right corners of the map area as latitude,longitude (tip: right-click a point in any web map to copy its coordinates). Add more areas under More map areas.
  3. For routes, enter From and To as coordinates or as a place name, or add several trips as from -> to lines.
  4. Set Max alerts per area and Max jams per area (20 each by default) and any filters.
  5. Click Start. When the run finishes, download the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
operationalertsAndJams, drivingDirections or venues (places search). Left empty, it is picked from the fields you filled in.
bottomLeft, topRightCorners of the map area as latitude,longitude.
areasMore map areas, one per line: south,west,north,east.
maxAlerts, maxJamsResults per map area (0 to 10,000 each, 0 skips that type).
alertTypes, alertSubtypesOnly keep these alert types (ACCIDENT, HAZARD, POLICE, ROAD_CLOSED, ...) or Waze subtypes.
minJamLevel, maxAgeMinutesOnly jams at or above a level (1 light to 5 blocked); only alerts reported in the last N minutes.
sourceCoordinates, destinationCoordinates, routesTrips for driving directions (coordinates or place names).
maxRoutes, departureTimestamp, arrivalTimestamp, returnRouteCoordinatesRoute options.
searchQueriesPlace search terms (Places search).
{
  "operation": "alertsAndJams",
  "bottomLeft": "40.66615,-74.13732",
  "topRight": "40.77278,-73.76818",
  "maxAlerts": 20,
  "maxJams": 20,
  "alertTypes": ["ACCIDENT", "ROAD_CLOSED"]
}
{
  "operation": "drivingDirections",
  "routes": ["Times Square, New York -> JFK Airport", "32.0853,34.781767 -> 32.794046,34.989571"],
  "maxRoutes": 3
}

📤 Output

Every row has a recordType: alert, jam, route or place. The dataset has a table view for each.

FieldDescription
alertType, alertSubtype, alertDescriptionWhat was reported, e.g. HAZARD / HAZARD_ON_ROAD_LANE_CLOSED / "Road Work Ahead - move LEFT".
street, city, country, latitude, longitudeWhere it is.
publishedAt, reportedBy, provider, numThumbsUp, commentsWhen and by whom it was reported, and how many drivers confirmed it.
jamLevel, speedKmh, lengthMeters, drivingTimeSeconds, endLocation, lineCoordinatesJam severity (0-5), current speed, length, time to drive through, where it ends and its road geometry.
blockAlertId, blockAlertType, blockAlertDescriptionThe incident that causes a jam, when Waze links one.
routeName, durationMinutes, distanceKm, isFastest, isToll, tollPrice, tollPriceCurrency, isHov, trafficLabelRoute summary.
routeAlerts, routeJams, routeCoordinatesIncidents and jams on the route, and the route polyline (optional).
placeName, address, placeIdPlaces search results.
wazeUrl, area, region, scrapedAtA Waze link, the map area the row came from, Waze's region (na, row, il) and the scrape time.

Example rows from a test run (trimmed):

[
  {
    "recordType": "alert",
    "alertId": "alert-227743556/55ecacbf-41cd-42be-bd6a-a12d10c1a02c",
    "alertType": "HAZARD",
    "alertSubtype": "HAZARD_ON_ROAD_LANE_CLOSED",
    "alertDescription": "Road Work Ahead - move LEFT",
    "street": "Avenue C",
    "city": "Bayonne",
    "country": "US",
    "latitude": 40.683189,
    "longitude": -74.105176,
    "publishedAt": "2026-10-21T14:02:08Z",
    "reportedBy": "HAAS Alert",
    "numThumbsUp": 23,
    "wazeUrl": "https://www.waze.com/ul?ll=40.683189%2C-74.105176&navigate=yes",
    "region": "na"
  },
  {
    "recordType": "jam",
    "jamId": "1734569656",
    "jamLevel": 3,
    "street": "Broadway",
    "city": "Manhattan, NY",
    "country": "US",
    "endLocation": "W 55th St",
    "speedKmh": 4.56,
    "lengthMeters": 173,
    "drivingTimeSeconds": 137,
    "updatedAt": "2026-10-21T17:14:55Z",
    "lineCoordinates": [{"lat": 40.766301, "lng": -73.981889}, {"lat": 40.765477, "lng": -73.982028}]
  },
  {
    "recordType": "route",
    "routeIndex": 0,
    "routeName": "Grand Central Pkwy E Queens (12.03)",
    "durationMinutes": 58.1,
    "distanceKm": 27.22,
    "isFastest": true,
    "isToll": true,
    "tollPrice": 12.03,
    "tollPriceCurrency": "USD",
    "tollPassName": "E-ZPass - NY",
    "tollPriceWithPass": 7.46,
    "trafficLabel": "usual traffic",
    "routeAlerts": [{"alertId": "228249141", "type": "POLICE", "subtype": "NO_SUBTYPE", "latitude": 40.741408, "longitude": -73.953829}],
    "source": "Times Square, New York",
    "destination": "JFK Airport",
    "destinationName": "John F. Kennedy International Airport (JFK), Queens"
  }
]

💰 Pricing

Pay per event, plus the run's platform usage (compute and the Scrapely browser session that opens the Waze live map, typically about $0.01 to $0.02 per run):

  • Map area query: $0.015 — one area's alerts and jams, up to 200 rows per charge. Areas with nothing to report are free.
  • Driving route: $0.01 per route returned.
  • Place search: $0.012 per search term and area that finds places.

Example: the default input (one New York area, 20 alerts + 20 jams) costs $0.015 plus about $0.015 of platform usage, so roughly $0.03 per area. 1,000 alerts and 1,000 jams from one large area are 10 charges, about $0.15 plus usage.

❓ FAQ

Is it legal to scrape Waze? The actor reads the same public live map data that anyone sees on waze.com without logging in. It does not collect personal data beyond what Waze shows publicly (e.g. the name of a partner feed that reported an alert). Check that your use complies with Waze's terms and your local laws.

Do I need a Waze account or a proxy? No. The actor handles access to the live map itself. The default datacenter proxy works well.

How many results can I get? Up to 10,000 alerts and 10,000 jams per area. Waze itself only knows what drivers and partner feeds report right now, so a quiet area has few rows; the run ends with a message saying how many it found.

Why is a field empty? Waze leaves many fields blank: subtypes, descriptions and streets are often missing on driver reports, and blockAlert* is only set when Waze links a jam to a cause. Country is added for every row; city is added to alerts from nearby jams or a reverse lookup (turn off Add city to alerts for the fastest runs).

How fast is it? A typical area takes about 20 to 30 seconds, most of it opening the Waze live map once. Extra areas and tiles in the same run add a few seconds each.

Can I schedule it or use the API? Yes. Schedule it every few minutes to monitor an area, or call it from the API, webhooks and integrations like any other actor.

⚠️ Limits

  • Live data only: Waze shows what is reported now; there is no history of past incidents.
  • Driver usernames and the live "wazers" layer are not collected.
  • Places search returns the same suggestions as the Waze search box (about 10 per term and area), not a full list of every business in the area. Waze's old venue-by-category listing is not available on the live map.
  • Route planning follows Waze's limits: very long trips (for example across an ocean) return no route.
  • Each run opens one Scrapely browser session to access the live map; if Waze refuses access for a while, the run retries with fresh sessions and reports an error if it still cannot get in.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.