Pro vývojáře
Dokumentace API
Jedna adresa, klíč v hlavičce, odpověď v JSON. Ceny v Kč/kWh po čtvrthodinách na 72 hodin: vyhlášené ceny OTE, dál predikce s pásmem nejistoty, a když máte zadaný tarif, i koncová cena s distribucí a DPH.
- Základní adresa
- https://spotovyradar.cz/api/v1
- Autorizace
- Authorization: Bearer sr_live_…
- Limit
- 240 požadavků za hodinu na klíč
- Klíč
- v účtu, s předplatným Smart Home
Autorizace
Klíč posílejte jen v hlavičce Authorization, nikdy v adrese. Co je v adrese, zůstává v logech serverů po cestě a v historii prohlížeče. Klíč ukážeme jen jednou při založení, u nás je uložený jen jeho otisk. Zrušení v účtu platí okamžitě.
Výhled cen: GET /forecast
| Parametr | Výchozí | Význam |
|---|---|---|
hours | 72 | délka výhledu v hodinách (1–72) |
strategy | balanced | co je v poli price: balanced medián, conservative horní okraj pásma, aggressive dolní okraj |
cURL
curl -H "Authorization: Bearer $SPOTRADAR_KEY" \
"https://spotovyradar.cz/api/v1/forecast?hours=24"
Python
import os
import httpx
response = httpx.get(
"https://spotovyradar.cz/api/v1/forecast",
params={"hours": 24},
headers={"Authorization": f"Bearer {os.environ['SPOTRADAR_KEY']}"},
)
response.raise_for_status()
for point in response.json()["points"]:
print(point["start"], point["price"])
JavaScript
const response = await fetch("https://spotovyradar.cz/api/v1/forecast?hours=24", {
headers: { Authorization: `Bearer ${process.env.SPOTRADAR_KEY}` },
});
const { points } = await response.json();
const cheapest = points.reduce((a, b) => (b.price < a.price ? b : a));
Odpověď
{
"format": "spotovyradar-forecast/1",
"generated_at": "2026-10-30T12:07:00Z",
"forecast_issued_at": "2026-10-30T12:05:00Z",
"official_until": "2026-10-31T23:00:00Z",
"currency": "CZK",
"unit": "CZK/kWh",
"interval_minutes": 15,
"strategy": "balanced",
"has_pv": false,
"has_final": true,
"vat_included": true,
"now": { … stejný tvar jako body … },
"points": [
{
"start": "2026-10-30T12:00:00Z",
"end": "2026-10-30T12:15:00Z",
"source": "official",
"spot": 2.1342,
"spot_p10": 2.1342,
"spot_p90": 2.1342,
"p_negative": 0.0,
"band": "normal",
"price": 5.0412,
"final": 5.0412,
"final_p10": 5.0412,
"final_p90": 5.0412
}
]
}
start,end: čtvrthodina v UTC. Den v Česku má 96 čtvrthodin, při změně času 92 nebo 100.source:official= vyhlášená cena OTE,forecast= naše predikce.spot,spot_p10,spot_p90: spotová cena bez DPH a pásmo, ve kterém skutečná cena leží zhruba v 8 z 10 případů. U vyhlášené ceny jsou všechny tři stejné.final*: koncová cena podle tarifu v účtu (jen s tarifem,vat_includedříká, zda s DPH).p_negative: pravděpodobnost záporné spotové ceny.band:negative,cheap,normalneboexpensivejako semafor na webu.pv_kwh: odhad výroby vaší FVE za čtvrthodinu, když ji máte v Mých zařízeních (has_pv).
Formát spotovyradar-forecast/1 je stabilní: pole se nepřejmenují ani neodeberou bez nové verze formátu.
Rozvrh pro relé: GET /schedule
Kdy zapnout bojler, nabíječku nebo jiné relé. Bez kwh vrátí každý den hours nejlevnějších hodin a všechny čtvrthodiny pod below Kč/kWh. S kwh naplánuje cílové nabíjení: nejlevnější čtvrthodiny, které dodají kwh do baterie výkonem kw do nejbližší hodiny until místního času.
| Parametr | Výchozí | Význam |
|---|---|---|
hours | 3 | nejlevnějších hodin denně (0–24) |
below | — | zapnout i vždy, když je cena pod touto hodnotou (Kč/kWh) |
kwh | — | cílové nabíjení: energie do baterie (0,5–200 kWh) |
kw | z účtu, jinak 11 | výkon nabíječky (0,5–50 kW) |
until | — | hotovo do hodiny místního času (0–23, 0 = kdykoli ve výhledu) |
efficiency | z účtu, jinak 1 | účinnost nabíjení (0,5–1), ze sítě se odebere kwh / efficiency |
strategy | balanced | jako u /forecast |
curl -H "Authorization: Bearer $SPOTRADAR_KEY" \
"https://spotovyradar.cz/api/v1/schedule?kwh=30&kw=11&until=7&efficiency=0.9"
Odpověď (spotovyradar-schedule/1) má intervals[] se start a end v UTC, totéž v unix jako dvojice sekund pro skripty Shelly, platnost valid_until a u cílového nabíjení blok charge (energie ze sítě, cena, zda se nabití do termínu vejde).
Chyby
Chyba je JSON {"error": "…", "message": "…"} s kódem stavu:
| Stav | error | Co dělat |
|---|---|---|
| 401 | unauthorized | chybí nebo neplatí klíč v hlavičce |
| 402 | subscription_required | API je v tarifu Smart Home, předplatné skončilo |
| 422 | — | parametr mimo povolený rozsah |
| 429 | rate_limited | překročený limit, počkejte podle hlavičky Retry-After |
| 503 | unavailable | dočasný výpadek, zkuste to za chvíli |
Hotové integrace
- Home Assistant: integrace Spotový Radar v HACS s entitami ceny, pásma a nejlevnějšího okna, nebo REST senzor bez instalace.
- evcc: tarif „Spotový Radar“ v nastavení evcc (šablona
spotovyradar), ve starších verzíchtype: custom. - Shelly: skript, který si stahuje
/schedulea přepíná relé.
Návody krok za krokem s doplněným klíčem najdete v účtu, kde vidíte i využití API po dnech. Predikce je statistický odhad, ne garantovaná cena: řízení nastavte tak, aby výpadek API nic neohrozil.