Waze Route & ETA Scraper avatar

Waze Route & ETA Scraper

Pricing

from $4.68 / 1,000 route request processeds

Go to Apify Store
Waze Route & ETA Scraper

Waze Route & ETA Scraper

Run live route calculation, walking distance, and batch ETA queries against Waze's real-time routing engine, for an array of route request objects in a single run. No account or API key needed — each request authenticates itself anonymously. Derived from romy/waze-all-in-one-api.

Pricing

from $4.68 / 1,000 route request processeds

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 Route & ETA Scraper do?

Waze Route & ETA Scraper takes an array of route request objects and pushes live route calculation, walking distance, or batch ETA results — one dataset row per request.

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, copied verbatim from Waze All-in-One API, this Actor's parent). No Waze account, no API key — each request mints its own short-lived anonymous session server-side. This is the route/ETA slice of that parent Actor, split out as its own focused, batch-run scraper.

Why use Waze Route & ETA Scraper?

  • Three operations, one input array — route calculation, walking distance, and batch ETA, mixed freely in a single run
  • Live traffic, not a static distance matrix — the same real-time routing engine behind the app's own navigation
  • Batch ETA in one call per request — eta-batch fans one origin out to many destinations server-side, useful for dispatch/delivery routing without one route call per stop
  • No account needed — every request authenticates itself anonymously
  • Use cases: logistics/routing risk analysis, delivery dispatch ETA, travel-time estimation for many origin/destination pairs

How it connects to the parent

This Actor is a narrow spin-off of Waze All-in-One API, which exposes every reverse-engineered Waze endpoint as an always-on Standby REST API. This Actor wraps only the parent's /route, /walking-distance, and /eta-batch endpoints as a normal batch Actor: give it an input array, get a dataset of results back.

Input

FieldTypeDescription
requestsarrayRequired. One or more route request objects (see below).

Each item in requests:

FieldTypeApplies toDescription
operationstringall"route", "walking-distance", or "eta-batch"
fromLat / fromLonnumberallOrigin coordinates
toLat / toLonnumberroute, walking-distanceDestination coordinates
destinationsarray of {lat, lon}eta-batchOne or more destinations
vehicleTypestringroute, eta-batchConfirmed live values include "PRIVATE" (default), "MOTORCYCLE", "TAXI"
maxRoutesintegerrouteNumber of route alternatives to return, default 3

Example:

{
"requests": [
{ "operation": "route", "fromLat": -6.1754, "fromLon": 106.827, "toLat": -6.1274, "toLon": 106.6577 },
{ "operation": "walking-distance", "fromLat": -6.1754, "fromLon": 106.827, "toLat": -6.178, "toLon": 106.83 },
{
"operation": "eta-batch",
"fromLat": -6.1754,
"fromLon": 106.827,
"destinations": [
{ "lat": -6.1274, "lon": 106.6577 },
{ "lat": -6.1954, "lon": 106.8206 }
]
}
]
}

Output

One dataset row per request item, { request, result }:

{
"request": { "operation": "route", "fromLat": -6.1754, "fromLon": 106.827, "toLat": -6.1274, "toLon": 106.6577 },
"result": [
{ "totalLength": 31365, "totalSeconds": 1986 },
{ "totalLength": 27001, "totalSeconds": 2909 }
]
}

walking-distance result is a single number (meters) or null. eta-batch result is an array of { lat, lon, seconds }, echoing each destination with its live ETA in seconds (seconds is null if that leg failed).

Known limitations

  • route results don't include route line geometry. Waze encodes it with Google's S2 cell geometry format, which isn't decoded by this Actor — distance, ETA, traffic comment, and warnings are all real-time and accurate, only the polyline itself is omitted. (Inherited from the parent.)
  • A malformed request item (missing required fields for its operation) is skipped with a logged error rather than failing the whole run.
  • 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.006 per route — charged once for each route/walking-distance/eta-batch request item successfully processed (Free plan price; lower on paid Apify plans). See the Actor's Pricing tab for current tiered rates.