La atribución es obligatoria, en todos los planes
Prueba, Personal, Profesional o Empresa: cualquier app, web o producto que use esta API muestra de dónde salen los datos, con un enlace visible a traficoahora.es junto a ellos. El texto exigido es “Datos: Tráfico Ahora” enlazando a https://traficoahora.es. Copia esto:
Datos: <a href="https://traficoahora.es">Tráfico Ahora</a>
Mantén además el crédito de la fuente original cuando la respuesta lo trae (el campo source y sourceUrl de cada incidencia: DGT, Servei Català de Trànsit, Gobierno Vasco, Ayuntamiento de Madrid, AEMET vía MeteoAlarm). Cada respuesta lleva la atribución en el campo attribution y en la cabecera X-Attribution.
Empezar
Crea una clave de prueba en el formulario de abajo y añádela a la petición. Abre esto en el navegador, con tu clave al final, y ya tienes datos:
https://traficoahora.es/api/v1/incidents?district=sevilla&key=tes_…
Devuelve GeoJSON, listo para un mapa. Para JSON simple, añade &format=json. En un programa, mejor la clave en la cabecera:
curl -H "X-API-Key: tes_…" "https://traficoahora.es/api/v1/incidents?district=madrid&type=accident&format=json"
La clave
Desde el 8 de octubre de 2026 la API es de pago y cada petición lleva clave. La clave que se crea aquí es de prueba: funciona 5 días desde la primera petición, con 120 peticiones por hora, para comprobar si la API sirve para lo que estás construyendo. Para seguir después, escribe a [email protected] con el nombre del proyecto y el uso previsto, y te respondemos con el plan y la factura.
Pedimos nombre, correo y para qué la quieres por tres razones concretas: para avisarte cuando una fuente oficial falle o cambie de formato; para saber qué le falta a la API a quien la usa en serio; y porque una clave que se puede revocar protege a todos de un bucle descontrolado.
La clave va en la cabecera X-API-Key, en Authorization: Bearer … o en el parámetro key. Hasta el final del 13 de octubre de 2026 la API sigue respondiendo sin clave, con un aviso en la cabecera X-API-Notice y en el cuerpo; desde el 14, sin clave responde 401.
Incidencias activas: /api/v1/incidents
Todas las incidencias que publican ahora mismo las fuentes oficiales: obras, cortes, retenciones, accidentes, incendios que afectan a la carretera y avisos meteorológicos de lluvia, viento, nieve, hielo, niebla o tormenta. Se leen cada pocos minutos y se sirven desde nuestro archivo.
GET https://traficoahora.es/api/v1/incidents
Parámetros
| Parámetro | Valores | Para qué |
|---|---|---|
district | madrid, sevilla, barcelona… | Una de las 52 provincias, por slug o por nombre. Es el mismo slug que el de /trafico/sevilla. |
type | accident, closure, traffic, fire, weather | Filtra por tipo; admite varios separados por comas. Sin esto, vienen todos. |
format | geojson (por defecto), json | GeoJSON para mapas; JSON para listas. |
since | 2026-10-01 | Incidencias empezadas después de esa fecha, también las ya terminadas que sigan en el archivo. |
debug | 1 | El estado de cada fuente: cuántos registros trae, cuándo publicó por última vez y si está callada. |
key | tes_… | Tu clave, si no la mandas en la cabecera. |
Ejemplo de petición y respuesta en JSON
https://traficoahora.es/api/v1/incidents?district=madrid&type=accident&format=json
{
"attribution": { "text": "Datos: Tráfico Ahora", "url": "https://traficoahora.es" },
"count": 1,
"incidents": [
{
"id": "dgt-28837980",
"type": "accident",
"severity": "high",
"status": "active",
"lat": 40.301353,
"lon": -3.9302523,
"title": "Accidente · A-5 · km 24,1",
"description": "Accidente en la A-5 punto kilométrico 24,1 en Móstoles (Madrid)",
"source": "dgt",
"sourceUrl": "https://infocar.dgt.es/etraffic/",
"road": "A-5",
"district": "Madrid",
"startedAt": "2026-10-08T20:01:52.000Z",
"updatedAt": "2026-10-08T20:31:23.000Z"
}
]
}La misma respuesta en GeoJSON
https://traficoahora.es/api/v1/incidents?district=sevilla
{
"attribution": { "text": "Datos: Tráfico Ahora", "url": "https://traficoahora.es" },
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "dgt-28683251",
"geometry": { "type": "Point", "coordinates": [-5.927664, 37.252464] },
"properties": {
"id": "dgt-28683251",
"type": "closure",
"severity": "low",
"status": "active",
"title": "Obras · A-4 · km 558,0",
"description": "Obras en la A-4 punto kilométrico 558,0 en Dos Hermanas (Sevilla)",
"source": "dgt",
"sourceUrl": "https://infocar.dgt.es/etraffic/",
"road": "A-4",
"district": "Sevilla",
"startedAt": "2026-10-08T21:14:00.000Z",
"updatedAt": "2026-10-08T21:14:55.000Z"
}
}
]
}Respuestas reales de la API, recortadas a una incidencia. En GeoJSON los campos van en properties y las coordenadas en el orden de GeoJSON: longitud, latitud.
Campos de cada incidencia
| Campo | Qué es |
|---|---|
id | Identificador estable, con el prefijo de la fuente (dgt-, sct-, dtgv-, madrid-, meteoalarm-). |
type | accident, closure (obras y cortes), traffic (retenciones), fire o weather. |
severity | info, low, medium, high o critical, según lo que publica la fuente. |
status | active mientras la fuente la publica. |
lat lon | Coordenadas WGS84 del punto. |
title | Título corto: causa, carretera y punto kilométrico. |
description | Texto completo, con municipio y provincia. |
source | dgt, sct (Servei Català de Trànsit), dtgv (Gobierno Vasco), madrid o meteoalarm. Se mantiene al mostrar los datos. |
sourceUrl | La página oficial de la fuente. |
road | La carretera (A-5, AP-7, N-634…), cuando la fuente la da. Los avisos meteorológicos no la llevan. |
district | La provincia. |
startedAt updatedAt | Inicio y última actualización, en ISO 8601 (UTC). |
Diagnóstico: ?debug=1
https://traficoahora.es/api/v1/incidents?debug=1
{
"attribution": { "text": "Datos: Tráfico Ahora", "url": "https://traficoahora.es" },
"generatedAt": "2026-10-08T21:25:51.431Z",
"liveCount": 1124,
"totalCount": 1124,
"supplementedFromMocks": false,
"sources": [
{
"name": "sct",
"configured": true,
"ok": true,
"count": 185,
"newestAt": "2026-10-08T21:04:45.000Z",
"stale": false,
"byType": { "closure": 182, "traffic": 2, "accident": 1 },
"bySeverity": { "low": 182, "medium": 2, "high": 1 }
}
]
}Útil cuando un número parece raro: dice qué fuente está callada. El ejemplo es real y está recortado a una fuente.
Códigos de respuesta
| Código | Cuándo |
|---|---|
200 | Todo bien. Cabeceras útiles: X-API-Plan, X-API-Trial-Ends (fin de la prueba), X-RateLimit-Remaining, X-Attribution. |
401 | Sin clave, o con una clave que no existe (desde el 14 de octubre de 2026). |
402 | La prueba de 5 días ha terminado y la clave no tiene plan de pago. |
403 | Clave revocada. El cuerpo dice el motivo. |
429 | Límite del plan superado. La cabecera Retry-After dice cuántos segundos esperar. |
HTTP/1.1 401 Unauthorized
{
"error": "Clave necesaria",
"detail": "La API de Tráfico Ahora ya no responde sin clave. Crea una clave de prueba en https://traficoahora.es/api-publica (funciona 5 días) o pide un plan de pago a [email protected].",
"clave": "https://traficoahora.es/api-publica",
"contacto": "[email protected]",
"atribucion": "La atribución es obligatoria en todos los planes: ...",
"attribution": { "text": "Datos: Tráfico Ahora", "url": "https://traficoahora.es" }
}HTTP/1.1 402 Payment Required
{
"error": "Periodo de prueba terminado",
"detail": "Esta clave era de prueba y terminó el 15 de octubre de 2026. Para seguir usando la API, escribe a [email protected] ...",
"planes": "https://traficoahora.es/api-publica",
"contacto": "[email protected]",
"atribucion": "La atribución es obligatoria en todos los planes: ...",
"attribution": { "text": "Datos: Tráfico Ahora", "url": "https://traficoahora.es" }
}Límites
La prueba admite 120 peticiones por hora. Los planes de pago se cuentan por día: 10.000 peticiones en Personal y 100.000 en Profesional; Empresa, lo que se acuerde. Se cuenta por clave y no por IP, para que una app con muchos usuarios no se frene por uno de ellos. Si te pasas, recibes un 429 con el tiempo de espera en Retry-After.
Las fuentes se leen cada pocos minutos y la respuesta tiene caché de 30 segundos, así que pedir más de dos veces por minuto no trae ni un dato nuevo. Quien choca con el límite es, casi siempre, un bucle olvidado.
El CORS está abierto: puedes llamar directamente desde el navegador, sin servidor en medio. Ten en cuenta que la clave queda entonces a la vista de quien abra la página.
Planes y precios
Prueba
Para todos
Gratis
- 5 días desde la primera petición
- 120 peticiones por hora
- Atribución obligatoria
Formulario de arriba, dos minutos.
Personal
Proyectos personales o pequeños, sin ingresos relevantes
13 € / mes
IVA incluido
- Unas 10.000 peticiones al día
- Sólo España
- Atribución obligatoria
Profesional
Apps comerciales, webs con publicidad, uso dentro de una empresa
69 € / mes
IVA incluido
- Unas 100.000 peticiones al día
- Atribución obligatoria
Empresa
Flotas, aseguradoras, medios, varios países, SLA
Hablemos
- Varios países, a través de Roadscore
- Volumen y disponibilidad acordados
- Atribución obligatoria
Por Roadscore y [email protected].
Qué se paga: el acceso al servicio, es decir, la API en sí, los límites del plan y el soporte. No los datos: las incidencias son de los organismos que las publican (DGT, Servei Català de Trànsit, Gobierno Vasco, Ayuntamiento de Madrid, AEMET vía MeteoAlarm), no son nuestras y no las licenciamos. Por eso cada registro conserva su fuente, y quien los muestra mantiene ese crédito.
Cómo se paga: por ahora, por correo y factura. Escribe a [email protected] con el nombre del proyecto, el uso previsto y el plan que te interesa, y te respondemos con la factura. Al pagar, tu clave de prueba pasa al plan y deja de caducar. Precios por mes, IVA incluido.
Condiciones y atribución
La atribución es obligatoria, en todos los planes
Prueba, Personal, Profesional o Empresa: cualquier app, web o producto que use esta API muestra de dónde salen los datos, con un enlace visible a traficoahora.es junto a ellos. El texto exigido es “Datos: Tráfico Ahora” enlazando a https://traficoahora.es. Copia esto:
Datos: <a href="https://traficoahora.es">Tráfico Ahora</a>
Mantén además el crédito de la fuente original cuando la respuesta lo trae (el campo source y sourceUrl de cada incidencia: DGT, Servei Català de Trànsit, Gobierno Vasco, Ayuntamiento de Madrid, AEMET vía MeteoAlarm). Cada respuesta lleva la atribución en el campo attribution y en la cabecera X-Attribution.
- Construir un producto sobre la API sin plan de pago, una vez terminada la prueba, o sin atribución, no es un uso autorizado.
- La clave es personal del proyecto: no se comparte ni se publica. Si se filtra, escríbenos y emitimos otra.
- Una clave puede revocarse si se usa para algo distinto de lo declarado o sin atribución.
- Los datos son de la DGT, del Servei Català de Trànsit, del Gobierno Vasco, del Ayuntamiento de Madrid y de AEMET (vía MeteoAlarm). Quien los lee tiene derecho a saber que una incidencia la registró un organismo de tráfico y no un algoritmo.
- Más detalles en los términos y, sobre los datos de quien tiene clave, en la política de privacidad.
Honestidad sobre la cobertura
Esta API devuelve lo que publican las fuentes oficiales, no lo que está pasando en la carretera. Una carretera sin incidencias en la respuesta no es una carretera despejada: es una carretera sobre la que nadie ha publicado nada. Las autopistas de peaje de concesionarias, por ejemplo, tienen menos cobertura que la red de la DGT.
Si construyes avisos encima de esto, díselo a quien los recibe. Y no la uses para decisiones de emergencia: en una emergencia, 112.
El estado de cada fuente, en directo, está en Datos y transparencia y en ?debug=1.
Contacto
Para planes de pago, volumen, facturas, una clave perdida o cualquier duda sobre la API: [email protected]. Respondemos nosotros, no un sistema de tickets. Si buscas datos de varios países o un acuerdo con SLA, mira Roadscore.