Waze API — Real-Time Traffic, Alerts & Road Incidents
Pricing
from $5.60 / 1,000 alerts & jams queries
Waze API — Real-Time Traffic, Alerts & Road Incidents
Pull real-time Waze traffic data via API: accidents, hazards, police reports, road closures and live jams in any map area, plus driving directions with on-route alerts and venue search. Clean geo-coded JSON rows for logistics, routing, fleet and mobility analytics. No Waze account needed.
Pricing
from $5.60 / 1,000 alerts & jams queries
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Waze API — Real-Time Traffic, Alerts & Road Incidents 🚦
🎉 Real-time road incidents straight from Waze's crowd — accidents, hazards, police, road closures & live jams in any map area, plus driving directions with on-route alerts.
Built for logistics, fleet routing, mobility analytics, insurance risk and navigation teams who need live traffic data no Google Maps clone exposes.
📋 Overview
Tap the world's largest crowd-sourced traffic network through a clean Waze API — pull live road incidents, congestion, driving routes and venues into structured, geo-coded datasets, no Waze account or API key of your own required.
Why teams choose this over a generic maps scraper:
- ✅ Crowd-sourced incident data: accidents, hazards, police reports, road closures and live jams — the exact real-time signal Google Maps/Places scrapers don't carry.
- ⚡ 3 operations in one actor: Alerts & Jams, Driving Directions, and Venues — one operation per run, one clean dataset out.
- 🎯 Clean geo on every row: latitude/longitude on every incident, full jam polylines preserved, GeoJSON venue points normalized — ready to drop on a map.
- 💰 Predictable per-query pricing: bounding-box operations are charged once per map area regardless of how busy it is — no sticker shock on dense cities.
- 💎 Market-exclusive driving directions: Waze route alternatives with on-route alerts, toll pricing, HOV flags and arrival-time targeting — data no standard directions API returns.
- ✨ No Waze account needed: just define a map area or route and run.
✨ Features
- 🚦 Alerts & Jams by map area — every accident, hazard, police report, road closure and traffic jam inside a bounding box, one row per incident.
- 🧭 Driving Directions with incidents — candidate Waze routes between two points, each carrying its on-route alerts, jams, toll price, HOV flag and arrival-time support.
- 📍 Venue search — points of interest inside any map area, with normalized coordinates and categories.
- 🏷️ Type & subtype filters — narrow Alerts & Jams to just
POLICE,ACCIDENT,HAZARD,ROAD_CLOSEDand more. - 🐌 Congestion metrics — jam level (0–5), speed (km/h), length (m) and delay on every jam row.
- 🗺️ Polyline preservation — full jam and route geometry kept alongside a clean representative point.
- 📊 One flat dataset per run — filter by
_operationandrecordTypeto split modes; export to JSON, CSV or Excel.
🎬 Quick Start
Pick an operation, define a map area (or a route), and run. Each run produces one clean dataset. Below: pull live alerts and jams for a New York City bounding box.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~waze-traffic-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"operation":"alertsAndJams","bottomLeft":"40.66615,-74.13732","topRight":"40.77278,-73.76818"}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose your operation
Pick Alerts & Jams for incidents in an area, Driving Directions for route-level traffic, or Venues for points of interest.
Step 2: Define the area or route
For area operations, set the bottom-left and top-right corners (latitude,longitude). For directions, set source and destination coordinates.
Step 3: Run and export
Start the run and collect your geo-coded rows from the dataset — export as JSON, CSV or Excel.
That's it! In under a minute, you'll have:
- Live road incidents with coordinates, street, city and reliability score
- Traffic jams with level, speed, length and full polyline
- Clean rows ready for mapping, routing or analytics dashboards
📥 Input Configuration
Pick one operation per run. Fields are used only by the operations noted.
| Field | Type | Required | Used by | Description |
|---|---|---|---|---|
operation | enum | Yes | all | alertsAndJams · drivingDirections · venues |
bottomLeft | string | Yes* | Alerts & Jams, Venues | Bottom-left map corner, latitude,longitude |
topRight | string | Yes* | Alerts & Jams, Venues | Top-right map corner, latitude,longitude |
maxAlerts | integer | No | Alerts & Jams | Max alerts to fetch (default 20) |
maxJams | integer | No | Alerts & Jams | Max jams to fetch (default 20) |
alertTypes | string | No | Alerts & Jams | Comma list: ACCIDENT,HAZARD,POLICE,ROAD_CLOSED… |
alertSubtypes | string | No | Alerts & Jams | Comma list of alert subtypes |
sourceCoordinates | string | Yes* | Driving Directions | Route start, latitude,longitude |
destinationCoordinates | string | Yes* | Driving Directions | Route end, latitude,longitude |
returnRouteCoordinates | boolean | No | Driving Directions | Include the full route polyline |
arrivalTimestamp | integer | No | Driving Directions | Desired arrival time (Unix seconds) |
venueCategories | string | No | Venues | Comma list of venue categories |
zoomLevel | string | No | Venues | Waze zoom level 1–4 |
*Required for the operations listed in the "Used by" column.
Example — Alerts & Jams:
{"operation": "alertsAndJams","bottomLeft": "40.66615,-74.13732","topRight": "40.77278,-73.76818","maxAlerts": 20,"maxJams": 20,"alertTypes": "ACCIDENT,HAZARD,POLICE,ROAD_CLOSED"}
Example — Driving Directions:
{"operation": "drivingDirections","sourceCoordinates": "32.0853,34.781767","destinationCoordinates": "32.794046,34.989571","returnRouteCoordinates": true}
📤 Output
Results are saved to the Apify dataset, one flat row per item, tagged by recordType (alert, jam, route, venue). Each row spreads the raw upstream fields alongside clean camelCase aliases.
| Field | Type | Description |
|---|---|---|
recordType | string | alert / jam / route / venue |
latitude / longitude | number | Clean point coordinates |
alertType | string | ACCIDENT, HAZARD, POLICE, ROAD_CLOSED, … |
alertDescription | string | Human-readable incident description |
street / city / country | string | Location |
alertReliability | integer | Crowd reliability score |
jamLevel | integer | Congestion level 0–5 |
speedKmh | number | Average jam speed |
lengthMeters | integer | Jam / route length |
lineCoordinates | array | Full jam polyline |
routeName | string | Driving route name |
durationSeconds | integer | Route travel time |
isToll / isHov | boolean | Route flags |
tollPrice | number | Toll cost (toll routes) |
routeAlerts | array | On-route incidents |
venueName | string | Venue / POI name |
Example row (alert):
{"recordType": "alert","alertType": "HAZARD","alertSubtype": "HAZARD_ON_ROAD_CONSTRUCTION","alertDescription": "Construction Pulaski Skyway NB ramp lane closed","city": "Kearny","latitude": 40.734439,"longitude": -74.104087,"alertReliability": 0,"publishDatetimeUtc": "2026-06-05T13:00:29.000Z","_operation": "alertsAndJams","status": "success"}
💼 Use Cases & Examples
1. Logistics & Fleet Routing
Dispatchers rerouting delivery fleets around live disruptions.
Input: Bounding boxes along delivery corridors (Alerts & Jams) + source/destination pairs (Driving Directions) Output: Live accidents, closures and jams plus route alternatives with on-route alerts Use: Detect a closure on a planned route and switch drivers to a clear alternative in real time.
2. Mobility & Traffic Analytics
Urban-mobility researchers building congestion datasets.
Input: A city-wide grid of bounding boxes, run on a schedule Output: Jam level, speed, length and delay per area Use: Aggregate congestion over time into heatmaps and mobility reports.
3. Insurance & Risk Monitoring
Underwriters scoring accident and hazard density.
Input: Defined zones, filtered to ACCIDENT,HAZARD
Output: Incident counts and locations per area
Use: Feed claims triage and underwriting signals with road-risk data.
4. News & Incident Monitoring
Local newsrooms and public-safety teams surfacing road events.
Input: Bounding boxes over a coverage area Output: Road closures, police activity and major hazards with street and coordinates Use: Power live traffic alerts and breaking-incident desks.
5. Navigation-Product Enrichment
Routing and mapping apps adding crowd-sourced intelligence.
Input: Source/destination coordinate pairs Output: Waze route alternatives with on-route alerts, toll/HOV flags and arrival-time estimates Use: Surface incident-aware routes that standard directions APIs can't provide.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/waze-traffic-scraper').call({operation: 'alertsAndJams',bottomLeft: '40.66615,-74.13732',topRight: '40.77278,-73.76818',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/waze-traffic-scraper').call(run_input={'operation': 'drivingDirections','sourceCoordinates': '32.0853,34.781767','destinationCoordinates': '32.794046,34.989571',})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~waze-traffic-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation":"venues","bottomLeft":"48.851,2.334","topRight":"48.853,2.354"}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule (e.g. every 15 min) or webhook
- HTTP Request: Call the actor API with your operation + map area
- Process: Handle the JSON rows (filter by
recordType) - Action: Save to a database, push to a map, or alert on new closures
📊 Performance & Pricing
FREE Tier (Try It Now)
- Full feature access across all four operations, same data quality
- No credit card required
- Perfect for testing a map area or route
PAID Tier (Production Ready)
- Run any volume of map areas and routes
- Pay-per-result: charged only for successful queries (driving routes charged per route)
- Predictable per-query billing on bounding-box operations
💰 Transparent, predictable pricing — a busy city bounding box costs the same as a quiet one.
❓ Frequently Asked Questions
Q: What data does the Alerts & Jams operation return? A: Every real-time alert (accidents, hazards, police reports, road closures) and traffic jam inside your map area, one row per incident with coordinates, street, city and a reliability score.
Q: How is billing calculated? A: Bounding-box operations (Alerts & Jams, Venues) are charged once per successful query regardless of how many incidents are returned. Driving Directions is charged per route returned.
Q: Does the actor support place autocomplete? A: Not at the moment. The autocomplete operation is temporarily disabled while we validate its upstream data availability — it will return in a future release. Use Alerts & Jams, Driving Directions or Venues for production data.
Q: What output formats are available? A: JSON, CSV and Excel — export directly from the Apify dataset.
Q: Do I need a Waze account or API key? A: No. Just define a map area or route and run.
Q: What coordinate format should I use?
A: A latitude,longitude pair, e.g. 40.66615,-74.13732. Bounding boxes use a bottom-left and top-right corner.
Q: Is this legal? A: We help you collect publicly available traffic data. See the legal section below.
🐛 Troubleshooting
No rows returned for a map area
- The area may genuinely have no active incidents — try a larger box or a busier city.
- Verify your
bottomLeftandtopRightare inlatitude,longitudeorder and that bottom-left is south-west of top-right.
"must be a latitude,longitude pair" error
- Check your coordinate strings contain exactly two numbers separated by a comma (no spaces required, e.g.
40.66615,-74.13732).
Data source temporarily unavailable
- The actor retries transient upstream errors automatically. If it persists, wait a moment and re-run.
⚠️ Trademark Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Waze Mobile Ltd. or Google LLC. "Waze" and related marks are trademarks of their respective owners and are used here only to describe the data this tool helps you collect. Use this actor responsibly and in compliance with applicable laws, Waze's and Google's terms of service, and data-protection regulations (including GDPR and CCPA where applicable). You are responsible for how you use the data you extract.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location of individuals. They only extract what has been chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's Issues tab
- Check the SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools