Waze Traffic Alerts Scraper avatar

Waze Traffic Alerts Scraper

Pricing

from $3.10 / 1,000 alert chargeds

Go to Apify Store
Waze Traffic Alerts Scraper

Waze Traffic Alerts Scraper

Get crowd-sourced road closures, hazards, and events from Waze. Talks directly to Waze's own protocol, no login needed. Split from the mature, published waze-all-in-one-api for a focused, single-purpose workflow.

Pricing

from $3.10 / 1,000 alert chargeds

Rating

0.0

(0)

Developer

Romy

Romy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What does Waze Traffic Alerts Scraper do?

Waze Traffic Alerts Scraper takes one or more geographic bounding boxes and pushes every real-time crowd-sourced road event (closures, contraflow lanes, hazards) found within them — one dataset row per event.

It talks directly to the same internal protocol the official Waze Android app uses (rt.waze.com), reverse-engineered by live MITM capture against a real device and cross-referenced against the app's own decompiled protobuf schema (see proto/waze_rt.proto in the source repo — field names and numbers are the real app's, not guesses). No Waze account, no API key, no scraping setup. This is the /alerts slice of Waze All-in-One API, split out as its own focused Actor.

Why use Waze Traffic Alerts Scraper?

  • Real crowd-sourced road events — closures, contraflow lanes, and hazards with geometry, the same data rendered as dashed lines and pins in the Waze app
  • Batch multiple areas in one run — pass many bounding boxes and get every event across all of them in a single dataset
  • No account needed — every request authenticates itself with a fresh anonymous session
  • Confirmed working worldwide — the underlying protocol was tested live in Indonesia, the UK, the US, and Israel during development, not just one market
  • Use cases: traffic monitoring dashboards, road-closure alerting, urban mobility research, logistics/routing risk analysis

Input

FieldTypeDescription
boundingBoxesarrayRequired. One or more { north, south, east, west } bounding boxes (decimal degrees).

Example:

{
"boundingBoxes": [{ "north": -6.15, "south": -6.18, "east": 106.83, "west": 106.82 }]
}

Output

One dataset row per road event, tagged with the bounding box it came from:

{
"boundingBox": { "north": -6.15, "south": -6.18, "east": 106.83, "west": 106.82 },
"id": "750503858",
"version": 0,
"typeCode": 5,
"street": "Contra Flow Hayam Wuruk",
"city": "Jakarta Pusat",
"crossStreet": "Gajah Mada",
"points": [
{ "lon": 106.820862, "lat": -6.167265 },
{ "lon": 106.819936, "lat": -6.163168 }
],
"roadSegmentIds": ["516284383", "516266383"],
"raw": [
"AddRoadInfo",
"750503858",
"0",
"5",
"0",
"Contra Flow Hayam Wuruk",
"Jakarta Pusat",
"",
"Gajah Mada",
"F",
"F",
"0",
"0",
"2",
"0",
"-1",
"T",
"-1",
"-1",
"12",
"-1",
"F",
"0",
"0",
"465",
"",
"1164106498",
"1"
]
}

Data table

FieldDescription
boundingBoxThe bounding box this event was found in (echoes back the input)
idStable event id, unchanged across live updates
versionUpdate/sequence number for this event
typeCodeNumeric event type (not yet mapped to a name — see Known limitations)
street / city / crossStreetLocation context, as reported
pointsEvent geometry (polyline), decoded lon/lat
roadSegmentIdsUnderlying Waze road-graph segment ids the event is linked to
rawThe unparsed AddRoadInfo CSV fields, for the handful of positions not yet mapped to a named field above

How it connects to the parent

This Actor is a narrow, batch-run spin-off of Waze All-in-One API, a Standby REST API exposing eight Waze endpoints. It reuses that Actor's exact session-handshake and CSV-parsing logic for the /alerts endpoint only, restructured as a normal input-in/dataset-out batch Actor instead of an always-on HTTP API. If you need routing, search, nearby POI, reverse geocoding, walking distance, batch ETA, or SOS providers too, use the parent Actor instead.

Known limitations

  • typeCode, and a handful of other numeric fields, aren't mapped to human-readable names. AddRoadInfo is parsed entirely natively (no Java-side protobuf class to cross-reference, unlike the parent's other endpoints) — confirmed by decompiling the actual native parser function. That decompile did surface two verified wire-format facts not yet correlated to an exact field position: one numeric field is a float scaled ×10 (not a plain int), and one field supports a |-delimited sub-list of up to 20 integers — never populated in any sample captured so far. The unmapped positions are returned under raw rather than guessed at.
  • This is an unofficial, reverse-engineered integration, not affiliated with or endorsed by Waze / Google. Behavior may change if Waze changes its protocol.

Pricing

Pay per event: $0.004 per alert — charged once for each road event returned within a bounding box (Free plan price; lower on paid Apify plans). See the Actor's Pricing tab for current tiered rates.

Found a bug or have a feature request? Use the Issues tab on this Actor's page.