Zum Hauptinhalt springen

Customer API - Cloud-Zugriff

Ihre Energiedaten, von überall abrufbar

Mit der Customer API rufen Sie die Werte Ihrer Anlagen über das Internet ab, ohne Zugang zu Ihrem Heimnetz. Sie melden sich mit denselben Zugangsdaten an wie im Portal und erhalten aktuelle Werte oder Verlaufsdaten im Format JSON.

Für Fachleute

Diese Seite richtet sich an Entwickler und technisch versierte Anwender. Für die normale Nutzung Ihres SOLIO brauchen Sie die API nicht.

Wofür brauche ich das?​

  • Eigene Auswertungen: Verlaufsdaten regelmäßig abholen und in Excel, einer Datenbank oder einem Dashboard auswerten.
  • Anbindung an andere Dienste: Aktuelle Werte wie Ladezustand oder Netzbezug in eigene Anwendungen übernehmen.
  • Mehrere Anlagen: Werte aller Anlagen abfragen, auf die Ihr Konto Zugriff hat.

Die Customer API kann nur lesen. Steuern lässt sich Ihre Anlage darüber nicht. Für den Zugriff im eigenen Netzwerk gibt es außerdem die lokalen Schnittstellen REST/JSON und Modbus/TCP.

Auf einen Blick​

Basisadressehttps://api.soltegra.io
AnmeldungHTTP Basic Authentication mit Ihren Portal-Zugangsdaten (E-Mail-Adresse und Passwort)
Methodenur GET
AntwortformatJSON
Freischaltung

Der Zugriff über die Customer API wird pro Anlage freigeschaltet. Fehlt eine Anlage in der Liste oder erhalten Sie den Fehler 403, wenden Sie sich an SOLTEGRA.

Schnelleinstieg​

Erreichbarkeit prüfen

curl https://api.soltegra.io/health antwortet mit OK. Dafür brauchen Sie keine Anmeldung.

Anlagen abfragen

curl -u "ihre@email.de:passwort" https://api.soltegra.io/edges liefert alle Anlagen, auf die Sie Zugriff haben, mit ihrer Kennung (id).

Werte abrufen

Mit der Kennung fragen Sie aktuelle Werte ab, zum Beispiel /edges/IHRE-ANLAGE/live?channels=_sum/EssSoc,_sum/GridActivePower.

Die Endpunkte​

EndpunktLiefert
GET /Übersicht der Endpunkte und der aktuell gültigen Grenzen
GET /edgesAlle Anlagen, auf die Sie Zugriff haben
GET /edges/{id}/channelsAlle Messwerte, die für eine Anlage verfügbar sind
GET /edges/{id}/live?channels=…Aktuelle Werte
GET /edges/{id}/history?channels=…&from=…&to=…Verlaufsdaten für einen Zeitraum
GET /healthErreichbarkeit der API, ohne Anmeldung

Anlagen abfragen​

GET /edges liefert alle Anlagen, auf die Sie Zugriff haben.

curl -u "ihre@email.de:passwort" https://api.soltegra.io/edges
{
"count": 1,
"edges": [
{
"id": "edge0",
"comment": "Mein Zuhause",
"producttype": "SOLTEGRA SEMS",
"version": "2026.10.1",
"online": true,
"role": "OWNER"
}
]
}
FeldBedeutung
idKennung der Anlage, brauchen Sie für alle weiteren Abfragen
commentBezeichnung der Anlage
producttypeProdukttyp
versionInstallierte Softwareversion
onlinetrue, wenn die Anlage gerade verbunden ist
roleIhre Rolle bei dieser Anlage, z. B. OWNER oder GUEST

Verfügbare Messwerte​

GET /edges/{id}/channels liefert die Adressen aller Messwerte, die die Anlage zuletzt übertragen hat. Die Anlage muss dafür online sein.

{
"edgeId": "edge0",
"online": true,
"count": 156,
"channels": ["_sum/EssActivePower", "_sum/EssSoc", "_sum/GridActivePower"]
}

Aktuelle Werte​

GET /edges/{id}/live mit dem Parameter channels: kommagetrennte Liste von Messwerten.

curl -u "ihre@email.de:passwort" \
"https://api.soltegra.io/edges/edge0/live?channels=_sum/EssSoc,_sum/GridActivePower,_sum/ProductionActivePower"
{
"edgeId": "edge0",
"online": true,
"timestamp": "2026-10-15T14:30:00+02:00",
"data": {
"_sum/EssSoc": 75,
"_sum/GridActivePower": -1500,
"_sum/ProductionActivePower": 3200
}
}

Verlaufsdaten​

GET /edges/{id}/history mit diesen Parametern:

ParameterBedeutung
channelsKommagetrennte Liste von Messwerten (Pflicht)
fromBeginn im Format ISO 8601, z. B. 2026-10-14T00:00:00+02:00 (Pflicht)
toEnde im Format ISO 8601, nicht in der Zukunft (Pflicht)
resolutionAbstand der Werte in Sekunden, 60 bis 86400 (optional)
curl -u "ihre@email.de:passwort" \
"https://api.soltegra.io/edges/edge0/history?channels=_sum/EssSoc,_sum/GridActivePower&from=2026-10-14T00:00:00%2B02:00&to=2026-10-14T23:59:59%2B02:00"
Pluszeichen kodieren

Das + in der Zeitzone muss in der Adresse als %2B geschrieben werden.

{
"edgeId": "edge0",
"from": "2026-10-14T00:00:00+02:00",
"to": "2026-10-14T23:59:59+02:00",
"resolution": 900,
"dataPoints": 96,
"data": [
{ "timestamp": "2026-10-14T00:00:00+02:00", "_sum/EssSoc": 80, "_sum/GridActivePower": 500 },
{ "timestamp": "2026-10-14T00:15:00+02:00", "_sum/EssSoc": 78, "_sum/GridActivePower": 450 }
]
}

Geben Sie keine resolution an, wählt die API den Abstand selbst:

ZeitraumAbstand der Werte
bis 1 Stunde1 Minute
bis 6 Stunden5 Minuten
bis 1 Tag15 Minuten
bis 1 Woche1 Stunde
länger4 Stunden

Wichtige Messwerte​

AdresseBeschreibungEinheit
_sum/EssSocLadezustand des Speichers%
_sum/EssActivePowerSpeicherleistung, positiv = Entladen, negativ = LadenW
_sum/GridActivePowerNetzleistung, positiv = Bezug, negativ = EinspeisungW
_sum/ProductionActivePowerErzeugungW
_sum/ConsumptionActivePowerVerbrauchW
_sum/EssActiveChargeEnergyZählerstand SpeicherbeladungWh
_sum/EssActiveDischargeEnergyZählerstand SpeicherentladungWh
_sum/GridBuyActiveEnergyZählerstand NetzbezugWh
_sum/GridSellActiveEnergyZählerstand NetzeinspeisungWh
_sum/ProductionActiveEnergyZählerstand ErzeugungWh
_sum/ConsumptionActiveEnergyZählerstand VerbrauchWh

Alle weiteren verfügbaren Messwerte liefert /edges/{id}/channels.

Grenzen und Sicherheit​

Die API schützt sich mit Grenzen gegen Überlastung. Die aktuell gültigen Werte liefert GET /. Standardmäßig gilt:

GrenzeStandardwert
Anfragen pro Minute und Benutzer30
Messwerte pro Anfrage50
Längster Zeitraum bei Verlaufsdaten31 Tage
Datenpunkte pro Antwort10.000

Nach mehreren fehlgeschlagenen Anmeldungen hintereinander (standardmäßig fünf) wird die anfragende IP-Adresse für einige Minuten gesperrt.

Zugangsdaten schützen

Die API nutzt Ihre Portal-Zugangsdaten. Speichern Sie Ihr Passwort nicht im Klartext in Skripten, sondern zum Beispiel in einer Umgebungsvariablen, und geben Sie Skripte mit Zugangsdaten nicht weiter.

Fehlermeldungen​

Fehler kommen ebenfalls als JSON:

{ "error": true, "status": 401, "message": "Authentication failed" }
CodeBedeutung
400Fehlerhafte Anfrage, zum Beispiel fehlende Parameter oder zu großer Zeitraum
401Anmeldung fehlgeschlagen
403Kein Zugriff auf diese Anlage, Anlage nicht freigeschaltet oder IP vorübergehend gesperrt
404Endpunkt nicht gefunden
405Nur GET ist erlaubt
429Zu viele Anfragen, kurz warten
500Interner Fehler
503Dienst vorübergehend nicht erreichbar, später erneut versuchen

Beispiel mit Python​

import os
import requests

API = "https://api.soltegra.io"
AUTH = (os.environ["SOLTEGRA_USER"], os.environ["SOLTEGRA_PASSWORD"])

edges = requests.get(f"{API}/edges", auth=AUTH, timeout=30).json()

for edge in edges["edges"]:
if not edge["online"]:
print(edge["comment"], "ist offline")
continue
live = requests.get(
f"{API}/edges/{edge['id']}/live",
params={"channels": "_sum/EssSoc,_sum/GridActivePower"},
auth=AUTH,
timeout=30,
).json()
soc = live["data"].get("_sum/EssSoc")
grid = live["data"].get("_sum/GridActivePower", 0)
print(f"{edge['comment']}: Ladezustand {soc} %, Netz {grid} W")

Die Bibliothek requests kodiert die Parameter automatisch, auch das + in Zeitangaben.

Häufige Fragen​

Ich erhalte keine Werte für einen Messwert. Prüfen Sie die Schreibweise, Groß- und Kleinschreibung zählt. Welche Messwerte es gibt, zeigt /edges/{id}/channels. Ist die Anlage offline, gibt es keine aktuellen Werte.

Wie bekomme ich Daten für mehr als 31 Tage? Teilen Sie den Zeitraum in mehrere Abfragen auf und fügen Sie die Ergebnisse zusammen.

Kann ich die Daten in Excel öffnen? Ja. Wandeln Sie die JSON-Antwort zum Beispiel mit Python und pandas in eine CSV-Datei um und öffnen Sie diese in Excel.