Necesitas datos de navegación en vivo en los que puedas confiar: incidentes, cierres de carreteras, atascos y rutas prácticas con ETAs. Al final de esta guía, consultarás las alertas y atascos de Waze para un cuadro delimitador, recuperarás direcciones de manejo entre dos coordenadas y enviarás estos resultados a tu aplicación utilizando la API de Datos de Waze en Zyla API Hub.
Lo que puedes construir con la API de Datos de Waze
La API de Datos de Waze expone dos capacidades de navegación fundamentales:
- Alertas y atascos en tiempo real dentro de un rectángulo geográfico (accidentes, bloqueos de carreteras, peligros, atascos de tráfico, policía y más).
- Direcciones de manejo entre dos coordenadas, incluidas alertas a lo largo de cada ruta y banderas como “is_fastest” e indicadores de peaje/HOV.
Los equipos utilizan esto para potenciar aplicaciones para conductores, tableros de despacho, herramientas de operaciones y superposiciones de seguridad. Obtienes una cuenta única, una clave API y un modelo de suscripción + cuota a través de Zyla API Hub, que alberga más de 10,000 APIs públicas. La lista de la API de Datos de Waze ofrece una prueba de 7 días o 50 solicitudes para usuarios de Zyla por primera vez; consulta la página de la API para opciones de acceso y precios actuales.
Comenzando en Zyla API Hub
- Abre la página de la API de Datos de Waze y comienza tu prueba: Comienza prueba de 7 días en la API de Datos de Waze.
- Haz clic en Suscribirse o Comenzar Prueba Gratuita (cuando esté disponible) para obtener tu clave API.
- Envía solicitudes con el encabezado Authorization: Bearer YOUR_API_KEY a las URLs exactas del Hub a continuación.
Si estás explorando otras categorías más tarde, puedes reutilizar la misma clave en todas las APIs de tu plan en Zyla API Hub.
Endpoint: Alertas y Atascos
Obtén alertas y atascos en tiempo real dentro de un cuadro delimitador, especificado por pares de latitud y longitud de esquina inferior izquierda y esquina superior derecha. Útil para superposiciones de mapas, advertencias para conductores o notificaciones geocercadas.
- Método: GET
- URL: https://zylalabs.com/api/4814/waze-data-api/6003/alerts-and-jams
- Parámetros requeridos:
- bottom_left (string): 51.2800,-0.5100
- top_right (string): 51.5000,-0.0800
- Parámetros opcionales:
- max_alerts (string)
- max_jams (string)
cURL
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"
Ejemplo de respuesta oficial
{
"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": "Cerrado hasta el 31 de julio por trabajos en la carretera. Ref #151583431",
"image": null,
"publish_…
Campos clave que realmente utilizarás:
- data.alerts[].type y subtype: categorización de peligro/atasco/cierre para etiquetas de UI y filtrado.
- latitude y longitude: trazar en el mapa o calcular proximidad a rutas/paradas.
- publish_datetime_utc: las marcas de tiempo son UTC ISO-8601; almacena como UTC y convierte en el cliente solo para mostrar.
- city, street, description: completar texto de notificación o tableros de operadores.
- num_thumbs_up: proxy de confianza simple para triage.
Ejemplo en Python: filtrar peligros de construcción y cierres de carreteras
import requests
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 []
construction_or_closed = []
for a in alerts:
a_type = a.get("type")
a_sub = a.get("subtype")
if a_type == "ROAD_CLOSED" or a_sub == "HAZARD_ON_ROAD_CONSTRUCTION":
construction_or_closed.append({
"id": a.get("alert_id"),
"type": a_type,
"subtype": a_sub,
"when_utc": a.get("publish_datetime_utc"),
"lat": a.get("latitude"),
"lon": a.get("longitude"),
"street": a.get("street"),
"city": a.get("city"),
"desc": a.get("description"),
})
print(f"Total de alertas: {len(alerts)} (construcción/cerradas: {len(construction_or_closed)})")
for row in construction_or_closed[:5]:
print(row)
Notas:
- Las coordenadas se pasan como cadenas separadas por comas. La coma codificada en la URL en el ejemplo de cURL es manejada automáticamente por la biblioteca de requests.
- Unidades: coordenadas en grados; marcas de tiempo en UTC; no se documenta paginación para este endpoint; utiliza el cuadro delimitador y max_alerts/max_jams opcionales para control de volumen.
- Invalidación de caché: estas alertas son en tiempo real por naturaleza; si almacenas en una capa de servidor, mantén los TTL cortos para categorías de seguridad críticas.
Endpoint: Direcciones de Manejo
Recupera opciones de ruta entre dos coordenadas y las alertas en cada ruta. Esto es ideal para mostrar alternativas, calcular ETAs y proporcionar vistas previas de peligros antes del viaje. La API admite establecer la hora de llegada deseada, pero los parámetros para eso no se detallan aquí; consulta la página de la API para las últimas opciones.
- Método: GET
- URL: https://zylalabs.com/api/4814/waze-data-api/6004/driving-directions
- Parámetros requeridos:
- source_coordinates (string): 32.0852999,34.78176759999999
- destination_coordinates (string): 32.7940463,34.989571
cURL
Qué esperar en la respuesta
La respuesta incluye una o más rutas con atributos como:
- route_name: etiqueta adecuada para UI.
- length_meters y duration_seconds: usar para mostrar distancia/ETA y ordenar.
- is_fastest, is_toll, is_hov: lógica de selección de ruta.
- alerts: array de marcadores de alerta a lo largo de la ruta (tipo, subtipo, coordenadas).
Los campos de ejemplo aparecen como:
Consejos prácticos:
- duration_seconds está en segundos; convierte a minutos para la visualización del usuario y mantén los segundos crudos para el cálculo de ETA.
- length_meters está en metros; para millas o kilómetros, convierte del lado del cliente para evitar problemas de redondeo.
- Si necesitas la geometría de la ruta, verifica si hay un campo como route_coordinates; en el ejemplo anterior está presente pero vacío; consulta la página de la API para el comportamiento y las banderas actuales.
Casos de uso de navegación de alta señal que puedes implementar esta semana
- Alertas geocercadas para conductores: Consulta Alertas y Atascos para tu área de servicio cada N segundos/minutos y envía notificaciones para tipos ROAD_CLOSED o HAZARD_ON_ROAD_CONSTRUCTION dentro de X metros de viajes activos.
- Superposiciones de tableros de despacho: Dibuja todos los marcadores data.alerts dentro de un cuadro delimitador regional; colorea por tipo (por ejemplo, rojo para ROAD_CLOSED, ámbar para HAZARD).
- Verificación de ruta antes de la asignación: Llama a Direcciones de Manejo para recogidas/entregas candidatas; rechaza rutas no más rápidas con is_toll=true a menos que el trabajo permita peajes.
- Mensajería consciente del ETA para clientes: Usa duration_seconds para establecer expectativas y muestra las dos mejores alternativas cuando is_fastest es marginal.
- Monitoreo de operaciones: Rastrea picos en peligros de construcción a través de num_thumbs_up y filtrado por subtipo para priorizar comunicaciones a equipos de campo.
Detalles de implementación que ahorran tiempo
- Orden de coordenadas: Todos los parámetros mostrados utilizan latitud,longitud en ese orden, como cadenas separadas por comas.
- Cuadros delimitadores: Usa un pequeño rectángulo alrededor de un conductor para sondeo en el dispositivo, o cuadros más grandes por región para agregación del lado del servidor.
- Marcas de tiempo: publish_datetime_utc es UTC; almacena como UTC en todo tu backend y localiza en el cliente solo al renderizar.
- Manejo de errores: Verifica status y request_id para observabilidad; registra request_id para correlacionar con tu monitoreo.
- Rendimiento: El mercado utiliza un modelo de suscripción + cuota, no pago por llamada. Para usuarios de Zyla por primera vez, la primera API ofrece una prueba de 7 días o 50 solicitudes. No hay Plan Gratuito. Para cuotas y límites actuales, consulta la página de la API.
Llama a la API desde agentes de IA a través de MCP
Si utilizas clientes compatibles con MCP (Claude Code, Cursor, Windsurf, etc.), dirígelos al endpoint MCP de Zyla y proporciona tu clave en la URL:
Una vez configurado, tu agente puede llamar a las mismas URLs del Hub de la API de Datos de Waze con el encabezado Authorization: Bearer YOUR_API_KEY. Esto es útil para generar automáticamente código de integración, redactar funciones de fetch o realizar llamadas de prueba rápidas durante el desarrollo.
Flujo de ejemplo de extremo a extremo
- Al crear un viaje, llama a Direcciones de Manejo con source_coordinates y destination_coordinates. Selecciona la ruta donde is_fastest es verdadero; almacena duration_seconds para ETA.
- Durante el viaje, consulta Alertas y Atascos para un pequeño cuadro delimitador alrededor del conductor. Si recibes type=ROAD_CLOSED dentro de 300 metros adelante, vuelve a solicitar Direcciones de Manejo y propone un desvío.
- En tu tablero, visualiza las alertas actuales para todas las regiones activas utilizando el mismo endpoint de Alertas y Atascos, filtradas por subtipo y publish_datetime_utc dentro de tu umbral de recencia.
Lista de verificación de solución de problemas
- Respuestas 401/403: verifica Authorization: Bearer YOUR_API_KEY y que tu suscripción esté activa.
- Array de alertas vacío: confirma que tu cuadro delimitador realmente interseca redes viales y que max_alerts/max_jams no son demasiado restrictivos.
- Mapas del lado del cliente lentos: reduce la densidad de símbolos filtrando a un subconjunto de tipos, o agrupa marcadores a niveles de zoom más altos.
- ETA parece obsoleto: vuelve a consultar Direcciones de Manejo cuando Alertas y Atascos muestren un JAM o ROAD_CLOSED cercano a tu ruta.
FAQ
¿Con qué frecuencia debo consultar Alertas y Atascos?
Depende de tu caso de uso y cuota. Para superposiciones críticas de seguridad, mantén los intervalos cortos pero equilibrados con tus límites; para tableros, pueden ser suficientes intervalos más largos. Comienza pequeño, mide el volumen y luego ajusta.
¿Qué unidades utilizan length_meters y duration_seconds?
Metros y segundos, respectivamente. Convierte en el cliente a millas/kilómetros y minutos según sea necesario.
¿Puedo solicitar rutas para una hora de llegada deseada?
El endpoint de Direcciones de Manejo admite establecer una hora de llegada deseada, pero los parámetros no se detallan aquí. Consulta la página de la API para las opciones actuales.
¿Cómo filtro solo construcción o cierres?
Verifica data.alerts[].type y subtype, por ejemplo, type=ROAD_CLOSED o subtype=HAZARD_ON_ROAD_CONSTRUCTION.
¿Es esto pago por llamada?
No. Zyla utiliza un modelo de suscripción + cuota. Para usuarios de Zyla por primera vez, la primera API ofrece una prueba de 7 días o 50 solicitudes. Consulta la lista para detalles actuales.
¿Listo para agregar datos de navegación en vivo de Waze a tu producto? Crea tu cuenta, obtén tu clave y comienza a construir con la API de Datos de Waze: Comienza prueba de 7 días en la API de Datos de Waze.