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:

UhrzeitPreis
13:004,2 ct/kWh
14:003,8 ct/kWh
19:0018,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

FeldEinfach erklärt
forecast_statusok = alles gut; sonst siehe Fehler
horizon_hoursWie viele Stunden liegen in der Liste?
timezoneIn welcher Zeitzone sind die Uhrzeiten?
forecast[].startBeginn der Stunde (ISO-8601)
forecast[].price_ct_kwh / price_eur_mwhModell-/Punktpreis — immer die verbindliche Zahl für Anzeige/Steuerung. Wird nie überschrieben — auch nicht durch Dump-Risiko
forecast[].price_sourceHerkunft: today / day_ahead (Börse) oder forecast_d0forecast_d6 (KI)
forecast[].dump_riskOptional: 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_p0…1 geschätzte Dump-Wahrscheinlichkeit; Kompat-Feld, 0 wenn kein Risiko
forecast[].dump_risk_pctImmer 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_mwhImmer 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_scopeOptional: z. B. midday_11_16
forecast[].dump_risk_versionOptional: 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

NameBedeutungBeispiel
timezoneZeitzone für die ZeitstempelEurope/Vienna

Häufige Fehler

  • Feld timestamp erwarten → korrekt heißt es start
  • Preise in €/MWh erwarten, obwohl das Feld price_ct_kwh heißt → Cent/kWh
  • Nur den HTTP-Status prüfen → immer forecast_status und access lesen
  • dump_scenario_ct_kwh als überschriebenen price_ct_kwh interpretieren → zwei getrennte Felder, eine Zahl wählen
  • Annehmen, dump_scenario_ct_kwh gäbe es nur im Forecast → wird auch in decision[]/forecast[] bei Decision, Slot-Stunden bei Windows und charge_hours bei 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
Mit SpotpriceAPI starten

Community registrieren oder Code-Beispiele mit Ihrem persönlichen Key.

Live API-Status