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

ParametrVýchozíVýznam
hours72délka výhledu v hodinách (1–72)
strategybalancedco 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, normal nebo expensive jako 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.

ParametrVýchozíVýznam
hours3nejlevně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)
kwz účtu, jinak 11výkon nabíječky (0,5–50 kW)
until—hotovo do hodiny místního času (0–23, 0 = kdykoli ve výhledu)
efficiencyz účtu, jinak 1účinnost nabíjení (0,5–1), ze sítě se odebere kwh / efficiency
strategybalancedjako 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:

StaverrorCo dělat
401unauthorizedchybí nebo neplatí klíč v hlavičce
402subscription_requiredAPI je v tarifu Smart Home, předplatné skončilo
422—parametr mimo povolený rozsah
429rate_limitedpřekročený limit, počkejte podle hlavičky Retry-After
503unavailabledoč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ích type: custom.
  • Shelly: skript, který si stahuje /schedule a 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.