Your team needs live navigation data in production this week—traffic jams, incidents, and route options you can trust. By the end of this guide, you’ll be able to authenticate, call Waze Data API’s navigation endpoints from Zyla API Hub, and parse the fields you actually need to ship a map, ETA, or routing feature.
What you can build with Waze Data API
Waze Data API provides real-time alerts and jams in a geographic area and driving directions between two coordinates, including alerts along each route. This is useful for:
- In-app traffic overlays (accidents, road closures, hazards, police, jams).
- Routing/ETA features that surface alerts along the path.
- Dispatch and logistics dashboards that watch a live rectangle around a city or corridor.
The API lives on Zyla API Hub, a marketplace with more than 10,000 public APIs behind one subscription model and one key.
Getting started on Zyla API Hub
Open the Waze Data API page and subscribe to get your key. The first API on Zyla includes a 7-day trial or 50 requests; billing is subscription + quota (not pay-per-call). There is no Free Plan. Check the API page for current access options and pricing.
- Go to: Start 7-day trial on Waze Data API
- Click Subscribe or Start Free Trial (when available).
- Copy your API key.
All requests use the header Authorization: Bearer YOUR_API_KEY. The base host is provided by Zyla; use the exact Hub URLs shown below.
Endpoints you’ll use for Navigation
1) Alerts and Jams
Method: GET
URL: https://zylalabs.com/api/4814/waze-data-api/6003/alerts-and-jams
Description: Get real-time alerts and jams within a bounding rectangle (bottom-left and top-right latitude,longitude).
Parameters:
- bottom_left (string, required): 51.2800,-0.5100
- top_right (string, required): 51.5000,-0.0800
- max_alerts (string, optional): 100
- max_jams (string, optional): 0
2) Driving Directions
Method: GET
URL: https://zylalabs.com/api/4814/waze-data-api/6004/driving-directions
Description: Get routes/driving directions between two coordinates. The response includes route metadata and alerts encountered along possible routes. Supports setting the wanted arrival time.
Parameters:
- source_coordinates (string, required): 32.0852999,34.78176759999999
- destination_coordinates (string, required): 32.7940463,34.989571
Make your first call: Alerts and Jams
Copy-paste the official curl below. Replace YOUR_API_KEY with your key. Keep the URL and parameters exactly as shown.
curl -s -X GET "https://zylalabs.com/api/4814/waze-data-api/6003/alerts-and-jams?bottom_left=51.2800%2C-0.5100&top_right=51.5000%2C-0.0800&max_alerts=100&max_jams=0" \
-H "Authorization: Bearer YOUR_API_KEY"
Official sample response:
{
"status": "OK",
"request_id": "86b7f40f-b386-4aee-af95-274974d93184",
"parameters": {
"bottom_left": [
"51.2800",
"-0.5100"
],
"top_right": [
"51.5000",
"-0.0800"
],
"max_alerts": 100,
"max_jams": 0
},
"data": {
"alerts": [
{
"alert_id": "alert-1851823848/7b5e52cb-9549-4955-a117-ce19dd01fe9b",
"type": "HAZARD",
"subtype": "HAZARD_ON_ROAD_CONSTRUCTION",
"reported_by": "Causeway one.network",
"description": ".",
"image": null,
"publish_datetime_utc": "2026-07-22T08:30:00.000Z",
"country": "GB",
"city": "Mole Valley",
"street": null,
"latitude": 51.281508,
"longitude": -0.369863,
"num_thumbs_up": 7,
"alert_reliability": 0,
"alert_confidence": 0,
"near_by": null,
"provider": "Elgin (Road works)",
"provider_id": "151505923",
"comments": [],
"num_comments": 0
},
{
"alert_id": "alert-1191763163/60f6957d-0668-49d6-b43f-710177584187",
"type": "HAZARD",
"subtype": "HAZARD_ON_ROAD_CONSTRUCTION",
"reported_by": "Causeway one.network",
"description": ".",
"image": null,
"publish_datetime_utc": "2026-05-15T13:00:00.000Z",
"country": "GB",
"city": "Mole Valley",
"street": "Durleston Park Dr",
"latitude": 51.280691,
"longitude": -0.365612,
"num_thumbs_up": 39,
"alert_reliability": 0,
"alert_confidence": 0,
"near_by": null,
"provider": "Elgin (Road works)",
"provider_id": "149944301",
"comments": [],
"num_comments": 0
},
{
"alert_id": "alert-1618880859/60722796-8030-486e-913c-4e683837b754",
"type": "ROAD_CLOSED",
"subtype": null,
"reported_by": "ClosureMonitor",
"description": "Closed until Jul 31 for roadworks. Ref #151583431",
"image": null,
"publish_…
Key fields you’ll typically use:
- data.alerts[].type and .subtype: category and subtype (e.g., HAZARD_ON_ROAD_CONSTRUCTION, ROAD_CLOSED).
- latitude, longitude: point to place on your map.
- publish_datetime_utc: UTC timestamp for recency checks and TTL decisions.
- city, street, country: optional labels for UI.
- num_thumbs_up: quick popularity/validation signal.
Python example: fetch and display hazards in a rectangle
This sample calls the same Alerts and Jams endpoint, filters for ROAD_CLOSED and HAZARD, and prints a compact line you can log or ship to a map overlay.
import os
import requests
API_KEY = os.getenv("ZYLALABS_API_KEY", "YOUR_API_KEY")
url = "https://zylalabs.com/api/4814/waze-data-api/6003/alerts-and-jams"
params = {
"bottom_left": "51.2800,-0.5100",
"top_right": "51.5000,-0.0800",
"max_alerts": "100",
"max_jams": "0",
}
headers = {
"Authorization": f"Bearer {API_KEY}",
}
resp = requests.get(url, headers=headers, params=params, timeout=20)
resp.raise_for_status()
payload = resp.json()
alerts = (payload.get("data") or {}).get("alerts") or []
for a in alerts:
a_type = a.get("type")
if a_type in ("ROAD_CLOSED", "HAZARD"):
print(
f"{a.get('publish_datetime_utc')} | {a_type} | "
f"{a.get('subtype')} | {a.get('city')} | "
f"{a.get('latitude')},{a.get('longitude')}"
)
Notes:
- Authorization: Bearer YOUR_API_KEY is required.
- Coordinates are decimal degrees. The rectangle is defined by bottom-left and top-right pairs.
- Timestamps returned in publish_datetime_utc are UTC. Store and compare in UTC to avoid TZ drift.
Driving directions with alerts along the route
Use this endpoint to get candidate routes and the alerts on them. You can choose fastest, flag tolls, and highlight jams along the path in your UI. Parameters are source_coordinates and destination_coordinates, both as latitude,longitude strings.
Method: GET
URL: https://zylalabs.com/api/4814/waze-data-api/6004/driving-directions
Parameters:
- source_coordinates (string, required): 32.0852999,34.78176759999999
- destination_coordinates (string, required): 32.7940463,34.989571
Example fields you may consume from the response include:
- route_name: label for the route.
- length_meters: route length in meters.
- duration_seconds: route duration in seconds.
- is_toll, is_hov, is_fastest: flags for UI selection and heuristics.
- alerts[]: per-route alerts with type, subtype, latitude, longitude.
For a live call and example response, see the endpoint on the API page. Use the same Authorization header noted above.
Real-world navigation use cases
- Map overlays: poll the Alerts and Jams rectangle around your service area every N seconds, dedupe by alert_id, expire by publish_datetime_utc.
- ETAs with context: get Driving Directions, choose the fastest route (is_fastest), and surface the top 3 alerts by proximity to the driver.
- Geofenced notifications: when a driver enters a bounding box, trigger a fetch and notify if there’s any ROAD_CLOSED ahead.
- Ops dashboards: set max_jams=0 if you only want incident markers to reduce payload size.
Implementation notes that save time
- Units: length_meters is meters; duration_seconds is seconds; timestamps are UTC.
- Bounding boxes: large rectangles return more alerts; tune max_alerts to keep payloads small for mobile.
- Caching: short-term cache (30–60s) is usually enough for a fluid map without thrashing your quota.
- Error handling: check status and request_id for diagnostics; log both for tracing.
- Quotas: usage is subscription + quota. The first API on Zyla includes a 7-day trial or 50 requests—monitor consumption in your Zyla dashboard. For current terms, see the API page.
Call Waze Data API from an AI agent via MCP
You can wire this API into MCP-compatible developer tools and agents. Point your client at the MCP endpoint and pass your Zyla key as described in those clients’ docs. Reference MCP basics here:
In your agent’s MCP tool definition, call the same Hub URLs shown above and include the Authorization: Bearer YOUR_API_KEY header. Keep query parameter names identical to the endpoint specs.
Production checklist
- Retry policy: transient 5xx with jittered backoff; avoid retry storms on large rectangles.
- Idempotence: use alert_id to dedupe events. Store last-seen timestamps per rectangle.
- Privacy: do not log PII; the API returns incident metadata suitable for operational use.
- Observability: attach request_id to logs and dashboards for per-call traceability.
- Rollout: validate route durations against your historical ETAs before replacing your primary estimator.
Where to explore and subscribe
Browse the catalogue on Zyla API Hub to discover more navigation and mapping integrations behind one key. When you’re ready to ship with Waze Data API specifically, start your trial below and plug the endpoints into your service:
Start 7-day trial on Waze Data API
FAQ
What authentication does Waze Data API use on Zyla?
Send Authorization: Bearer YOUR_API_KEY on every request to the Hub URLs shown above.
How do I limit payload size for map overlays?
Use max_alerts and max_jams on Alerts and Jams. For incident-only maps, set max_jams=0.
What are the coordinate formats?
All coordinates are decimal degrees, passed as strings like "lat,lon". Bounding rectangles use bottom_left and top_right pairs.
Which units are used in driving directions?
length_meters is in meters and duration_seconds is in seconds.
Is there a free plan?
There is no Free Plan. The first API on Zyla includes a 7-day trial or 50 requests; see the API page for current access options and pricing.