Skip to main content
SAVA LOGISTIC — Especialistas en Transporte por Carretera en Europa

Para desarrolladores y agentes de IA

Datos abiertos: dos endpoints JSON

SAVA publica dos de sus referencias en JSON: el calendario de restricciones a la circulación de camiones y el catálogo de páginas de este sitio. Sin clave, sin registro y sin autenticación: basta una petición GET.

Lo que tienen en común

  • GET, respuesta en JSON (UTF-8).
  • Access-Control-Allow-Origin: *: se pueden llamar desde un navegador, en cualquier dominio.
  • Cache-Control: public, max-age=3600: una respuesta puede reutilizarse durante una hora. El campo generated del calendario dice cuándo se generó la respuesta que estás leyendo.
  • Límite por IP y por endpoint: 60 peticiones en una ventana de 60 segundos que empieza con la primera. La petición 61 recibe HTTP 429 con una cabecera Retry-After que indica los segundos de espera.

Calendario de restricciones a camiones

GET https://www.savaexpress.com/api/geo/traffic-bans

Las prohibiciones de circulación de camiones con fecha fija en los países de tránsito de las rutas de SAVA, para el año en curso y el siguiente: los mismos dos años que indexan las páginas públicas. Cada fecha lleva la fuente oficial que publica la norma y el mes en que se comprobó el dato contra ella.

Los mismos datos, para personas: Calendario de restricciones de camiones en la UE

Campos

  • generated: cuándo se generó la respuesta, como marca de tiempo en UTC.
  • apiVersion: la versión del formato de la respuesta, hoy 1.1. Una versión nueva solo añade campos: ninguno cambia de nombre ni de significado.
  • timeReference: en qué hora están todos los start y end. Es la hora de Europa Central: CET (UTC+1) en invierno y CEST (UTC+2) en verano, como en Europe/Brussels.
  • window: las fechas que cubre: from, to y years.
  • filters: los filtros aplicados a esta respuesta: from, to, countries (null significa todos), include y lang.
  • source: la página pública de la que estos datos son el reflejo.
  • countries: los países con un régimen de prohibiciones fechado: code (ISO 3166-1 alfa-2), name, timezone, summary, officialSource (name, url), lastVerified y page (la página del país o, para Hungría, Luxemburgo y Liechtenstein, su apartado del calendario).
  • countriesWithoutDatedBans: los países cuyo régimen es estacional, por itinerario o inexistente, con su resumen y su fuente oficial y sin fechas. Están en la lista para que su ausencia no se lea como «sin restricciones».
  • recurring: las restricciones nocturnas de Austria, Suiza y Liechtenstein, un bloque por país en lugar de unas 730 fechas al año: country, kind, days, start y end (22:00–05:00, pasando la medianoche), vehicle, minimumTonnes, scope, exceptions, officialSource y lastVerified.
  • bans: una entrada por fecha y franja horaria: country, countryName, timezone, date, weekday, reason, start y end (HH:MM en hora de Europa Central; 24:00 es el final del día), startsAt y endsAt (los mismos instantes en RFC 3339 con su desfase respecto a UTC, p. ej. 2026-09-26T15:00:00+02:00), kind (weekend, holiday, eve, road, dated o night), vehicle, minimumTonnes (solo cuando el texto del vehículo indica un umbral), scope (nationwide, regional, specific-roads o transit), officialSource, lastVerified, page y, cuando aplican, note, appliesTo (p. ej. transit-to-FR), roads y provisional (true en las fechas estimadas antes de que la autoridad publique su calendario).
  • count: el número de entradas de bans.

Parámetros

  • date=YYYY-MM-DD: un solo día.
  • from=YYYY-MM-DD y to=YYYY-MM-DD: un intervalo dentro de window. Sin ningún parámetro, la respuesta cubre la ventana completa.
  • country=AT,FR: uno o varios códigos ISO, separados por comas.
  • include=night: añade las restricciones nocturnas como entradas con fecha, dos por día (00:00–05:00 y 22:00–24:00).
  • lang: en (por defecto), es, ro, it, fr o de. Traduce summary, reason, note y vehicle.
  • Un parámetro mal escrito responde HTTP 400 con el parameter y lo que se esperaba (expected).

Ejemplo

Extracto recortado de una respuesta real del 25 de septiembre de 2026; … marca lo omitido. La respuesta completa ronda los 1,4 MB: fíltrala con los parámetros de arriba.

{
  "generated": "2026-09-25T12:32:20.536Z",
  "apiVersion": "1.1",
  "timeReference": {
    "zone": "Europe/Brussels",
    "label": "CET/CEST (Central European Time)",
    "note": "All start/end times are Central European Time: CET (UTC+1) in winter, CEST (UTC+2) in summer."
  },
  "window": {
    "from": "2026-01-01",
    "to": "2027-12-31",
    "years": [2026, 2027]
  },
  "filters": {
    "from": "2026-01-01",
    "to": "2027-12-31",
    "countries": null,
    "include": [],
    "lang": "en"
  },
  "source": "https://www.savaexpress.com/resources/traffic-bans",
  "countries": [
    {
      "code": "DE",
      "name": "Germany",
      "timezone": "Europe/Berlin",
      "summary": "Trucks over 7.5 t are banned nationwide on Sundays and public holidays, 00:00–22:00. Summer Saturday bans also apply on certain motorways.",
      "officialSource": {
        "name": "§30 StVO / Ferienreiseverordnung (BMDV)",
        "url": "https://www.gesetze-im-internet.de/stvo_2013/__30.html"
      },
      "lastVerified": "2026-09",
      "page": "https://www.savaexpress.com/resources/traffic-bans/germany"
    },
    …
  ],
  "countriesWithoutDatedBans": [
    …,
    {
      "code": "ES",
      "name": "Spain",
      "timezone": "Europe/Madrid",
      "summary": "No simple nationwide weekend ban. The DGT publishes an annual resolution of route- and date-specific restrictions for trucks over 7.5 t (Sundays/holidays on listed roads, plus special-transport and seasonal rules).",
      "officialSource": {
        "name": "DGT — Restricciones a la circulación",
        "url": "https://www.dgt.es/"
      },
      "lastVerified": "2026-09"
    },
    …
  ],
  "recurring": [
    {
      "country": "AT",
      "countryName": "Austria",
      "kind": "night",
      "days": "daily",
      "start": "22:00",
      "end": "05:00",
      "timezone": "Europe/Vienna",
      "vehicle": "trucks over 7.5 t",
      "minimumTonnes": 7.5,
      "scope": "nationwide",
      "exceptions": ["Low-noise trucks (lärmarm) carrying a certificate under § 8b (4) KDV 1967", "Road-maintenance vehicles", "Army vehicles where indispensable"],
      "officialSource": {
        "name": "§ 42 (6) StVO (RIS)",
        "url": "https://www.ris.bka.gv.at/NormDokument.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10011336&Paragraf=42"
      },
      "lastVerified": "2026-09"
    },
    …
  ],
  "bans": [
    {
      "country": "AT",
      "countryName": "Austria",
      "timezone": "Europe/Vienna",
      "officialSource": {
        "name": "ASFINAG / §42 StVO",
        "url": "https://www.asfinag.at/en/traffic-road-safety/hgv-bus/lorry-driving-and-overtaking-bans/"
      },
      "lastVerified": "2026-09",
      "page": "https://www.savaexpress.com/resources/traffic-bans/austria",
      "date": "2026-01-01",
      "weekday": "Thursday",
      "reason": "Public holiday: New Year's Day",
      "start": "00:00",
      "end": "22:00",
      "vehicle": "trucks over 7.5 t",
      "minimumTonnes": 7.5,
      "scope": "nationwide",
      "startsAt": "2026-01-01T00:00:00+01:00",
      "endsAt": "2026-01-01T22:00:00+01:00",
      "kind": "holiday"
    },
    …,
    {
      "country": "AT",
      "countryName": "Austria",
      "timezone": "Europe/Vienna",
      "officialSource": {
        "name": "Lkw-Fahrverbote Generalerneuerung Luegbrücke 2026 (BGBl. II Nr. 338/2025 as amended by BGBl. II Nr. 70/2026), § 1",
        "url": "https://www.ris.bka.gv.at/Dokumente/Bundesnormen/NOR40276795/NOR40276795.html"
      },
      "lastVerified": "2026-09",
      "page": "https://www.savaexpress.com/resources/traffic-bans/austria",
      "date": "2026-09-26",
      "weekday": "Saturday",
      "reason": "Saturday",
      "start": "07:00",
      "end": "15:00",
      "vehicle": "trucks over 7.5 t",
      "minimumTonnes": 7.5,
      "scope": "specific-roads",
      "note": "A13 Brenner (Luegbrücke works): trucks heading for Italy over the Nößlach–Brenner Nord section; applies on the A12, A13 and A14.",
      "startsAt": "2026-09-26T07:00:00+02:00",
      "endsAt": "2026-09-26T15:00:00+02:00",
      "kind": "road",
      "appliesTo": "southbound-to-IT",
      "roads": ["A12", "A13", "A14"]
    },
    …,
    {
      "country": "IT",
      "countryName": "Italy",
      "timezone": "Europe/Rome",
      "officialSource": {
        "name": "MIT — Calendario divieti di circolazione",
        "url": "https://www.mit.gov.it/comunicazione/news/mezzi-pesanti-calendario-2026-dei-divieti-di-circolazione-stradale"
      },
      "lastVerified": "2026-09",
      "page": "https://www.savaexpress.com/resources/traffic-bans/italy",
      "date": "2027-01-03",
      "weekday": "Sunday",
      "reason": "Sunday",
      "start": "09:00",
      "end": "22:00",
      "vehicle": "trucks over 7.5 t",
      "minimumTonnes": 7.5,
      "scope": "nationwide",
      "note": "Calendar 2027 not yet published; estimated from the general rules.",
      "startsAt": "2027-01-03T09:00:00+01:00",
      "endsAt": "2027-01-03T22:00:00+01:00",
      "kind": "weekend",
      "provisional": true
    },
    …
  ],
  "count": 2170
}

Catálogo de páginas del sitio

GET https://www.savaexpress.com/api/geo/routes

Todas las páginas indexables de este sitio, con su URL canónica y los idiomas en los que existe cada una: la misma lista que publica el sitemap. Responde a «qué hay aquí y en qué idiomas». No trae distancias, tiempos de tránsito, días de salida ni precios: eso está en la página de cada corredor.

Los mismos datos, para personas: Todos los corredores con origen en España

Campos

  • routes: una entrada por página: path, canonicalUrl (la URL en inglés), priority, changeFrequency, locales (los idiomas en los que existe) y, cuando la página tiene fecha de contenido, lastModified.
  • count: el número de entradas de routes.

Ejemplo

Extracto recortado de una respuesta real del 24 de septiembre de 2026; … marca lo omitido.

{
  "routes": [
    {
      "path": "/",
      "canonicalUrl": "https://www.savaexpress.com",
      "priority": 1,
      "changeFrequency": "weekly",
      "locales": ["en", "es", "ro", "it", "fr", "de"]
    },
    …,
    {
      "path": "/resources/api",
      "canonicalUrl": "https://www.savaexpress.com/resources/api",
      "priority": 0.5,
      "changeFrequency": "monthly",
      "locales": ["en", "es", "ro", "it", "fr", "de"]
    },
    …,
    {
      "path": "/resources/traffic-bans",
      "canonicalUrl": "https://www.savaexpress.com/resources/traffic-bans",
      "priority": 0.6,
      "changeFrequency": "weekly",
      "locales": ["en", "es", "ro", "it", "fr", "de"],
      "lastModified": "2026-09-04"
    },
    …
  ],
  "count": 178
}

Licencia: CC BY 4.0

Las dos respuestas se publican bajo la licencia Creative Commons Atribución 4.0 Internacional. Puedes copiar, redistribuir y adaptar los datos, también con fines comerciales, siempre que cites a SAVA Logistic, enlaces la licencia e indiques si hiciste cambios.

Cómo citar

Basta una línea junto a donde uses los datos, por ejemplo:

Fuente: SAVA Logistic (www.savaexpress.com/resources/traffic-bans), CC BY 4.0

A quién se cita por qué: SAVA Logistic recopila y publica el calendario, pero la norma detrás de cada fecha es de la autoridad que figura en el officialSource de esa entrada. Para la norma en sí, cita a esa autoridad.

lastVerified indica el mes en que se comprobaron los datos de ese país contra su fuente oficial. Dice cuándo se comprobó, nada más: antes de planificar en torno a una fecha, confírmala con la autoridad.