Necesitas datos de tráfico en vivo que puedas enviar esta semana: alertas por accidentes, peligros, policía, cierres de carreteras y las congestiones exactas que afectan tu área de servicio. Al final de esta guía, consultarás un endpoint real que devuelve alertas y congestiones de Waze para un cuadro delimitador, analizarás los resultados y estarás listo para integrarlos en la planificación de rutas, ETAs y tableros de incidentes.
Lo que esta API te ofrece
La API de Datos de Waze en Zyla API Hub devuelve inteligencia de tráfico en tiempo real directamente de Waze, enfocándose en:
- Alertas: accidentes, cierres de carreteras, peligros, policía y más.
- Congestiones: eventos de congestión dentro de tu rectángulo seleccionado.
- Rutas: endpoint opcional para direcciones de manejo con alertas a lo largo de las rutas candidatas.
Los usos típicos incluyen despacho de servicios, ETAs dinámicos, notificaciones conscientes del tráfico, interfaces de usuario de rutas para conductores y tableros de operaciones de la ciudad. Todo funciona con una sola cuenta de Zyla y una clave API, con facturación por suscripción + cuota (no por llamada). Puedes comenzar una prueba de 7 días de esta API desde su página de mercado.
Comenzando en Zyla API Hub
Para obtener una clave API y hacer tu primera llamada:
- Abre la lista de API 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) y copia tu clave API.
- Llama a los endpoints documentados a continuación usando Authorization: Bearer YOUR_API_KEY.
Zyla API Hub alberga más de 10,000 APIs públicas bajo un modelo de suscripción y una clave API. Puedes agregar otras APIs de tráfico, mapeo o utilidades más tarde sin cambiar tu configuración de autenticación.
Endpoint: Alertas y Congestiones
Usa este endpoint para obtener alertas y congestiones en tiempo real para un rectángulo geográfico definido por pares de latitud/longitud de esquina inferior izquierda y esquina superior derecha.
- Método: GET
- URL: https://zylalabs.com/api/4814/waze-data-api/6003/alerts-and-jams
- Descripción: Obtén datos de alertas en tiempo real e información de congestiones de Waze en un área rectangular geográfica por pares de latitud y longitud de esquina inferior izquierda y esquina superior derecha. Soporta todos los tipos de alertas de Waze, incluyendo accidentes, bloqueos de carretera, peligros, congestiones de tráfico, policía y más.
Parámetros de consulta requeridos
- bottom_left (cadena, requerido): 51.2800,-0.5100
- top_right (cadena, requerido): 51.5000,-0.0800
Parámetros de consulta opcionales
- max_alerts (cadena, opcional): 100
- max_jams (cadena, opcional): 0
Ejemplo de cURL (copiar-pegar)
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"
Respuesta de muestra 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_…
Lo que realmente usarás:
- status y request_id para seguimiento de solicitudes y manejo de errores.
- parameters para confirmar el rectángulo de consulta y cualquier límite aplicado.
- data.alerts[n] campos para mapeo y notificaciones:
- alert_id: identificador único para deduplicación.
- type y subtype: clasificar incidentes (por ejemplo, HAZARD, ROAD_CLOSED).
- publish_datetime_utc: marca de tiempo ISO 8601 UTC para la recencia de la alerta.
- latitude, longitude: coordenadas WGS84 para tus capas de mapa.
- city, street, country: etiquetas de texto para la interfaz de usuario.
- num_thumbs_up: señal rápida de confianza de la comunidad.
Ejemplo en Python: obtener y filtrar alertas
El fragmento a continuación consulta el mismo endpoint de Alertas y Congestiones, extrae campos clave y filtra por cierres y peligros. Reemplaza YOUR_API_KEY antes de ejecutar.
import os
import requests
from datetime import datetime, timezone
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=30)
resp.raise_for_status()
payload = resp.json()
if payload.get("status") != "OK":
raise SystemExit(f"Error de API: {payload}")
alerts = payload.get("data", {}).get("alerts", [])
def parse_iso_utc(ts):
# publish_datetime_utc es ISO 8601 con Z
try:
return datetime.fromisoformat(ts.replace("Z", "+00:00"))
except Exception:
return None
# Ejemplo: enfocar en cierres y peligros de las últimas 24 horas
now = datetime.now(timezone.utc)
recent = []
for a in alerts:
ts = parse_iso_utc(a.get("publish_datetime_utc"))
if ts and (now - ts).total_seconds() <= 24 * 3600:
if a.get("type") in {"ROAD_CLOSED", "HAZARD"}:
recent.append({
"alert_id": a.get("alert_id"),
"type": a.get("type"),
"subtype": a.get("subtype"),
"city": a.get("city"),
"street": a.get("street"),
"lat": a.get("latitude"),
"lon": a.get("longitude"),
"published": a.get("publish_datetime_utc"),
"thumbs": a.get("num_thumbs_up"),
})
for r in recent:
print(f"[{r['published']}] {r['type']} ({r['subtype']}) en {r['lat']},{r['lon']} - {r['city']} {r['street'] or ''} (id={r['alert_id']}, 👍{r['thumbs']})")
Notas sobre manejo de parámetros y datos
- Las coordenadas son pares de latitud,longitud (WGS84). La API espera bottom_left y top_right formando un rectángulo válido.
- max_alerts y max_jams te permiten limitar resultados si estás renderizando en un mapa denso. Establece en 0 para deshabilitar una categoría cuando sea soportado por la documentación de la lista (por ejemplo, max_jams=0 en el ejemplo).
- Las marcas de tiempo se devuelven como UTC (sufijo Z). Analiza como ISO 8601.
- Para tableros, almacena respuestas brevemente (por ejemplo, 30–60 segundos) para reducir el parpadeo mientras te mantienes actualizado. Siempre muestra el request_id en algún lugar de los registros para rastrear problemas.
Endpoint: Direcciones de Manejo (con alertas a lo largo de la ruta)
Opcionalmente, obtén rutas potenciales entre dos coordenadas y las alertas que afectan cada ruta. Esto es útil cuando estás construyendo rutas conscientes del tráfico o ETAs y necesitas mostrar congestiones e incidentes a lo largo de los caminos candidatos.
- Método: GET
- URL: https://zylalabs.com/api/4814/waze-data-api/6004/driving-directions
- Descripción: Obtén rutas / direcciones de manejo de Waze, incluyendo alertas a lo largo de cada ruta posible. Soporta establecer la hora de llegada deseada.
Parámetros de consulta requeridos
- source_coordinates (cadena, requerido): 32.0852999,34.78176759999999
- destination_coordinates (cadena, requerido): 32.7940463,34.989571
Ejemplo de cURL
Las respuestas incluyen metadatos de ruta como length_meters y duration_seconds, y un array de alertas con elementos como type=JAM y subtipos como JAM_STAND_STILL_TRAFFIC. Usa esos para marcar segmentos arriesgados o lentos en tu interfaz de usuario y para calcular ETAs ajustados al tráfico.
Casos de uso prácticos que puedes implementar esta semana
- Feed de incidentes del área de servicio: Consulta el endpoint de Alertas y Congestiones para tu rectángulo de operaciones de entrega/campo. Envía alertas de ROAD_CLOSED y HAZARD a Slack con coordenadas y ciudad/calle.
- ETAs conscientes del tráfico: Combina duration_seconds de Direcciones de Manejo con la densidad de alertas para decidir cuándo redirigir o ajustar ETAs. Anota rutas con alertas de ruta para aplicaciones de conductores.
- Superposiciones de mapa: Dibuja alertas como puntos con íconos por tipo/subtipo y muestra num_thumbs_up como una rápida señal de confianza. Codifica en colores las congestiones de manera diferente a los peligros.
- Métricas de operaciones: Rastrea el conteo de alertas por hora y tipo dentro de tu rectángulo para entender cuellos de botella recurrentes (por ejemplo, puntos calientes de construcción).
Llama a la API desde agentes de IA a través de MCP
También puedes orquestar llamadas de tráfico en vivo desde asistentes de codificación de IA o agentes autónomos utilizando el endpoint MCP de Zyla. Cualquier cliente compatible con MCP (por ejemplo, Claude Code, Cursor, Windsurf) puede acceder a las herramientas del mercado a través de:
- Configura tu cliente con el endpoint MCP y tu clave API de Zyla (como se proporciona en tu cuenta).
- Haz que el agente invoque las herramientas de Alertas y Congestiones o Direcciones de Manejo de la API de Datos de Waze, pasando los mismos parámetros de consulta mostrados arriba.
- MCP centraliza la autenticación y el descubrimiento de herramientas para que puedas programar verificaciones de tráfico dentro de sesiones de codificación o trabajos de CI sin reimplementar la infraestructura HTTP.
Consejos de integración que ahorran tiempo
- Cuadros delimitadores: Almacena tus rectángulos de servicio por mercado o depósito, y valida que bottom_left.lat < top_right.lat y bottom_left.lon < top_right.lon antes de llamar.
- Deduplicación: Usa alert_id como una clave estable en tu base de datos o caché. Si consultas con frecuencia, realiza upsert en lugar de append.
- Cadencia de actualización: Los incidentes evolucionan rápidamente; intervalos de 30–120 segundos equilibran frescura y cuota. Ajusta según la densidad del mercado.
- UX de mapa: Convierte type/subtype en iconografía. Para peligros como HAZARD_ON_ROAD_CONSTRUCTION, vincula a calendarios de trabajo programados cuando estén disponibles en tu organización.
- Manejo de errores: Registra status y request_id. Si el status no es OK, retrocede y vuelve a intentar con jitter.
Notas de seguridad y precios
- Autenticación: Envía Authorization: Bearer YOUR_API_KEY en cada solicitud.
- Facturación: suscripción + cuota, no por llamada. No hay Plan Gratuito; consulta la página de la API para opciones de acceso y precios actuales.
- Prueba: la lista de la API de Datos de Waze ofrece una prueba de 7 días que puedes comenzar desde la página del ítem.
Próximos pasos
Si necesitas una API para obtener alertas y congestiones, puedes implementar la consulta de rectángulo hoy y renderizar tus primeros incidentes en minutos. Crea tu cuenta, suscríbete y llama a los endpoints desde tu servicio o flujo de trabajo de agente. Comienza aquí: Comienza prueba de 7 días en la API de Datos de Waze.
FAQ
¿Qué formato de coordenadas espera la API?
Pares de Latitude,Longitude (WGS84) como cadenas, tanto para bottom_left como para top_right. Ejemplo: 51.2800,-0.5100.
¿Cómo limito los resultados si un rectángulo es denso?
Usa max_alerts y max_jams para limitar los elementos devueltos, como se muestra en el ejemplo de cURL.
¿En qué zona horaria están las marcas de tiempo?
publish_datetime_utc está en UTC y formateado como ISO 8601 (por ejemplo, 2026-07-22T08:30:00.000Z). Analiza en consecuencia.
¿Puedo recuperar alertas a lo largo de una ruta en lugar de un rectángulo?
Sí. Usa el endpoint de Direcciones de Manejo para obtener rutas y alertas asociadas con esas rutas entre las coordenadas de origen y destino.
¿Dónde gestiono mi clave API y plan?
En la lista de Zyla API Hub y en el panel de tu cuenta. Usa la página de la lista para comenzar la prueba de 7 días, revisar cuotas y recuperar tu clave.