Waze Sos Contacts Scraper
Pricing
from $2.30 / 1,000 sos contact chargeds
Waze Sos Contacts Scraper
Get real local emergency and roadside-assistance contacts 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.
What does Waze SOS Contacts Scraper do?
Waze SOS Contacts Scraper takes a batch of points ({ lat, lon }) and returns real local emergency numbers and roadside-assistance contacts for each one — police/ambulance/fire, AAA-style auto clubs, manufacturer roadside assistance — one dataset row per provider result.
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 SOS-providers slice of Waze All-in-One API, split out as its own focused Actor.
Why use Waze SOS Contacts Scraper?
- Real local emergency and roadside-assistance data — not templated, sourced live per point from Waze's own SOS-providers service
- Batch multiple points in one run — no natural pagination for this data, so this Actor accepts an array of points and pushes one row per result item
- Global — not tied to one country's data
- No account needed — every request mints its own short-lived anonymous session server-side; you never see or manage credentials
- Use cases: travel/safety apps, roadside-assistance directories, insurance/fleet risk tooling, emergency-contact enrichment for logistics and dispatch platforms
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), derived from its GET /sos-providers endpoint. Where the parent serves one HTTP request at a time with no dataset output, this Actor takes a JSON array of points as run input and pushes every provider found to the Apify dataset — suited to batch/offline lookups rather than live request/response integrations. It copies the parent's session/handshake logic (src/waze-client.ts, src/waze-protobuf.ts, proto/waze_rt.proto) verbatim, since Waze's protocol requires an identical 3-step login → register → signin handshake before any data call.
Input
| Field | Type | Description |
|---|---|---|
points | array | Required, non-empty array of { lat: number, lon: number } objects. |
Example:
{"points": [{ "lat": 40.758, "lon": -73.9855 },{ "lat": -6.1754, "lon": 106.827 }]}
Output
One dataset row per SOS provider found, tagged with the originating point. Real response (trimmed, NYC):
{ "point": { "lat": 40.758, "lon": -73.9855 }, "phone": "911", "name": "911" }
{ "point": { "lat": 40.758, "lon": -73.9855 }, "type": 1, "subtype": 3, "phone": "18444110791", "name": "AAA" }
| Field | Description |
|---|---|
point | Echoes back the { lat, lon } this row came from |
name / phone / url | Contact details, as reported |
type / subtype | Numeric category (not yet mapped to a name) |
A point that returns zero providers pushes no rows for that point (logged, not an error).
Known limitations
type/subtypeare numeric Waze categories not yet mapped to human-readable names.- This is an unofficial, reverse-engineered integration, not affiliated with or endorsed by Waze / Google. Behavior may change if Waze changes its protocol.
- For live route calculation, place search, nearby POI, alerts, and other Waze data, see the parent Waze All-in-One API.
Pricing
Pay per event: $0.003 per sos-contact — charged once for each SOS/roadside-assistance provider returned for a point (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.