SaveTrack API

SaveTrack API

Prepojte SaveTrack s účtovníctvom, ERP alebo vlastným systémom. Vozidlá, vodiči, jazdy, kniha jázd a tankovania cez jednoduché REST API.

REST · JSONOpenAPI 3.1v1len na čítanieHTTPS

Začíname Referencia endpointov

Začíname

SaveTrack API sprístupňuje dáta vašej flotily ďalším systémom: účtovníctvu, ERP, mzdám alebo vlastnému reportingu. Je to REST API nad HTTPS, odpovede sú v JSON a celé API je opísané v štandarde OpenAPI 3.1. Verzia v1 je len na čítanie, dáta v SaveTracku nemení.

  1. Prihláste sa do SaveTracku hlavným účtom a otvorte Nastavenia → API.
  2. Kľúč pomenujte (napr. „Pohoda“), vyberte oprávnenia a potvrďte ho heslom do účtu a kryptoheslom.
  3. Kľúč sa zobrazí iba raz. Uložte ho do svojho systému ako tajomstvo, nie do zdrojového kódu.
  4. Pošlite prvý požiadavok, napríklad zoznam vozidiel (príklady nižšie).
Základná adresahttps://admin.savetrack.sk/api/v1
FormátJSON, kódovanie UTF-8
Identifikátoryreťazce, napr. 4fK2pQ9xZa (nie čísla)
Jednotkyvzdialenosť v km (*_km), objem v litroch (*_l), suma v centoch (*_cents) s menou ISO 4217, čas ISO 8601

Autentifikácia

Každý požiadavok musí obsahovať kľúč v hlavičke Authorization:

Authorization: Bearer st_live_…

Kľúč v adrese (napr. ?api_key=) API odmietne, lebo adresy sa ukladajú do logov a histórie prehliadača. Kľúč patrí k účtu, ktorý ho vytvoril. Vidí len dáta tohto účtu.

Nastavenie kľúčaVýznam
OprávneniaKu ktorým údajom má kľúč prístup. Pozri ďalšiu časť.
Platnosť doNepovinné. Po tomto dni kľúč prestane fungovať.
Povolené IP adresyNepovinné. Kľúč funguje len z uvedených adries alebo rozsahov (CIDR, napr. 198.51.100.0/24).

Výmena kľúča: vytvorte nový kľúč, nastavte ho vo svojom systéme a starý potom zrušte. Zrušenie platí okamžite.

Oprávnenia

OprávnenieSprístupní
vozidla:read/vozidla: názov, ŠPZ, VIN, značka, palivo, stav tachometra
vodici:read/vodici: meno, priezvisko, e-mail, telefón
jazdy:read/jazdy: čas, km, tachometer, typ jazdy, účel
kniha-jazd:read/kniha-jazd a /kniha-jazd/nahrady: kniha jázd vozidla za obdobie so súhrnom (vrátane ŠPZ vozidla a mena vodiča, ktoré zákon vyžaduje) a náhrady za palivo
tankovania:read/tankovania: dátum, čerpacia stanica, litre, cena, tachometer
adresy:readadresy a GPS súradnice začiatku a konca jazdy v /jazdy a /kniha-jazd

Pri novom kľúči sú zapnuté všetky okrem adresy:read. Kľúču dajte len tie, ktoré váš systém potrebuje. Endpoint /ucet nepotrebuje žiadne oprávnenie.

Šifrované údaje a adresy

SaveTrack ukladá ŠPZ, mená vodičov a polohy šifrované kľúčom, ktorý sa odomyká vaším kryptoheslom. Kryptoheslo pri vytvorení kľúča odomkne kópiu šifrovacieho kľúča, ktorá je viazaná na tento API kľúč. API preto vracia tieto údaje čitateľné. Kryptoheslo sa nikde neukladá a po zrušení API kľúča sa jeho kópia šifrovacieho kľúča zmaže.

Adresy a súradnice jázd odchádzajú do vášho systému nešifrované. Zapnite adresy:read len vtedy, keď ich naozaj potrebujete, napríklad pre knihu jázd v účtovníctve.

Pri súkromných jazdách API adresy ani súradnice nikdy nevracia, polia majú hodnotu null. Takto to vyžaduje aj ochrana osobných údajov vodiča.

Stránkovanie a synchronizácia

Zoznamy vracajú najviac limit záznamov (1–200, predvolene 100) zoradených podľa ID a pole next_od_id. Ďalšiu stránku získate tak, že jeho hodnotu pošlete ako od_id. Keď je next_od_id rovné null, ste na konci.

{
  "data": [ … ],
  "next_od_id": "9QzL0bW1xY"
}

Na priebežnú synchronizáciu použite zmenene_od. Vráti len záznamy zmenené od daného času, napr. /jazdy?zmenene_od=2026-11-01T00:00:00+01:00. Uložte si čas začiatku synchronizácie a pri ďalšej ho pošlite. Jazdy sa dajú ďalej filtrovať cez od, do (dátum začiatku jazdy), vozidlo_id a vodic_id.

/kniha-jazd nestránkuje. Vráti celé obdobie jedného vozidla (najviac 1 rok) s poradovými číslami jázd, stavom tachometra na začiatku a konci obdobia a súhrnom km podľa typu jazdy.

Chyby

Pri chybe API vráti HTTP stav a vždy rovnaký tvar tela:

{
  "error": "The given data was invalid.",
  "code": "validation_failed",
  "fields": { "od": ["The od field is required."] }
}
StavcodeVýznam a čo robiť
401unauthenticatedChýba kľúč, je zlý, zrušený, po platnosti alebo z nepovolenej IP. Opakovanie nepomôže.
403forbiddenKľúč nemá oprávnenie. Názov chýbajúceho oprávnenia je v error.
404not_foundZáznam neexistuje alebo patrí inému účtu.
422validation_failedZlé parametre. Podrobnosti sú v fields.
429rate_limitedPrekročený limit. Počkajte toľko sekúnd, koľko udáva hlavička Retry-After.
5xxserver_errorChyba na našej strane. Opakujte neskôr s rastúcim odstupom.

Každá odpoveď má hlavičku X-Request-Id. Keď nás kontaktujete kvôli konkrétnemu požiadavku, pošlite nám ju.

Limity

LimitHodnota
Požiadavky na kľúč60 za minútu
Požiadavky na účet2 000 za deň (súčet všetkých kľúčov účtu)
Záznamov na stránku200
Obdobie knihy jázd1 rok

Odpovede obsahujú hlavičky X-RateLimit-Limit a X-RateLimit-Remaining. API je súčasťou služby SaveTrack bez príplatku.

Príklady

Kľúč majte v premennej prostredia SAVETRACK_API_KEY.

Prvý požiadavok: zoznam vozidiel

curl -s "https://admin.savetrack.sk/api/v1/vozidla" \
  -H "Authorization: Bearer $SAVETRACK_API_KEY"

Kniha jázd vozidla za mesiac

curl -s "https://admin.savetrack.sk/api/v1/kniha-jazd?vozidlo_id=4fK2pQ9xZa&od=2026-10-01&do=2026-10-31" \
  -H "Authorization: Bearer $SAVETRACK_API_KEY"

Priebežná synchronizácia so stránkovaním a limitmi

import os, time, requests

BASE = "https://admin.savetrack.sk/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['SAVETRACK_API_KEY']}"}

def fetch_all(resource, **params):
    params = {"limit": 200, **params}
    while True:
        r = requests.get(f"{BASE}/{resource}", params=params, headers=HEADERS, timeout=30)
        if r.status_code == 429:
            time.sleep(int(r.headers.get("Retry-After", "60")))
            continue
        r.raise_for_status()
        body = r.json()
        yield from body["data"]
        if not body["next_od_id"]:
            return
        params["od_id"] = body["next_od_id"]

last_sync = load_last_sync()          # čas poslednej úspešnej synchronizácie
for trip in fetch_all("jazdy", zmenene_od=last_sync):
    upsert_trip(trip["id"], trip)

Bezpečnosť

Zmeny

DátumVerziaZmena
2026-111.0Prvé vydanie: vozidlá, vodiči, jazdy, kniha jázd, náhrady, tankovania.

V rámci v1 pridávame len spätne kompatibilné zmeny (nové polia, nové endpointy). Nekompatibilná zmena dostane novú verziu v2 a v1 bude ešte istý čas fungovať. Nové polia v odpovediach preto váš systém má ignorovať, nie odmietať.

Podpora

S napojením vám radi pomôžeme. Napíšte na info@savetrack.sk alebo volajte +421 908 918 880. Uveďte, aký systém pripájate, a pri chybe aj X-Request-Id. Strojovo čitateľná špecifikácia je na https://admin.savetrack.sk/api/openapi.json. Dá sa z nej vygenerovať klient pre väčšinu jazykov alebo ju importovať do Postmana či Insomnie.

Referencia endpointov