Skip to main content
SAVA LOGISTIC — Specialiști în Transport Rutier European

Pentru dezvoltatori și agenți AI

Date deschise: două endpointuri JSON

SAVA publică două dintre referințele sale în format JSON: calendarul restricțiilor de circulație pentru camioane și catalogul paginilor acestui site. Fără cheie, fără înregistrare și fără autentificare: o simplă cerere GET întoarce datele.

Ce au în comun

  • GET, răspuns în JSON (UTF-8).
  • Access-Control-Allow-Origin: *: pot fi apelate dintr-un browser, de pe orice domeniu.
  • Cache-Control: public, max-age=3600: un răspuns poate fi refolosit timp de o oră. Câmpul generated al calendarului arată când a fost generat răspunsul pe care îl citești.
  • Limită pe IP și pe endpoint: 60 de cereri într-o fereastră de 60 de secunde care începe cu prima cerere. Cererea 61 primește HTTP 429 cu antetul Retry-After, care indică numărul de secunde de așteptat.

Calendarul restricțiilor pentru camioane

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

Interdicțiile de circulație pentru camioane cu dată fixă din țările de tranzit ale rutelor SAVA, pentru anul în curs și cel următor: aceiași doi ani pe care îi indexează paginile publice. Fiecare dată vine cu sursa oficială care publică regula și cu luna în care datele au fost verificate față de ea.

Aceleași date, pentru oameni: Calendar restricții camioane în UE

Câmpuri

  • generated: momentul în care a fost generat răspunsul, ca marcaj de timp în UTC.
  • apiVersion: versiunea formatului răspunsului, acum 1.1. O versiune nouă doar adaugă câmpuri: niciunul nu își schimbă numele sau sensul.
  • timeReference: ora în care sunt exprimate toate valorile start și end. Este ora Europei Centrale: CET (UTC+1) iarna și CEST (UTC+2) vara, ca în Europe/Brussels, adică cu o oră în urma orei României.
  • window: perioada acoperită: from, to și years.
  • filters: filtrele aplicate acestui răspuns: from, to, countries (null înseamnă toate), include și lang.
  • source: pagina publică pe care o reflectă aceste date.
  • countries: țările cu un regim de interdicții datat: code (ISO 3166-1 alfa-2), name, timezone, summary, officialSource (name, url), lastVerified și page (pagina țării sau, pentru Ungaria, Luxemburg și Liechtenstein, secțiunea ei din calendar).
  • countriesWithoutDatedBans: țările al căror regim este sezonier, pe itinerar sau inexistent, cu rezumatul și sursa oficială, fără date. Sunt incluse pentru ca absența lor să nu fie citită drept „fără restricții”.
  • recurring: restricțiile de noapte din Austria, Elveția și Liechtenstein, câte un bloc pe țară în loc de circa 730 de date pe an: country, kind, days, start și end (22:00–05:00, peste miezul nopții), vehicle, minimumTonnes, scope, exceptions, officialSource și lastVerified.
  • bans: câte o intrare pentru fiecare dată și interval orar: country, countryName, timezone, date, weekday, reason, start și end (HH:MM în ora Europei Centrale; 24:00 înseamnă sfârșitul zilei), startsAt și endsAt (aceleași momente în RFC 3339 cu decalajul față de UTC, de ex. 2026-09-26T15:00:00+02:00), kind (weekend, holiday, eve, road, dated sau night), vehicle, minimumTonnes (doar când textul vehiculului indică un prag), scope (nationwide, regional, specific-roads sau transit), officialSource, lastVerified, page și, când se aplică, note, appliesTo (de ex. transit-to-FR), roads și provisional (true pentru datele estimate înainte ca autoritatea să-și publice calendarul).
  • count: numărul de intrări din bans.

Parametri

  • date=YYYY-MM-DD: o singură zi.
  • from=YYYY-MM-DD și to=YYYY-MM-DD: un interval din window. Fără niciun parametru, răspunsul acoperă toată fereastra.
  • country=AT,FR: unul sau mai multe coduri ISO, separate prin virgulă.
  • include=night: adaugă și restricțiile de noapte ca intrări datate, câte două pe zi (00:00–05:00 și 22:00–24:00).
  • lang: en (implicit), es, ro, it, fr sau de. Traduce summary, reason, note și vehicle.
  • Un parametru scris greșit primește HTTP 400, cu parameter și valoarea așteptată (expected).

Exemplu

Extras scurtat dintr-un răspuns real din 25 septembrie 2026; … marchează ce s-a omis. Răspunsul complet are aproximativ 1,4 MB: filtrați-l cu parametrii de mai sus.

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

Catalogul paginilor site-ului

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

Toate paginile indexabile ale acestui site, cu URL-ul canonic și limbile în care există fiecare: aceeași listă pe care o publică sitemap-ul. Răspunde la întrebarea „ce există aici și în ce limbi”. Nu conține distanțe, timpi de tranzit, zile de plecare sau prețuri: acestea se găsesc pe pagina fiecărui coridor.

Aceleași date, pentru oameni: Toate coridoarele cu plecare din Spania

Câmpuri

  • routes: câte o intrare pentru fiecare pagină: path, canonicalUrl (URL-ul în engleză), priority, changeFrequency, locales (limbile în care există) și, când pagina are o dată de conținut, lastModified.
  • count: numărul de intrări din routes.

Exemplu

Extras scurtat dintr-un răspuns real din 24 septembrie 2026; … marchează ce s-a 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
}

Licență: CC BY 4.0

Ambele răspunsuri sunt publicate sub licența Creative Commons Atribuire 4.0 Internațional. Poți copia, redistribui și adapta datele, inclusiv în scop comercial, cu condiția să menționezi SAVA Logistic, să incluzi un link către licență și să precizezi dacă ai făcut modificări.

Cum se face atribuirea

Este suficient un rând lângă locul în care folosești datele, de exemplu:

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

Cine este citat pentru ce: SAVA Logistic compilează și publică calendarul, dar regula din spatele fiecărei date aparține autorității menționate în câmpul officialSource al acelei intrări. Pentru regula în sine, citează acea autoritate.

lastVerified indică luna în care datele țării respective au fost verificate față de sursa oficială. Arată doar când s-a făcut verificarea: înainte de a planifica în funcție de o dată, confirm-o la autoritate.