Data o vozidlech přímo ve vašem systému
REST API nad Registrem silničních vozidel ČR a databází technických prohlídek. Historie STK se závadami, stav tachometru s detekcí stočení, vlastníci, převod SPZ na VIN a vozový park firmy podle IČO – ve strojově čitelném JSON.
/v1/vehicles/{vin}{
"data": {
"vin": "TMBHG41U942882738",
"make": "ŠKODA",
"model": "OCTAVIA",
"summary": {
"inspections_count": 18,
"last_odometer_km": 332511,
"odometer_rollback": true
}
}
}
Úvod
API je určené firmám, které pracují s ojetými vozidly nebo spravují vozový park a chtějí data z registru používat automaticky – bez ručního vyhledávání na webu.
API je součástí tarifu Business
Tarif Business zahrnuje vše z Premium, hromadné vyhledávání, přehled flotily a přístup k API. Bez automatického obnovování.
Základní adresa
https://kontrola-stk.cz/api/v1
Všechny endpointy používají metodu GET, komunikace probíhá výhradně přes HTTPS a odpovědi jsou v kódování UTF-8.
Rychlý start
- Aktivujte tarif Businessna stránce předplatného. Platba přes GoPay, faktura přijde e-mailem.
- Vytvořte API klíčv účtu v sekci API klíče. Celý klíč se zobrazí jen jednou – uložte si ho.
- Pošlete první požadaveks klíčem v hlavičce
Authorization:
curl -s "https://kontrola-stk.cz/api/v1/vehicles/TMBEFF61317338900?include=inspections,odometer" \
-H "Authorization: Bearer $KSTK_API_KEY"
<?php
$ch = curl_init('https://kontrola-stk.cz/api/v1/vehicles/TMBEFF61317338900?include=inspections,odometer');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KSTK_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status !== 200) {
throw new RuntimeException($body['error']['message'] ?? 'Chyba API', $status);
}
print_r($body['data']);
const res = await fetch('https://kontrola-stk.cz/api/v1/vehicles/TMBEFF61317338900?include=inspections,odometer', {
headers: { Authorization: `Bearer ${process.env.KSTK_API_KEY}` },
});
const body = await res.json();
if (!res.ok) {
throw new Error(`${body.error.code}: ${body.error.message}`);
}
console.log(body.data);
import os
import requests
res = requests.get(
"https://kontrola-stk.cz/api/v1/vehicles/TMBEFF61317338900?include=inspections,odometer",
headers={"Authorization": f"Bearer {os.environ['KSTK_API_KEY']}"},
timeout=30,
)
body = res.json()
if not res.ok:
raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
print(body["data"])
Autentizace
Každý požadavek musí obsahovat platný API klíč. Klíč má tvar kstk_live_ následovaný 40 znaky a posíláte ho v jedné z hlaviček:
Authorization: Bearer kstk_live_3fa94c2e…
# nebo
X-API-Key: kstk_live_3fa94c2e…
- Klíče vytváříte a zneplatňujete v účtu na stránce API klíče. Najednou můžete mít až 5 aktivních klíčů – doporučujeme samostatný klíč pro každý systém.
- Klíč nikdy neposílejte v URL (API ho v adrese nepřijímá) a nevkládejte ho do kódu, který běží v prohlížeči nebo mobilní aplikaci. Volejte API ze svého serveru.
- Uchováváme pouze otisk (hash) klíče – ztracený klíč nelze obnovit, jen vytvořit nový.
- Limity se počítají za celý účet, ne za jednotlivé klíče.
- Pokud tarif Business vyprší, API vrací
403 business_required. Po prodloužení předplatného začnou stávající klíče znovu fungovat.
Limity a hlavičky
Po překročení limitu API vrátí 429 Too Many Requests s hlavičkou Retry-After. Do limitu se nezapočítávají požadavky odmítnuté kvůli neplatnému klíči, chybějícímu tarifu nebo překročení limitu, ani chyby na naší straně (5xx). Každá odpověď obsahuje tyto hlavičky:
| Hlavička | Význam |
|---|---|
X-RateLimit-Limit | Denní limit požadavků vašeho účtu (1 000). |
X-RateLimit-Remaining | Kolik požadavků vám dnes ještě zbývá. |
X-RateLimit-Reset | Unix timestamp obnovení denního limitu (půlnoc, Europe/Prague). |
X-RateLimit-Minute-Limit | Limit požadavků za posledních 60 sekund (60). |
X-RateLimit-Minute-Remaining | Zbývající požadavky v aktuálním minutovém okně. |
Retry-After | Jen u odpovědi 429 – za kolik sekund můžete požadavek zopakovat. |
X-Request-Id | Jedinečné ID požadavku (také v meta.request_id). Uveďte ho, když nás kontaktujete kvůli konkrétnímu volání. |
Formát odpovědí
Odpovědi mají vždy Content-Type: application/json; charset=utf-8 a jednotnou obálku. Úspěšná odpověď obsahuje data, chybová error; obě nesou meta s ID požadavku a časem vytvoření.
{
"data": {
"vin": "TMBHG41U942882738",
"…": "…"
},
"meta": {
"request_id": "req_4f1c2a9be07d3a51c6e2",
"generated_at": "2026-10-09T14:32:05+02:00"
}
}{
"error": {
"code": "not_found",
"message": "Vozidlo s VIN … nebylo v registru nalezeno."
},
"meta": {
"request_id": "req_4f1c2a9be07d3a51c6e2",
"generated_at": "2026-10-09T14:32:05+02:00"
}
}- Názvy polí jsou anglicky v
snake_case, textové hodnoty z registru zůstávají v češtině (např. barva, druh prohlídky). - Data jsou ve formátu
YYYY-MM-DD, časy v ISO 8601 s časovou zónou. - Chybějící údaje mají hodnotu
null, prázdné seznamy jsou[]. Pole v odpovědích můžeme v rámci verze v1 přidávat – vaše aplikace by měla neznámá pole ignorovat. - Výsledek prohlídky:
passed(způsobilé),passed_with_defects(způsobilé s vadami),failed(nezpůsobilé),repeat_required(opakovaná prohlídka). Závažnost závad:Alehká,Bvážná,Cnebezpečná.
Chyby
Stav požadavku poznáte podle HTTP kódu, konkrétní důvod podle error.code. Text v error.message je určen lidem a může se měnit – v kódu se rozhodujte podle error.code.
| HTTP | Kód | Význam |
|---|---|---|
| 400 | invalid_vin | VIN nemá platný formát (17 znaků, bez I, O, Q). |
| 400 | invalid_plate | Registrační značka nemá platný formát. |
| 400 | invalid_ico | IČO nemá platný formát. |
| 400 | invalid_parameter | Neplatná hodnota parametru dotazu (např. include, status). |
| 401 | missing_api_key | Požadavek neobsahuje API klíč. |
| 401 | invalid_api_key | API klíč neexistuje nebo je chybně zkopírovaný. |
| 401 | revoked_api_key | API klíč byl zneplatněn. |
| 403 | business_required | Účet nemá aktivní tarif Business (např. vypršelo předplatné). |
| 403 | account_blocked | Účet vlastníka klíče je zablokován. |
| 404 | not_found | Vozidlo, značka nebo IČO nebylo v registru nalezeno. |
| 429 | rate_limit_exceeded | Překročen minutový limit požadavků. |
| 429 | daily_limit_exceeded | Vyčerpán denní limit požadavků. |
| 500 | internal_error | Neočekávaná chyba na naší straně. |
| 502 | upstream_error | Zdroj dat (registr vozidel) je dočasně nedostupný. |
| 503 | not_available | Funkce je dočasně nedostupná. |
Při chybách 429, 502 a 503 doporučujeme opakovat požadavek s prodlevou (exponential backoff), u 429 podle hlavičky Retry-After.
/v1/vehicles/{vin}
Detail vozidla podle VIN
Vrátí kompletní záznam vozidla z registru: základní a technické údaje, registraci, historii technických prohlídek se závadami, vývoj tachometru s detekcí stočení, vlastníky a provozovatele, dovoz, vyřazení z provozu a výbavu. Základní údaje a souhrn (summary) jsou v odpovědi vždy.
Parametry
| Název | Umístění | Typ | Popis |
|---|---|---|---|
vin povinný |
cesta | string | VIN vozidla – 17 znaků, bez písmen I, O, Q. Velikost písmen nerozhoduje. |
include |
query | string | Čárkou oddělený seznam sekcí, které chcete vrátit: technical, registration, inspections, odometer, owners, imports, deregistrations, equipment. Bez parametru se vrací vše. Menší odpověď = rychlejší zpracování. |
Ukázka požadavku
curl -s "https://kontrola-stk.cz/api/v1/vehicles/TMBHG41U942882738" \
-H "Authorization: Bearer $KSTK_API_KEY"
<?php
$ch = curl_init('https://kontrola-stk.cz/api/v1/vehicles/TMBHG41U942882738');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KSTK_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status !== 200) {
throw new RuntimeException($body['error']['message'] ?? 'Chyba API', $status);
}
print_r($body['data']);
const res = await fetch('https://kontrola-stk.cz/api/v1/vehicles/TMBHG41U942882738', {
headers: { Authorization: `Bearer ${process.env.KSTK_API_KEY}` },
});
const body = await res.json();
if (!res.ok) {
throw new Error(`${body.error.code}: ${body.error.message}`);
}
console.log(body.data);
import os
import requests
res = requests.get(
"https://kontrola-stk.cz/api/v1/vehicles/TMBHG41U942882738",
headers={"Authorization": f"Bearer {os.environ['KSTK_API_KEY']}"},
timeout=30,
)
body = res.json()
if not res.ok:
raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
print(body["data"])
Ukázka odpovědi
{
"data": {
"vin": "TMBHG41U942882738",
"make": "ŠKODA",
"model": "OCTAVIA",
"variant": "SEALHX01 FM5",
"type": "ŠKODA OCTAVIA 1U / 1U",
"kind": "OSOBNÍ AUTOMOBIL",
"category": "M1",
"body": "AC KOMBI",
"status": {
"code": "registered",
"label": "PROVOZOVANÉ"
},
"first_registration": "2004-01-22",
"first_registration_cz": "2004-01-22",
"year": 2004,
"color": "ŠEDÁ-METAL",
"fuel": "NM",
"summary": {
"inspections_count": 18,
"defects_count": 26,
"owners_count": 9,
"last_inspection": "2026-03-12",
"last_result": "passed",
"next_inspection": "2028-03-11",
"next_inspection_days": 519,
"last_odometer_km": 332511,
"odometer_rollback": true
},
"engine": {
"code": "ALH",
"manufacturer": "VOLKSWAGEN, AG, WOLFSBURG, SRN",
"displacement_ccm": 1896,
"power_kw": 66,
"max_speed_kmh": 182,
"electric": false,
"hybrid": false
},
"emissions": {
"standard": "EURO 3",
"co2": "184 / 116 / 140",
"consumption": "6.8 / 4.3 / 5.2"
},
"dimensions": {
"length": 4613,
"width": 1731,
"height": 1510,
"wheelbase": 2500
},
"weights": {
"curb_kg": 1360,
"max_kg": 1875,
"max_trailer_braked_kg": 1300,
"max_trailer_unbraked_kg": 500
},
"seats": 5,
"registration": {
"plate": null,
"plate_type": "STD. SILNIČNÍ",
"tp_number": null,
"orv_number": "UBO690169",
"pcv": "3695492",
"purpose": "Běžný provoz",
"type_approval": "3460-445-02"
},
"inspections": [
{
"date": "2026-03-12",
"type": "Opakovaná",
"result_code": 1,
"result": "passed",
"result_label": "Způsobilé",
"odometer_km": 332511,
"next_inspection": "2028-03-11",
"station": {
"name": "DROUŽKOVICKÁ 476, 43141, ÚDLICE",
"code": "3536",
"city": "Údlice",
"region": "Ústecký kraj"
},
"protocol_number": "CZ-3536-26-03-0587",
"emission_check": true,
"defects": [
{
"code": "2.1.3.7.1",
"severity": "A",
"description": "Prachovky pohyblivých spojů pákového mechanismu řízení jsou poškozené."
}
]
},
{
"date": "2026-03-11",
"type": "Pravidelná",
"result_code": 2,
"result": "passed_with_defects",
"result_label": "Způsobilé s vadami",
"odometer_km": 332500,
"next_inspection": "2026-04-10",
"station": {
"name": "DROUŽKOVICKÁ 476, 43141, ÚDLICE",
"code": "3536",
"city": "Údlice",
"region": "Ústecký kraj"
},
"protocol_number": "CZ-3536-26-03-0492",
"emission_check": true,
"defects": [
{
"code": "8.2.1.2.5",
"severity": "B",
"description": "U vozidel s OBD sdělovač MI (MIL) se po zapnutí zapalování nerozsvítí nebo po nastartování vozidla indikuje závadu."
},
{
"code": "4.1.4.3.2",
"severity": "B",
"description": "Nepovolená úprava světlometu."
}
]
}
],
"odometer": {
"last_km": 332511,
"records": 18,
"km_per_year": 11578,
"rollback_detected": true,
"rollbacks": [
{
"date": "2016-01-25",
"previous_date": "2016-01-18",
"from_km": 2131035,
"to_km": 213366
}
]
},
"owners": [
{
"relation": "owner",
"subject_type": "person",
"name": null,
"ico": null,
"from": "2026-04-29",
"to": null,
"current": true
},
{
"relation": "owner",
"subject_type": "company",
"name": "AutoESA a.s.",
"ico": "25627538",
"from": "2022-07-08",
"to": "2022-07-25",
"current": false
},
{
"relation": "operator",
"subject_type": "company",
"name": "Grundfos Sales Czechia and Slovakia s.r.o.",
"ico": "61975265",
"from": "2004-01-22",
"to": "2008-03-05",
"current": false
}
],
"imports": [],
"deregistrations": [],
"equipment": [
{
"type": "TAŽNÉ ZAŘÍZENÍ",
"from": null,
"to": null
}
]
},
"meta": {
"request_id": "req_4f1c2a9be07d3a51c6e2",
"generated_at": "2026-10-09T14:32:05+02:00"
}
}
Ukázka odpovědi je zkrácená (2 z 18 prohlídek, 3 z 19 záznamů vlastníků). Jména fyzických osob API nevrací – u nich je name vždy null.
/v1/vehicles/{vin}/risk
Hodnocení rizik vozidla
Automatické vyhodnocení rizikových signálů z historie vozidla – například podezření na stočení tachometru, vážné a nebezpečné závady, neúspěšné prohlídky, propadlou STK nebo vysoký počet vlastníků. Výsledkem je skóre 0–100 (vyšší = rizikovější), úroveň low / medium / high, seznam zjištění se závažností info / warning / danger a přehled pozitivních zjištění.
Parametry
| Název | Umístění | Typ | Popis |
|---|---|---|---|
vin povinný |
cesta | string | VIN vozidla (17 znaků). |
Ukázka požadavku
curl -s "https://kontrola-stk.cz/api/v1/vehicles/TMBHG41U942882738/risk" \
-H "Authorization: Bearer $KSTK_API_KEY"
<?php
$ch = curl_init('https://kontrola-stk.cz/api/v1/vehicles/TMBHG41U942882738/risk');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KSTK_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status !== 200) {
throw new RuntimeException($body['error']['message'] ?? 'Chyba API', $status);
}
print_r($body['data']);
const res = await fetch('https://kontrola-stk.cz/api/v1/vehicles/TMBHG41U942882738/risk', {
headers: { Authorization: `Bearer ${process.env.KSTK_API_KEY}` },
});
const body = await res.json();
if (!res.ok) {
throw new Error(`${body.error.code}: ${body.error.message}`);
}
console.log(body.data);
import os
import requests
res = requests.get(
"https://kontrola-stk.cz/api/v1/vehicles/TMBHG41U942882738/risk",
headers={"Authorization": f"Bearer {os.environ['KSTK_API_KEY']}"},
timeout=30,
)
body = res.json()
if not res.ok:
raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
print(body["data"])
Ukázka odpovědi
{
"data": {
"vin": "TMBHG41U942882738",
"score": 45,
"level": "high",
"flags": [
{
"code": "serious_defects",
"severity": "warning",
"title": "Vážné závady v historii",
"detail": "4 vážné závady (kategorie B), naposledy 11.03.2026: Nepovolená úprava světlometu; U vozidel s OBD sdělovač MI (MIL) se po zapnutí zapalování…."
},
{
"code": "frequent_owner_changes",
"severity": "warning",
"title": "Časté změny vlastníka",
"detail": "8 vlastníků v registru, z toho 5 za posledních 5 let; průměrná doba držení 2,8 roku."
},
{
"code": "short_current_ownership",
"severity": "warning",
"title": "Současný vlastník má vozidlo krátce",
"detail": "Současný vlastník je zapsán teprve od 29.04.2026 (méně než 6 měsíců)."
},
{
"code": "odometer_inconsistency",
"severity": "info",
"title": "Nesrovnalost v zápisu tachometru",
"detail": "Při prohlídce 25.01.2016 je zapsán stav, který neodpovídá okolním záznamům (pravděpodobně chyba zápisu na stanici STK)."
}
],
"positives": [
"Bez podezření na stočení tachometru (14 záznamů)",
"Platná STK do 11.03.2028",
"Žádná neúspěšná technická kontrola",
"Vozidlo pochází z českého trhu (bez dovozu)"
]
},
"meta": {
"request_id": "req_4f1c2a9be07d3a51c6e2",
"generated_at": "2026-10-09T14:32:05+02:00"
}
}
Hodnocení je orientační a nenahrazuje fyzickou prohlídku vozidla. Seznam kódů zjištění se může rozšiřovat – neznámé kódy proto ve své aplikaci zpracujte obecně podle severity.
/v1/plates/{spz}
Převod SPZ na VIN
Najde vozidlo podle registrační značky a vrátí jeho VIN se základními údaji. Mezery a pomlčky ve značce se ignorují. Pro API neplatí hodinový limit webového převodu – požadavky se počítají do limitů API.
404 nebo 502.Parametry
| Název | Umístění | Typ | Popis |
|---|---|---|---|
spz povinný |
cesta | string | Registrační značka, 5–10 znaků (např. 4T81234 nebo 4T8 1234). |
Ukázka požadavku
curl -s "https://kontrola-stk.cz/api/v1/plates/4T81234" \
-H "Authorization: Bearer $KSTK_API_KEY"
<?php
$ch = curl_init('https://kontrola-stk.cz/api/v1/plates/4T81234');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KSTK_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status !== 200) {
throw new RuntimeException($body['error']['message'] ?? 'Chyba API', $status);
}
print_r($body['data']);
const res = await fetch('https://kontrola-stk.cz/api/v1/plates/4T81234', {
headers: { Authorization: `Bearer ${process.env.KSTK_API_KEY}` },
});
const body = await res.json();
if (!res.ok) {
throw new Error(`${body.error.code}: ${body.error.message}`);
}
console.log(body.data);
import os
import requests
res = requests.get(
"https://kontrola-stk.cz/api/v1/plates/4T81234",
headers={"Authorization": f"Bearer {os.environ['KSTK_API_KEY']}"},
timeout=30,
)
body = res.json()
if not res.ok:
raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
print(body["data"])
Ukázka odpovědi
{
"data": {
"plate": "4T81234",
"vin": "TMBHG41U942882738",
"make": "ŠKODA",
"model": "OCTAVIA",
"category": "M1",
"fuel": "NM",
"color": "ŠEDÁ-METAL",
"first_registration": "2004-01-22",
"status": {
"code": "registered",
"label": "PROVOZOVANÉ"
}
},
"meta": {
"request_id": "req_4f1c2a9be07d3a51c6e2",
"generated_at": "2026-10-09T14:32:05+02:00"
}
}
Pro kompletní historii vozidla navažte voláním /vehicles/{vin} s vráceným VIN.
/v1/companies/{ico}/vehicles
Vozidla firmy podle IČO
Seznam vozidel, u kterých je nebo v minulosti byl subjekt s daným IČO zapsán jako vlastník či provozovatel. Příznak current označuje aktuální vztah, pole relations říká, zda jde o vlastnictví, provozování, nebo obojí. Aktuální vozidla jsou řazena první.
Parametry
| Název | Umístění | Typ | Popis |
|---|---|---|---|
ico povinný |
cesta | string | IČO subjektu (až 8 číslic, kratší se doplní nulami zleva). |
status |
query | string | Filtr: all (výchozí), current – jen aktuální vozidla, historical – jen dřívější. |
Ukázka požadavku
curl -s "https://kontrola-stk.cz/api/v1/companies/25596641/vehicles?status=current" \
-H "Authorization: Bearer $KSTK_API_KEY"
<?php
$ch = curl_init('https://kontrola-stk.cz/api/v1/companies/25596641/vehicles?status=current');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KSTK_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status !== 200) {
throw new RuntimeException($body['error']['message'] ?? 'Chyba API', $status);
}
print_r($body['data']);
const res = await fetch('https://kontrola-stk.cz/api/v1/companies/25596641/vehicles?status=current', {
headers: { Authorization: `Bearer ${process.env.KSTK_API_KEY}` },
});
const body = await res.json();
if (!res.ok) {
throw new Error(`${body.error.code}: ${body.error.message}`);
}
console.log(body.data);
import os
import requests
res = requests.get(
"https://kontrola-stk.cz/api/v1/companies/25596641/vehicles?status=current",
headers={"Authorization": f"Bearer {os.environ['KSTK_API_KEY']}"},
timeout=30,
)
body = res.json()
if not res.ok:
raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
print(body["data"])
Ukázka odpovědi
{
"data": {
"ico": "25596641",
"total": 2,
"current_count": 1,
"historical_count": 1,
"vehicles": [
{
"vin": "TMBDS23U939025601",
"make": "ŠKODA",
"model": "SUPERB",
"category": "M1",
"fuel": "NM",
"color": "ŠEDÁ-METAL",
"year": 2002,
"first_registration": "2002-11-06",
"status": {
"code": "registered",
"label": "PROVOZOVANÉ"
},
"current": true,
"relations": [
"operator"
],
"from": "2002-11-06",
"to": null
},
{
"vin": "WOL000031V7127033",
"make": "OPEL",
"model": "VECTRA CARAVAN",
"category": "M1",
"fuel": "BA 95 B",
"color": "MODRÁ-TMAVÁ",
"year": 1997,
"first_registration": "1997-01-01",
"status": {
"code": "terminated",
"label": "ZÁNIK"
},
"current": false,
"relations": [
"operator"
],
"from": "2002-02-01",
"to": "2003-06-30"
}
]
},
"meta": {
"request_id": "req_4f1c2a9be07d3a51c6e2",
"generated_at": "2026-10-09T14:32:05+02:00"
}
}
Hodnoty total, current_count a historical_count se vztahují ke všem vozidlům firmy bez ohledu na filtr.
/v1/usage
Čerpání limitů
Aktuální čerpání denního a minutového limitu vašeho účtu, platnost tarifu Business a informace o klíči, kterým jste se autentizovali. Hodí se pro monitoring integrace.
Endpoint nemá žádné parametry.
Ukázka požadavku
curl -s "https://kontrola-stk.cz/api/v1/usage" \
-H "Authorization: Bearer $KSTK_API_KEY"
<?php
$ch = curl_init('https://kontrola-stk.cz/api/v1/usage');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('KSTK_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status !== 200) {
throw new RuntimeException($body['error']['message'] ?? 'Chyba API', $status);
}
print_r($body['data']);
const res = await fetch('https://kontrola-stk.cz/api/v1/usage', {
headers: { Authorization: `Bearer ${process.env.KSTK_API_KEY}` },
});
const body = await res.json();
if (!res.ok) {
throw new Error(`${body.error.code}: ${body.error.message}`);
}
console.log(body.data);
import os
import requests
res = requests.get(
"https://kontrola-stk.cz/api/v1/usage",
headers={"Authorization": f"Bearer {os.environ['KSTK_API_KEY']}"},
timeout=30,
)
body = res.json()
if not res.ok:
raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
print(body["data"])
Ukázka odpovědi
{
"data": {
"plan": "business",
"subscription_valid_until": "2027-10-09T19:36:15+02:00",
"daily": {
"limit": 1000,
"used": 128,
"remaining": 872,
"resets_at": "2026-10-10T00:00:00+02:00"
},
"minute": {
"limit": 60,
"used": 3,
"remaining": 57
},
"key": {
"id": 12,
"name": "Skladový systém",
"prefix": "kstk_3fa94c2",
"created_at": "2026-09-01T10:15:00+02:00",
"last_used_at": "2026-10-09T14:31:58+02:00"
}
},
"meta": {
"request_id": "req_4f1c2a9be07d3a51c6e2",
"generated_at": "2026-10-09T14:32:05+02:00"
}
}
I tento požadavek se započítává do limitů. Pro průběžnou kontrolu stačí číst hlavičky X-RateLimit-* z běžných odpovědí.
OpenAPI a testování
Kompletní strojově čitelný popis API ve formátu OpenAPI 3.1 (schémata všech odpovědí, chyby, ukázky) najdete na adrese:
https://kontrola-stk.cz/api/openapi.json
Verze a změny
Verze API je součástí adresy (/api/v1). V rámci verze v1 provádíme jen zpětně kompatibilní změny – přidání nových endpointů, volitelných parametrů nebo polí v odpovědi. Nekompatibilní změny vydáme jako novou verzi s předstihem a předchozí verzi ponecháme po přechodnou dobu v provozu.
- Detail vozidla podle VIN s parametrem
include. - Hodnocení rizik vozidla.
- Převod SPZ na VIN a vozidla firmy podle IČO.
- Endpoint
/usage, hlavičkyX-RateLimit-*aX-Request-Id.
Podmínky použití
- Data pocházejí z Registru silničních vozidel a informačního systému stanic technické kontroly, které zveřejňuje Ministerstvo dopravy ČR. Za jejich úplnost a správnost neodpovídáme; údaje mohou být oproti registru zpožděné.
- API slouží k vlastní podnikatelské činnosti držitele tarifu Business. Hromadné stahování a další prodej dat jako samostatné databáze není dovolen.
- Platí zásada fair use – limity jsou nastaveny pro běžný provoz. Při zjevném zneužití (např. sdílení klíče s třetími stranami) můžeme klíč zneplatnit.
- Osobní údaje fyzických osob API nevrací. Při zpracování dat dodržujte předpisy o ochraně osobních údajů (GDPR).
- Užívání API se řídí všeobecnými obchodními podmínkami.