Skip to main content
SAVA LOGISTIC — spécialistes du transport routier européen

Pour les développeurs et les agents d’IA

Données ouvertes : deux points d’accès JSON

SAVA publie deux de ses références en JSON : le calendrier des interdictions de circulation des poids lourds et le catalogue des pages de ce site. Ni clé, ni inscription, ni authentification : une simple requête GET renvoie les données.

Ce qu’ils ont en commun

  • GET, réponse en JSON (UTF-8).
  • Access-Control-Allow-Origin: * : ils peuvent être appelés depuis un navigateur, sur n’importe quel domaine.
  • Cache-Control: public, max-age=3600 : une réponse peut être réutilisée pendant une heure. Le champ generated du calendrier indique quand la réponse que vous lisez a été générée.
  • Limite par IP et par point d’accès : 60 requêtes dans une fenêtre de 60 secondes qui commence à la première. La 61e requête reçoit un HTTP 429 avec un en-tête Retry-After indiquant le nombre de secondes à attendre.

Calendrier des interdictions poids lourds

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

Les interdictions de circulation des poids lourds à date fixe dans les pays de transit des lignes SAVA, pour l’année en cours et la suivante : les deux mêmes années que celles indexées par les pages publiques. Chaque date est accompagnée de la source officielle qui publie la règle et du mois où la donnée a été vérifiée auprès d’elle.

Les mêmes données, pour les humains : Calendrier européen des interdictions de circuler

Champs

  • generated : date et heure de génération de la réponse, en UTC.
  • apiVersion : la version du format de la réponse, actuellement 1.1. Une nouvelle version ne fait qu’ajouter des champs : aucun ne change de nom ni de sens.
  • timeReference : l’heure dans laquelle sont exprimés tous les start et end. C’est l’heure d’Europe centrale : CET (UTC+1) en hiver et CEST (UTC+2) en été, comme Europe/Brussels.
  • window : la période couverte : from, to et years.
  • filters : les filtres appliqués à cette réponse : from, to, countries (null signifie tous), include et lang.
  • source : la page publique dont ces données sont le reflet.
  • countries : les pays dotés d’un régime d’interdictions daté : code (ISO 3166-1 alpha-2), name, timezone, summary, officialSource (name, url), lastVerified et page (la page du pays ou, pour la Hongrie, le Luxembourg et le Liechtenstein, sa section du calendrier).
  • countriesWithoutDatedBans : les pays dont le régime est saisonnier, lié à un itinéraire ou inexistant, avec leur résumé et leur source officielle, sans aucune date. Ils figurent dans la liste pour que leur absence ne soit pas lue comme « aucune restriction ».
  • recurring : les interdictions de nuit de l’Autriche, de la Suisse et du Liechtenstein, un bloc par pays au lieu de quelque 730 dates par an : country, kind, days, start et end (22h00–05h00, à cheval sur minuit), vehicle, minimumTonnes, scope, exceptions, officialSource et lastVerified.
  • bans : une entrée par date et par plage horaire : country, countryName, timezone, date, weekday, reason, start et end (HH:MM à l’heure d’Europe centrale ; 24:00 marque la fin de la journée), startsAt et endsAt (les mêmes instants en RFC 3339 avec leur décalage UTC, p. ex. 2026-09-26T15:00:00+02:00), kind (weekend, holiday, eve, road, dated ou night), vehicle, minimumTonnes (seulement quand le texte du véhicule indique un seuil), scope (nationwide, regional, specific-roads ou transit), officialSource, lastVerified, page et, le cas échéant, note, appliesTo (p. ex. transit-to-FR), roads et provisional (true pour les dates estimées avant que l’autorité ne publie son calendrier).
  • count : le nombre d’entrées de bans.

Paramètres

  • date=YYYY-MM-DD : un seul jour.
  • from=YYYY-MM-DD et to=YYYY-MM-DD : un intervalle à l’intérieur de window. Sans aucun paramètre, la réponse couvre toute la fenêtre.
  • country=AT,FR : un ou plusieurs codes ISO, séparés par des virgules.
  • include=night : ajoute les interdictions de nuit sous forme d’entrées datées, deux par jour (00h00–05h00 et 22h00–24h00).
  • lang : en (par défaut), es, ro, it, fr ou de. Traduit summary, reason, note et vehicle.
  • Un paramètre mal formé renvoie HTTP 400 avec le parameter et ce qui était attendu (expected).

Exemple

Extrait abrégé d’une réponse réelle du 25 septembre 2026 ; … signale ce qui a été omis. La réponse complète pèse environ 1,4 Mo : filtrez-la avec les paramètres ci-dessus.

{
  "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
}

Catalogue des pages du site

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

Toutes les pages indexables de ce site, avec leur URL canonique et les langues dans lesquelles chacune existe : la même liste que celle publiée par le sitemap. Il répond à « qu’y a-t-il ici, et en quelles langues ». Il ne contient ni distances, ni délais de transit, ni jours de départ, ni prix : ils figurent sur la page de chaque corridor.

Les mêmes données, pour les humains : Tous les corridors au départ d'Espagne

Champs

  • routes : une entrée par page : path, canonicalUrl (l’URL en anglais), priority, changeFrequency, locales (les langues dans lesquelles elle existe) et, lorsque la page a une date de contenu, lastModified.
  • count : le nombre d’entrées de routes.

Exemple

Extrait abrégé d’une réponse réelle du 24 septembre 2026 ; … signale ce qui a été omis.

{
  "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
}

Licence : CC BY 4.0

Les deux réponses sont publiées sous licence Creative Commons Attribution 4.0 International. Vous pouvez copier, redistribuer et adapter les données, y compris à des fins commerciales, à condition de citer SAVA Logistic, de fournir un lien vers la licence et d’indiquer si vous avez effectué des modifications.

Comment citer

Une ligne à côté de l’endroit où vous utilisez les données suffit, par exemple :

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

Qui citer pour quoi : SAVA Logistic compile et publie le calendrier, mais la règle derrière chaque date relève de l’autorité indiquée dans le champ officialSource de cette entrée. Pour la règle elle-même, citez cette autorité.

lastVerified indique le mois où les données de ce pays ont été vérifiées auprès de leur source officielle. Il dit quand la vérification a eu lieu, rien de plus : avant de planifier autour d’une date, confirmez-la auprès de l’autorité.