Forecast API — die Strompreis-Liste Stunde für Stunde
GET /v1/forecast — 168h Stundenpreise (ct/kWh) für EPEX AT. In Loxone: Forecast-Guide. Offene REST-API für alle Systeme; Community 120 Anfragen/Tag (kostenlos).
Was macht diese Funktion?
Die Forecast-API liefert eine Preisliste für die Zukunft: für jede Stunde einen voraussichtlichen Spotpreis in Österreich (Markt EPEX AT).
Stellen Sie sich eine Excel-Tabelle vor:
| Uhrzeit | Preis |
|---|---|
| 13:00 | 4,2 ct/kWh |
| 14:00 | 3,8 ct/kWh |
| 19:00 | 18,5 ct/kWh |
Genau das bekommen Sie als JSON — maschinenlesbar für App, Loxone oder Skript.
Wann nutzen?
- Sie wollen Preise anzeigen
- Sie rechnen die Ladestrategie selbst
- Sie testen, ob Ihr Key funktioniert
Nicht nötig, wenn Sie nur „die 3 günstigsten Stunden“ wollen → dann eher Windows oder Hours Demand.
Endpoint
GET https://api.spotpriceapi.com/v1/forecast
Authentifizierung
Optional: Header X-API-Key: sf_live_YOUR_KEY Ohne Key: Basic (kürzerer Horizont). Mit Community-Key: bis zu einer Woche voraus (168 Stunden).
Schritt für Schritt
1. Key bereithalten (siehe Erste Schritte) 2. GET-Request senden 3. forecast_status prüfen (ok = Preisreihe nutzbar) 4. Array forecast durchgehen: start + price_ct_kwh (Modell-/Punktpreis — für Steuerung nutzen, nie überschrieben) 5. Optional: jede Stunde trägt zusätzlich dump_risk_pct (0…100, immer eine Zahl) und dump_scenario_ct_kwh (Dump-Preis wenn pct > 0, sonst Punktpreis — immer nutzbar). Wählen Sie eine Zahl für Anzeige/Berechnung — Modellpreis (price_ct_kwh) oder Dump-Szenario (dump_scenario_*), nie beide mischen
Minimal-Beispiel
curl "https://api.spotpriceapi.com/v1/forecast?timezone=Europe/Vienna" \
-H "X-API-Key: sf_live_YOUR_KEY"
Antwort — die wichtigsten Felder
| Feld | Einfach erklärt |
|---|---|
forecast_status | ok = alles gut; sonst siehe Fehler |
horizon_hours | Wie viele Stunden liegen in der Liste? |
timezone | In welcher Zeitzone sind die Uhrzeiten? |
forecast[].start | Beginn der Stunde (ISO-8601) |
forecast[].price_ct_kwh / price_eur_mwh | Modell-/Punktpreis — immer die verbindliche Zahl für Anzeige/Steuerung. Wird nie überschrieben — auch nicht durch Dump-Risiko |
forecast[].price_source | Herkunft: today / day_ahead (Börse) oder forecast_d0…forecast_d6 (KI) |
forecast[].dump_risk | Optional: LOW/MEDIUM/HIGH/EXTREME — Risikostufe eines starken Mittags-Dumps. Nur auf KI-Stunden (forecast_d*), typisch 11–16 Wien; Börse null |
forecast[].dump_risk_p | 0…1 geschätzte Dump-Wahrscheinlichkeit; Kompat-Feld, 0 wenn kein Risiko |
forecast[].dump_risk_pct | Immer vorhanden, 0…100 — dieselbe Wahrscheinlichkeit wie dump_risk_p, aber als Prozent. 0 wenn kein Risiko (auch auf allen Börsenstunden) |
forecast[].dump_scenario_ct_kwh / dump_scenario_eur_mwh | Immer nutzbar wenn ein Preis existiert: bei pct > 0 lead-aware Blend Richtung price × dump_risk_pct / 100 (D+1 voll, D+2/D+3+ abgeschwächt; nie über dem Modellpreis), sonst der Punktpreis. Ob Dump aktiv ist, zeigt dump_risk_pct (oder dump_risk). Scope typisch Mittag 11–16 — Abend bleibt unberührt |
forecast[].dump_risk_scope | Optional: z. B. midday_11_16 |
forecast[].dump_risk_version | Optional: Scorer-Version (z. B. live_v0_heuristic) |
{
"forecast_status": "ok",
"horizon_hours": 168,
"timezone": "Europe/Vienna",
"forecast": [
{
"start": "2026-08-01T13:00:00+02:00",
"price_ct_kwh": 4.2,
"price_source": "forecast_d1",
"dump_risk": "HIGH",
"dump_risk_p": 0.72,
"dump_risk_pct": 72.0,
"dump_scenario_ct_kwh": 3.02,
"dump_risk_scope": "midday_11_16",
"dump_risk_version": "live_v0_heuristic"
},
{
"start": "2026-08-01T08:00:00+02:00",
"price_ct_kwh": 9.15,
"price_source": "day_ahead",
"dump_risk": null,
"dump_risk_p": 0.0,
"dump_risk_pct": 0.0,
"dump_scenario_ct_kwh": 9.15
}
]
}
Beispiel lesen: Am 1.8. von 13:00–14:00 Uhr (Wien) erwarten wir 4,2 ct/kWh (Modellpreis, unverändert). Zusätzlich liefert die API immer dump_risk_pct (hier 72,0) und dump_scenario_ct_kwh (3,02 ct/kWh) als Dump-Illustration. Um 08:00 Uhr (Börse, day_ahead) ist dump_risk_pct 0 und dump_scenario_ct_kwh gleich dem Punktpreis (9,15) — Clients können das Feld immer lesen. Ihre App wählt eine Zahl (Modell oder Szenario) für Anzeige/Rechnung. In Loxone: Forecast-Guide (Parse v18 → O1/O2 = Modellpreis jetzt / +1 h).
Optionaler Parameter
| Name | Bedeutung | Beispiel |
|---|---|---|
timezone | Zeitzone für die Zeitstempel | Europe/Vienna |
Häufige Fehler
- Feld
timestamperwarten → korrekt heißt esstart - Preise in €/MWh erwarten, obwohl das Feld
price_ct_kwhheißt → Cent/kWh - Nur den HTTP-Status prüfen → immer
forecast_statusundaccesslesen dump_scenario_ct_kwhals überschriebenenprice_ct_kwhinterpretieren → zwei getrennte Felder, eine Zahl wählen- Annehmen,
dump_scenario_ct_kwhgäbe es nur im Forecast → wird auch indecision[]/forecast[]bei Decision, Slot-Stunden bei Windows undcharge_hoursbei Hours Demand mitgeführt
Nächste Schritte
- Decision — fertige Ampel-Signale statt Rohpreise
- Windows — günstigste Stunden auswählen lassen
- Loxone Forecast — Preise (+ optional Dump-Risk-Code) im Miniserver
- Code Samples — fertige Snippets im Login-Bereich
Community registrieren oder Code-Beispiele mit Ihrem persönlichen Key.