SaveTrack API

SaveTrack API

Propojte SaveTrack s účetnictvím, ERP nebo vlastním systémem. Vozidla, řidiči, jízdy, kniha jízd a tankování přes jednoduché REST API.

REST · JSONOpenAPI 3.1v1jen pro čteníHTTPS

Začínáme Reference endpointů

Začínáme

SaveTrack API zpřístupňuje data vaší flotily dalším systémům: účetnictví, ERP, mzdám nebo vlastnímu reportingu. Je to REST API nad HTTPS, odpovědi jsou v JSON a celé API je popsané ve standardu OpenAPI 3.1. Verze v1 je jen pro čtení, data v SaveTracku nemění.

  1. Přihlaste se do SaveTracku hlavním účtem a otevřete Nastavení → API.
  2. Klíč pojmenujte (např. „Pohoda“), vyberte oprávnění a potvrďte ho heslem k účtu a kryptoheslem.
  3. Klíč se zobrazí pouze jednou. Uložte ho do svého systému jako tajemství, ne do zdrojového kódu.
  4. Pošlete první požadavek, například seznam vozidel (příklady níže).
Základní adresahttps://admin.savetrack.cz/api/v1
FormátJSON, kódování UTF-8
Identifikátoryřetězce, např. 4fK2pQ9xZa (ne čísla)
Jednotkyvzdálenost v km (*_km), objem v litrech (*_l), částka v haléřích/centech (*_cents) s měnou ISO 4217, čas ISO 8601

Autentizace

Každý požadavek musí obsahovat klíč v hlavičce Authorization:

Authorization: Bearer st_live_…

Klíč v adrese (např. ?api_key=) API odmítne, protože adresy se ukládají do logů a historie prohlížeče. Klíč patří k účtu, který ho vytvořil. Vidí jen data tohoto účtu.

Nastavení klíčeVýznam
OprávněníK jakým údajům má klíč přístup. Viz další část.
Platnost doNepovinné. Po tomto dni klíč přestane fungovat.
Povolené IP adresyNepovinné. Klíč funguje jen z uvedených adres nebo rozsahů (CIDR, např. 198.51.100.0/24).

Výměna klíče: vytvořte nový klíč, nastavte ho ve svém systému a starý potom zrušte. Zrušení platí okamžitě.

Oprávnění

OprávněníZpřístupní
vozidla:read/vozidla: název, SPZ, VIN, značka, palivo, stav tachometru
vodici:read/vodici: jméno, příjmení, e-mail, telefon
jazdy:read/jazdy: čas, km, tachometr, typ jízdy, účel
kniha-jazd:read/kniha-jazd a /kniha-jazd/nahrady: kniha jízd vozidla za období se souhrnem (včetně SPZ vozidla a jména řidiče, které zákon vyžaduje) a náhrady za palivo
tankovania:read/tankovania: datum, čerpací stanice, litry, cena, tachometr
adresy:readadresy a GPS souřadnice začátku a konce jízdy v /jazdy a /kniha-jazd

U nového klíče jsou zapnutá všechna kromě adresy:read. Klíči dejte jen ta, která váš systém potřebuje. Endpoint /ucet nepotřebuje žádné oprávnění.

Šifrované údaje a adresy

SaveTrack ukládá SPZ, jména řidičů a polohy šifrované klíčem, který se odemyká vaším kryptoheslem. Kryptoheslo při vytvoření klíče odemkne kopii šifrovacího klíče, která je vázaná na tento API klíč. API proto vrací tyto údaje čitelné. Kryptoheslo se nikde neukládá a po zrušení API klíče se jeho kopie šifrovacího klíče smaže.

Adresy a souřadnice jízd odcházejí do vašeho systému nešifrované. Zapněte adresy:read jen tehdy, když je opravdu potřebujete, například pro knihu jízd v účetnictví.

U soukromých jízd API adresy ani souřadnice nikdy nevrací, pole mají hodnotu null. Tak to vyžaduje i ochrana osobních údajů řidiče.

Stránkování a synchronizace

Seznamy vracejí nejvýše limit záznamů (1–200, výchozí 100) seřazených podle ID a pole next_od_id. Další stránku získáte tak, že jeho hodnotu pošlete jako od_id. Když je next_od_id rovno null, jste na konci.

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

Pro průběžnou synchronizaci použijte zmenene_od. Vrátí jen záznamy změněné od daného času, např. /jazdy?zmenene_od=2026-11-01T00:00:00+01:00. Uložte si čas začátku synchronizace a při další ho pošlete. Jízdy lze dále filtrovat přes od, do (datum začátku jízdy), vozidlo_id a vodic_id.

/kniha-jazd nestránkuje. Vrátí celé období jednoho vozidla (nejvýše 1 rok) s pořadovými čísly jízd, stavem tachometru na začátku a konci období a souhrnem km podle typu jízdy.

Chyby

Při chybě API vrátí HTTP stav a vždy stejný tvar těla:

{
  "error": "The given data was invalid.",
  "code": "validation_failed",
  "fields": { "od": ["The od field is required."] }
}
StavcodeVýznam a co dělat
401unauthenticatedChybí klíč, je špatný, zrušený, po platnosti nebo z nepovolené IP. Opakování nepomůže.
403forbiddenKlíč nemá oprávnění. Název chybějícího oprávnění je v error.
404not_foundZáznam neexistuje nebo patří jinému účtu.
422validation_failedŠpatné parametry. Podrobnosti jsou v fields.
429rate_limitedPřekročený limit. Počkejte tolik sekund, kolik udává hlavička Retry-After.
5xxserver_errorChyba na naší straně. Opakujte později s rostoucím odstupem.

Každá odpověď má hlavičku X-Request-Id. Když nás kontaktujete kvůli konkrétnímu požadavku, pošlete nám ji.

Limity

LimitHodnota
Požadavky na klíč60 za minutu
Požadavky na účet2 000 za den (součet všech klíčů účtu)
Záznamů na stránku200
Období knihy jízd1 rok

Odpovědi obsahují hlavičky X-RateLimit-Limit a X-RateLimit-Remaining. API je součástí služby SaveTrack bez příplatku.

Příklady

Klíč mějte v proměnné prostředí SAVETRACK_API_KEY.

První požadavek: seznam vozidel

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

Kniha jízd vozidla za měsíc

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

Průběžná synchronizace se stránkováním a limity

import os, time, requests

BASE = "https://admin.savetrack.cz/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 poslední úspěšné synchronizace
for trip in fetch_all("jazdy", zmenene_od=last_sync):
    upsert_trip(trip["id"], trip)

Bezpečnost

Změny

DatumVerzeZměna
2026-111.0První vydání: vozidla, řidiči, jízdy, kniha jízd, náhrady, tankování.

V rámci v1 přidáváme jen zpětně kompatibilní změny (nová pole, nové endpointy). Nekompatibilní změna dostane novou verzi v2 a v1 bude ještě nějakou dobu fungovat. Nová pole v odpovědích proto má váš systém ignorovat, ne odmítat.

Podpora

S napojením vám rádi pomůžeme. Napište na info@savetrack.sk nebo volejte +421 908 918 880. Uveďte, jaký systém připojujete, a při chybě i X-Request-Id. Strojově čitelná specifikace je na https://admin.savetrack.cz/api/openapi.json. Lze z ní vygenerovat klienta pro většinu jazyků nebo ji importovat do Postmanu či Insomnie.

Reference endpointů