Gridweaver LogoGridweaver
Öffentliche Beta

API Dokumentation

Die Gridweaver Energy Decision API liefert auf Basis aktueller Spotmarkt-Strompreise (aWATTar DE) eine Lade- und Entladeempfehlung für Batteriespeicher, Wallboxen, Wärmepumpen, Balkonkraftwerke, Smart-Home-Geräte, E-Auto-Flotten und Gewerbe. Eine Anfrage, eine Empfehlung — kein Cloud-Zwang, kein Vendor-Lock-in.

Quickstart

In unter 5 Minuten einsatzbereit: Konto erstellen, API Key generieren, erste Anfrage stellen.

  1. 1.Konto erstellen unter gridweaver.de/signup
  2. 2.Im Dashboard unter API Key Verwaltung einen Key erstellen und sicher speichern
  3. 3.Erste Anfrage an /api/v1/decision stellen
cURL
curl -G https://gridweaver.de/api/v1/decision \
  -H "Authorization: Bearer gw_<dein_api_key>" \
  --data-urlencode "capacity=10" \
  --data-urlencode "soc=45" \
  --data-urlencode "rate=3.7"

Authentifizierung

Alle Anfragen an /api/v1/decision und /api/v1/keys erfordern einen gültigen API Key im Authorization-Header.

HTTP Header
Authorization: Bearer gw_<dein_api_key>
Sicherheitshinweis: API Keys werden als SHA-256-Hash gespeichert und können nach der Erstellung nicht mehr im Klartext abgerufen werden. Speichere deinen Key sofort nach der Erstellung.

Endpunkte

MethodePfadAuthBeschreibung
GET/api/v1/decisionAPI KeyLade-/Entladeempfehlung berechnen
GET/api/v1/pricesAktuelle Stundenpreise abrufen
GET/api/v1/keysSessionAPI Keys auflisten
POST/api/v1/keysSessionNeuen API Key erstellen
DELETE/api/v1/keysSessionAPI Key widerrufen

Parameter

Query-Parameter für GET /api/v1/decision:

ParameterTypPflichtBeschreibungBeispiel
capacitynumberJaBatteriekapazität in kWh10
socnumberJaAktueller Ladestand in % (0–100)45
ratenumberJaMaximale Laderate in kW3.7

Antwortformat

JSON
{
  "status": "success",
  "timestamp": "2026-07-09T14:00:00Z",
  "locked": false,
  "decision": {
    "action": "CHARGE_NOW",
    "confidence": 0.87,
    "until": "15:00",
    "expected_saving_eur": 0.42
  }
}

CHARGE_NOW

Jetzt laden — Preis ist günstig

DISCHARGE_NOW

Jetzt entladen — Preis ist hoch

WAIT

Abwarten — Preis im Normalbereich

Fehlerbehandlung

StatusBedeutung
401Ungültiger oder fehlender API Key
429Rate Limit überschritten — max. 30 Anfragen/Minute
500Interner Serverfehler — bitte erneut versuchen

Codebeispiele

Python

Python
import requests

API_KEY = "gw_..."
BASE   = "https://gridweaver.de/api/v1"

resp = requests.get(
    f"{BASE}/decision",
    headers={"Authorization": f"Bearer {API_KEY}"},
    params={"capacity": 10, "soc": 45, "rate": 3.7},
    timeout=10,
)
data = resp.json()
action = data["decision"]["action"]  # "CHARGE_NOW" | "DISCHARGE_NOW" | "WAIT"
print(f"Empfehlung: {action}")

Bash / Shell

Bash
#!/usr/bin/env bash
API_KEY="gw_..."
RESPONSE=$(wget -qO- \
  --header="Authorization: Bearer $API_KEY" \
  "https://gridweaver.de/api/v1/decision?capacity=10&soc=45&rate=3.7")
ACTION=$(echo "$RESPONSE" | grep -o '"action":"[^"]*"' | cut -d'"' -f4)
echo "Empfehlung: $ACTION"

Fertige Polling-Skripte für Shelly-Geräte sind im GitHub-Repository verfügbar.

Rate Limits

Die API erlaubt maximal 30 Anfragen pro Minute pro IP-Adresse. Für typische Polling-Intervalle (alle 5–15 Minuten) ist dieses Limit mehr als ausreichend. Bei Überschreitung wird HTTP 429 zurückgegeben; der Retry-After: 60-Header gibt an, wann wieder Anfragen möglich sind.