Tibber · GraphQL · Schritt für Schritt

Tibber Token erstellen, sicher speichern und testen

So erhältst du deinen persönlichen Access-Token für die Tibber GraphQL API, prüfst den Zugriff und nutzt ihn für deine eigenen Energieprojekte.

Smartphone mit Energie-Dashboard und digitalem Schlüssel vor einem Haus mit Solaranlage und Batteriespeicher.
Ein digitaler Schlüssel verbindet Energieanwendungen mit Daten für smarte Projekte. Symbolbild · tiny-tool.de.

Du möchtest Tibber-Strompreise in einem eigenen Skript, deinem Smart Home oder in Zeus Charge Control nutzen? Dafür brauchst du einen Zugang zur passenden Schnittstelle. Für eigene Projekte bietet Tibber einen persönlichen Access-Token für seine GraphQL API an.

Hier erfährst du, wo du ihn findest, wie du ihn testest und worauf es beim sicheren Umgang ankommt. Außerdem schauen wir uns an, wie sich die GraphQL API von der neueren Data API unterscheidet.

Dein Token ist ein geheimer Schlüssel

Wer ihn besitzt, kann innerhalb seiner Berechtigungen auf deine Tibber-Daten zugreifen. Behandle ihn wie ein Passwort und teile ihn nicht in Chats, Screenshots, Logs oder öffentlichen Repositories.

Das Wichtigste in einer Minute

  • Melde dich mit deinem eigenen Tibber-Konto im Developer Portal an und öffne den Bereich für Access-Tokens.
  • Erstelle dort einen persönlichen Token für die GraphQL API und speichere ihn geschützt.
  • Teste ihn im offiziellen API Explorer mit Load personal token und einer kleinen Abfrage.
  • Für Strompreise und Zeus nutzt du die GraphQL API; die neuere Data API hat einen eigenen OAuth-Zugang.

Was ist der Tibber Access-Token?

Ein Access-Token ist ein Zugangsschlüssel für eine Programmierschnittstelle. Der persönliche Token, oft Personal Access Token oder kurz PAT genannt, erlaubt einer eigenen Anwendung den Zugriff auf die für dein Tibber-Konto freigegebenen Daten und Funktionen. Welche Informationen verfügbar sind, hängt unter anderem vom Konto, den Berechtigungen und dem jeweiligen Zuhause ab.

Bei der GraphQL API wird der Token als Bearer Token im HTTP-Header Authorization: Bearer … übermittelt. Du meldest dich damit gegenüber der Schnittstelle an; die gewährten Berechtigungen bestimmen, welche Daten du abrufen darfst.

GraphQL API und Data API: zwei unterschiedliche Zugänge

Die Tibber GraphQL API stellt unter anderem Preis- und Verbrauchsdaten bereit. Für eigene Projekte unterstützt sie persönliche Tokens; Anwendungen für weitere Nutzer können auch einen OAuth-Client verwenden. Die neuere Data API konzentriert sich auf Gerätedaten und verwendet OAuth 2.0. Persönliche GraphQL-Tokens funktionieren dort nicht. Tibber-Preisdaten gehören laut Data-API-Dokumentation nicht zu deren Umfang.

1. Persönlichen Tibber Token erstellen

Du brauchst ein eigenes Tibber-Konto und Zugriff auf das Tibber Developer Portal. Für persönliche Kontodaten musst du mit deinem eigenen Konto angemeldet sein – der Demo-Zugang enthält nur Testdaten.

  1. Öffne die Seite für Access-Tokens im Developer Portal und melde dich mit deinen Tibber-Zugangsdaten an.
  2. Öffne gegebenenfalls den Bereich Access Tokens und erstelle dort einen persönlichen Token. Bezeichnungen und Anordnung können sich ändern.
  3. Falls du Berechtigungen auswählen kannst, beschränke sie auf die Daten und Funktionen, die deine Anwendung benötigt.
  4. Kopiere den Token und speichere ihn geschützt, zum Beispiel in einem Passwortmanager oder einem Secret-Store. Schließe die Seite erst, wenn du ihn sicher abgelegt hast.
  5. Prüfe anschließend den Zugang mit dem Explorer oder der Anwendung, für die du den Token erstellt hast.

Falls der Token nicht erneut angezeigt wird oder du ihn verloren hast, erstelle einen neuen und entferne den nicht mehr benötigten Zugang im Portal. Eine feste automatische Laufzeit solltest du nicht voraussetzen; prüfe die Angaben und Verwaltungsoptionen in deinem Konto.

2. Token im API Explorer testen

Der offizielle Tibber API Explorer ist der einfachste Einstieg. Er läuft im Browser auf Tibbers eigener Seite. Melde dich dort mit deinem Konto an und wähle Load personal token. Für einen Test ohne persönliche Daten gibt es separat Load demo token.

Füge links diese Abfrage ein und starte sie mit der Ausführen-Schaltfläche:

GraphQL · einfacher Verbindungstest
{
  viewer {
    name
  }
}

Wenn der Zugriff funktioniert und die nötige Berechtigung vorliegt, erscheint rechts ein JSON-Ergebnis mit data und deinem Namen. Achte auch auf ein mögliches Feld errors: GraphQL kann Fehler in der Antwort melden, selbst wenn die HTTP-Anfrage erfolgreich war. Teile die Antwort nur, nachdem du persönliche Daten entfernt hast.

Der Explorer ist ein Werkzeug des API-Anbieters. Eigene Webseiten oder Browser-Apps sollten deinen persönlichen Token dagegen nicht als fest eingebauten Schlüssel ausliefern. Für eigene Anwendungen gehört er in eine geschützte serverseitige Umgebung.

Optional: Test mit Python

Wenn du lieber lokal testest: Speichere das folgende Beispiel als tibber-test.py und starte es mit Python 3. Es nutzt nur die Standardbibliothek und fragt den Token ohne sichtbare Eingabe ab. Die Eingabe bleibt dennoch während der Ausführung im Arbeitsspeicher; gib die Antwort nicht ungeprüft weiter.

Python 3 · lokaler Verbindungstest
import getpass
import json
import urllib.error
import urllib.request

token = getpass.getpass("Tibber-Token: ").strip()
if not token:
    raise SystemExit("Kein Token eingegeben.")

body = json.dumps({"query": "{ viewer { name } }"}).encode("utf-8")
request = urllib.request.Request(
    "https://api.tibber.com/v1-beta/gql",
    data=body,
    headers={
        "Authorization": "Bearer " + token,
        "Content-Type": "application/json",
        "Accept": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=10) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise SystemExit(f"HTTP-Fehler: {error.code}")
except urllib.error.URLError as error:
    raise SystemExit(f"Verbindung fehlgeschlagen: {error.reason}")

if result.get("errors"):
    print("GraphQL meldet Fehler:", result["errors"])
else:
    print("Antwort:", result.get("data"))

Du erhältst bei Erfolg den Namen aus deinem Konto. Für dauerhafte Automationen brauchst du zusätzlich eine geschützte Konfiguration, sinnvolle Fehlerbehandlung und eine zur Anwendung passende Zugriffskontrolle.

3. Aktuelle Strompreise und Viertelstundenwerte abfragen

Mit der folgenden Abfrage kannst du im Explorer den aktuellen Preis sowie die verfügbaren Werte für heute und morgen ansehen. QUARTER_HOURLY fordert ausdrücklich Viertelstundenwerte an:

GraphQL · Preisabfrage
{
  viewer {
    homes {
      id
      currentSubscription {
        priceInfo(resolution: QUARTER_HOURLY) {
          current { total currency startsAt }
          today { total currency startsAt }
          tomorrow { total currency startsAt }
        }
      }
    }
  }
}

Die Ergebnisse hängen von deinem Zuhause, deinem Vertrag und der Datenverfügbarkeit ab. Die Werte für morgen können zunächst fehlen. startsAt kennzeichnet den Beginn des jeweiligen Preisintervalls; beachte bei der Verarbeitung die Zeitzone. Bei mehreren Einträgen unter homes wähle das richtige Zuhause anhand seiner ID.

Tibbers GraphQL-Referenz beschreibt das Auflösungsargument; ohne ausdrückliche Auswahl solltest du nicht von Viertelstundenwerten ausgehen. Die Unterstützung in einer konkreten Anwendung hängt von deren Version und Implementierung ab. Frage Daten nicht unnötig häufig ab und berücksichtige die Rate-Limits der API.

Preise richtig einordnen: Achte auf die Währung im Ergebnis und die Angaben deines Vertrags. Einen Überblick über dynamische Tarife findest du in unserem Leitfaden zu dynamischen Stromtarifen und Börsenpreisen.

4. Tibber mit Zeus Charge Control verbinden

Zeus Charge Control kann Tibber als Preisquelle verwenden und Ladeentscheidungen für einen kompatiblen Batteriespeicher unterstützen. Hinterlege deinen Tibber-Token in der geschützten Konfiguration deiner verwendeten Zeus-Version und wähle Tibber als Preisquelle. Die genaue Bezeichnung des Konfigurationsfeldes und die unterstützten Preisintervalle entnimmst du der mitgelieferten Konfigurationsvorlage und der aktuellen Projekt-Dokumentation.

Für eine sonnenBatterie kommt ein zweiter Zugang hinzu: Der Tibber-Token ist für die Tibber-API gedacht; der Sonnen-Token gehört zur lokalen Batterieschnittstelle. Wie du Letzteren findest und für Zeus einrichtest, steht in der Anleitung SonnenBatterie Access-Token finden.

Steuerung bewusst einrichten

Prüfe, ob deine Anlage und die notwendigen Schnittstellen für die gewünschte Steuerung freigegeben sind. Die Write API der sonnenBatterie ist nicht für jede Konfiguration verfügbar. Kontrolliere Einstellungen und Ladeverhalten, bevor du eine Automatisierung dauerhaft nutzt.

So bleibt dein Token geschützt

  • Vertraulich speichern: Passwortmanager oder Secret-Store nutzen; Konfigurationsdateien nur für berechtigte Nutzer lesbar machen.
  • Serverseitig verwenden: Keine Tokens in JavaScript für Besucher, Apps, öffentliche Repositories oder Container-Images einbauen.
  • Logs und Screenshots prüfen: Authorization-Header, Konfigurationswerte und persönliche API-Antworten vor dem Teilen entfernen.
  • Umgebungsvariablen bewusst einsetzen: Sie vermeiden fest eingebaute Zugangsdaten, sind aber kein eigenständiger Tresor. Dienste, Prozesse und Diagnosedaten können sie unter Umständen offenlegen.
  • Bei Verdacht sofort handeln: Den betroffenen Token im Portal entfernen oder widerrufen, einen neuen erstellen und die Anwendung aktualisieren. Ein späteres Entfernen aus einem Commit macht einen bereits veröffentlichten Token nicht wieder geheim.

Wenn der Zugriff nicht funktioniert

  • Demo-Daten statt deines Kontos: Prüfe, ob du mit dem richtigen Tibber-Konto angemeldet bist und im Explorer Load personal token gewählt hast.
  • 401 oder fehlender Zugriff: Kontrolliere Token, Endpunkt und Header. Kopierte Leerzeichen oder Zeilenumbrüche können stören. Ein widerrufener oder ungültiger Token muss ersetzt werden.
  • 403 oder fehlende Daten: Prüfe die gewährten Berechtigungen, das Zuhause und den verfügbaren Vertrag. Die konkrete Ursache ergibt sich aus der API-Antwort; Statuscodes allein erklären nicht jeden Fehler.
  • HTTP erfolgreich, aber keine Daten: Prüfe das GraphQL-Feld errors und mögliche null-Werte. Nicht jedes Konto hat für jedes Zuhause eine aktive Subscription.
  • Keine Preise für morgen: Sie können noch nicht bereitstehen. Später erneut abrufen und leere Ergebnisse in der Anwendung abfangen.
  • 429: Anfragen reduzieren, Antworten zwischenspeichern und bei Bedarf mit begrenzten Wiederholungen und Wartezeit erneut versuchen.
  • Im Explorer geht es, in Zeus nicht: Prüfe, ob die tatsächlich gestartete Anwendung die richtige Konfiguration und den Token erhält. Sensible Werte dabei nicht in Logs ausgeben.

Häufige Fragen

Brauche ich einen Tibber Pulse für den Token?

Für das Erstellen eines persönlichen Tokens und eine einfache GraphQL-Abfrage ist kein Pulse nötig. Für Live-Messwerte brauchst du eine geeignete unterstützte Messlösung und die passenden Voraussetzungen. Mehr dazu im Beitrag Energieverbrauch mit Tibber Pulse überwachen.

Ist der Tibber Token dasselbe wie mein Passwort?

Nein. Dein Passwort dient der Kontoanmeldung; der Token wird bei API-Anfragen verwendet. Beide sind vertraulich.

Kann ich den Token für die Data API verwenden?

Nein. Die Data API unterstützt laut Tibber keine persönlichen GraphQL-Tokens. Sie benötigt einen eigenen OAuth-Client und einen OAuth-Flow. Details stehen in der Data-API-Dokumentation zur Authentifizierung.

Was mache ich, wenn mein Token versehentlich öffentlich wurde?

Widerrufe oder entferne ihn schnellstmöglich, erstelle einen Ersatz und aktualisiere die betroffenen Anwendungen. Entferne anschließend das Geheimnis auch aus Dateien, Logs und gegebenenfalls der Versionshistorie.

Fazit

Mit einem persönlichen Tibber Token kannst du die GraphQL API für deine eigenen Energieprojekte nutzen. Der Explorer hilft dir beim ersten Test; für den dauerhaften Betrieb sind eine geschützte Speicherung, passende Berechtigungen und ein sparsamer Umgang mit API-Abfragen entscheidend. Wenn du zusätzlich eine sonnenBatterie mit Zeus Charge Control verbinden möchtest, benötigst du deren lokalen Token separat.

Quellen und weiterführende Links

Quellen und technische Angaben geprüft am 28. Oktober 2026. Oberflächen und Schnittstellen können sich ändern.

Tibber, sonnen und die genannten Produktnamen sind Marken der jeweiligen Inhaber. tiny-tool.de und Zeus Charge Control sind unabhängige Angebote.

Transparenzhinweis


Transparenzhinweis:
Die Inhalte auf tiny-tool.de werden sorgfältig recherchiert, redaktionell geprüft und regelmäßig aktualisiert. Quellen und Zitate werden möglichst nachvollziehbar angegeben. Dennoch übernehmen wir keine Garantie für Richtigkeit, Vollständigkeit oder Aktualität der bereitgestellten Informationen. Irrtümer sind nicht ausgeschlossen.

Redaktion und Einsatz von KI: Bei der Erstellung von Inhalten können digitale Werkzeuge – darunter auch KI-basierte Assistenzsysteme – unterstützend eingesetzt werden, etwa bei Recherche, Strukturierung, sprachlicher Überarbeitung, Übersetzung, Codeanalyse oder visueller Gestaltung. Veröffentlichte Inhalte werden redaktionell geprüft, bearbeitet und von Guido Zeuner freigegeben. Auswahl, Einordnung und Veröffentlichung liegen beim Menschen. KI-Ausgaben gelten nicht als eigenständige Quellen. KI-Systeme sind keine verantwortlichen Autoren oder Redakteure. Weitere Informationen zu Texten, Bildern, Videos und digitalen Personas findest du auf unserer Seite Transparenz beim Einsatz von Künstlicher Intelligenz.

Reichweitenmessung (VG WORT / METIS): Zur Ermittlung der Reichweite einzelner Texte können Zählmarken der VG WORT eingesetzt werden. Im Rahmen der METIS-Zugriffszählung kann eine Client-ID gebildet und ein sogenanntes „METIS Session Cookie“ gesetzt werden. Die Messung dient der statistischen Ermittlung von Textzugriffen und als Grundlage für mögliche Ausschüttungen der VG WORT. Nach Angaben der VG WORT werden dabei keine personenbezogenen Nutzungsprofile erstellt; die Messung dient nicht der Werbung oder dem Marketing-Tracking. Weitere Informationen findest du in unseren Datenschutzhinweisen.

Bitte beachte: Die Inhalte dienen ausschließlich der allgemeinen Information und stellen keine fachliche Beratung dar, insbesondere keine rechtliche, steuerliche, medizinische, technische oder finanzielle Beratung. Die Nutzung der Inhalte erfolgt auf eigene Verantwortung.

Werbung und Affiliate-Links: Einige Beiträge können werbliche Hinweise oder sogenannte Affiliate-Links enthalten. Diese werden entsprechend gekennzeichnet. Beim Klick entstehen dir keine zusätzlichen Kosten; wir erhalten gegebenenfalls eine kleine Provision.

Markenrechtlicher Hinweis: Alle Markennamen, Logos und Produktbezeichnungen sind Eigentum der jeweiligen Rechteinhaber und werden ausschließlich zur Identifikation und Beschreibung verwendet. Eine Verbindung zu den genannten Unternehmen besteht nur, wenn dies ausdrücklich angegeben wird.

Externe Links: Diese Website enthält Verweise auf externe Websites Dritter. Trotz sorgfältiger Prüfung übernehmen wir keine Verantwortung für deren Inhalte. Bei Bekanntwerden rechtswidriger Inhalte werden entsprechende Links geprüft und gegebenenfalls entfernt.