Kraken WebSocket API – Häufig gestellte Fragen

Zuletzt aktualisiert: 31. März 2025

Verfügt Kraken über eine WebSocket API? Wie kann ich mich damit verbinden?

Kraken verfügt sowohl über eine REST API als auch über eine WebSocket API. Unsere WebSocket API ist unter den folgenden sicheren URLs verfügbar:

Öffentliche (nicht authentifizierte) Marktdaten-Feeds: wss://ws.kraken.com/

Private (authentifizierte) Kontodaten-Feeds und Trading-Endpunkte: wss://ws-auth.kraken.com/

Für die Verbindung zu den öffentlichen Marktdaten-Feeds ist keine Authentifizierung erforderlich, für die privaten Feeds ist jedoch ein gültiges Authentifizierungs-Token erforderlich.

Alle über die WebSocket API gesendeten und empfangenen Nachrichten sind Klartext im JSON-Format kodiert. Die Details zu jedem Nachrichtentyp finden Sie in unserer WebSocket API-Dokumentation.

Haben Sie WebSocket-Bibliotheken zur Verfügung?

Wir haben eine Vielzahl von WebSocket API-Beispielcodes zur Verfügung, die entweder direkt verwendet oder als Ausgangspunkt für Ihre eigene Implementierung dienen können:

  • einen WebSocket API-Befehlszeilen-Client (in Python),

  • eine WebSocket API-Testsuite (in JavaScript),

  • Beispiele für die Verwendung unseres empfohlenen Python WebSocket-Moduls (websocket-client),

  • und eine WebSocket API-Bibliothek (Github).

Unsere WebSocket API kann in jeder von Ihnen bevorzugten Programmiersprache implementiert werden, und unser API-Support-Team hilft Ihnen gerne weiter oder stellt bei Bedarf Beispielcode in weiteren Sprachen zur Verfügung.

Welche Feeds/Endpunkte werden unterstützt?

Unsere WebSocket API bietet eine Vielzahl von Echtzeit-Marktdaten-Feeds, Kontodaten-Feeds und Trading-Endpunkten. Eine vollständige Liste der verfügbaren Feeds/Endpunkte sowie die Implementierungsdetails für jeden Feed/Endpunkt finden Sie in unserer WebSocket API-Dokumentation.

Woher weiß ich, dass ich erfolgreich verbunden bin? Woher weiß ich, dass ich noch verbunden bin?

Wenn Sie einen Feed abonniert haben, wird eine {u'event': u'heartbeat'}-Nachricht mit einer Frequenz von 1 Heartbeat pro Sekunde empfangen.

Heartbeats werden nicht empfangen, wenn stattdessen andere Nachrichten (Marktdaten, Kontodaten usw.) empfangen werden. Wann und warum Markt- oder Kontodaten empfangen werden, hängt von dem Feed ab, den Sie abonniert haben.

Wenn Sie den Feed eines Währungspaares mit geringem Trading-Volumen abonnieren, erhalten Sie möglicherweise über längere Zeiträume nur Heartbeats.

Wenn Sie ein Abonnement für einen Feed kündigen, erhalten Sie keine Heartbeats oder Trading-Daten mehr, und nachdem Sie 1 Minute lang keinen Feed abonniert haben, werden Sie von dem WebSockets-Feed getrennt.

Wann und warum sendet der WebSocket aktualisierte Daten?

Wann und warum Marktdaten oder Kontodaten empfangen werden, hängt von dem Feed ab, den Sie abonniert haben. Zum Beispiel:

Ticker: Wenn es einen Trade oder eine Reihe von Trades für ein Währungspaar gibt, wird eine Ticker-Nachricht für dieses Paar veröffentlicht. Sie erhalten diese Nachricht nur, wenn Sie den Ticker-Feed für dieses Paar abonniert haben.

Trade: Ähnlich wird, wenn es einen Trade oder eine Reihe von Trades für ein Währungspaar gibt, auch eine Trade-Nachricht für dieses Paar veröffentlicht. Sie erhalten diese Nachricht nur, wenn Sie den Trade-Feed für dieses Paar abonniert haben.

OHLC: Ein aktualisiertes OHLC-Intervall wird für jedes Intervall veröffentlicht, wenn ein Trade oder eine Reihe von Trades für ein Währungspaar ausgeführt wird. Sie erhalten nur Updates für die Intervalle, die Sie abonniert haben. Nach dem Überschreiten einer Intervallgrenze wird keine Nachricht gesendet, bis der nächste Trade erfolgt.

Book: Ein anfänglicher Snapshot des Orderbuchs mit der gewählten Tiefe wird veröffentlicht, wenn Sie den Book-Feed zum ersten Mal abonnieren.

Wenn neue Orders zum Orderbuch hinzugefügt oder Trades ausgeführt werden, die die von Ihnen abonnierte Orderbuch-Tiefe beeinflussen, wird eine Nachricht veröffentlicht, die Orderbuch-Updates für alle betroffenen Preisniveaus und Volumina enthält. Diese Updates können nur Bids, nur Asks oder sowohl Bids als auch Asks enthalten. Details finden Sie unter „Wie man ein Orderbuch erstellt“ weiter unten.

Spread: Wenn eine neue höchste Bid- oder niedrigste Ask-Order platziert wird oder ein Trade ausgeführt wird, der den besten Bid- oder besten Ask-Preis ändert, wird eine Spread-Nachricht mit den aktualisierten Bid- und Ask-Preisen veröffentlicht.

Bieten WebSocket-Feeds historische Daten oder nur aktuelle Daten?

Die WebSocket-Marktdaten-Feeds liefern nur aktuelle Daten, es ist jedoch möglich, sich gleichzeitig mit der WebSocket API für aktuelle Daten und der REST API für historische Daten zu verbinden.

Verwendung des reqid-Parameters.

Abonnementanfragen können einen vom Client bereitgestellten reqid-Parameter enthalten, der anschließend verwendet werden kann, um die gewünschte WebSocket-Abonnementanfrage mit der Channel-ID für dieses Abonnement abzugleichen.

Beachten Sie, dass, wenn Sie mehrere WebSocket-Abonnements gleichzeitig vornehmen, diesen allen derselbe reqid-Wert zugewiesen wird. Um einen anderen reqid-Wert zuzuweisen, muss jeder Feed einzeln abonniert werden.

Ich möchte weitere Details, wo finde ich diese?

Die vollständige WebSocket API-Spezifikation ist in der WebSocket API-Dokumentation verfügbar.

Unterschiede zwischen Währungspaar-Symbolen in REST- und WebSocket APIs.

Die WebSocket API akzeptiert Währungspaar-Symbole nur im ISO 4217-A3-Format, wie z. B. XBT/USD.

Der REST API AssetPairs-Endpunkt kann verwendet werden, um Symbole zwischen den REST API-Versionen (wie XBTUSD oder XXBTZUSD) und der WebSocket API-Version (wie XBT/USD) zu übersetzen.

https://api.kraken.com/0/public/AssetPairs

Das Feld wsname liefert das WebSocket API-Symbol.

Wie man ein Orderbuch erstellt

Der WebSocket API Book-Feed ist der komplexeste aller WebSocket-Feeds, aber solange die Book-Feed-Nachrichten korrekt interpretiert werden, ist es möglich, eine lokale Kopie eines Orderbuchs mit nur wenigen Codezeilen zu pflegen.

Unsere WebSocket API-Supportseiten bieten detaillierte Anweisungen zur Interpretation der Book-Feed-Nachrichten, zusammen mit einem Beispiel für ein Book-Feed-Transkript und Beispielcode (in Python) zur Pflege einer gültigen lokalen Kopie eines Orderbuchs.

Was sind die WebSocket API-Verbindungslimits?

Die WebSocket API begrenzt die maximale Anzahl gleichzeitiger Verbindungen, um Schutz vor Missbrauch (z. B. DDoS-Angriffen) zu bieten. Wenn Ihr WebSocket-Client zu viele Verbindungen gleichzeitig herstellt, wird die folgende Fehlermeldung empfangen:

{“error”: {“message”: “You have reached maximum capacity for WebSocket connections. Please reach out to Kraken support team for any questions.“, “hint”: “Your code may be reconnecting too often or when it has no need to.“, “name”: “WebSocket connection rate error”}}

Die WebSocket API erlaubt mehrere Feed-Abonnements über eine einzige WebSocket-Verbindung (z. B. das Abonnieren aller verfügbaren Marktdaten für das Währungspaar XBT/USD über eine einzige Verbindung), so dass es möglich ist, alle verfügbaren Marktdaten für alle Währungspaare zu streamen, ohne die WebSocket-Verbindungslimits zu erreichen.

Was sind die WebSocket API-Ratenlimits?

Dieselben Trading-Ratenlimits gelten für alle Order-Eingabeschnittstellen (Webseite, Kraken Terminal, REST- und WebSocket APIs) und werden auf unserer Supportseite für Ratenlimits ausführlich erläutert.

Das Nachrichten-Ratenlimit einer einzelnen WebSocket API-Verbindung variiert je nach Systemlast. WebSocket API-Clients erhalten die Fehlermeldung {"Error": "Exceeded msg rate"}, wenn das Nachrichten-Ratenlimit überschritten wird.

Trading (Platzieren/Stornieren von Orders) über die WebSocket API.

Trading über die WebSocket API ist über die Endpunkte addOrder und cancelOrder verfügbar, die zum Platzieren neuer Orders bzw. zum Stornieren bestehender (offener) Orders verwendet werden.

Die WebSocket Trading-Endpunkte sind über dieselbe private WebSocket-Verbindung (wss://ws-auth.kraken.com/) verfügbar wie die privaten Kontoverwaltungs-Feeds (openOrders und ownTrades).

Vollständige Details zu den Trading-Endpunkten sind über die WebSocket API-Dokumentation verfügbar, und unsere WebSocket API-Supportseiten bieten weitere Informationen und Beispiele für die Verwendung der Trading-Endpunkte in Ihrem eigenen Code.

Warum erhalte ich einen 403-Fehler, wenn ich mich mit der WebSocket API verbinde?

WebSocket API-Verbindungen werden über Cloudflare vermittelt, daher können alle von Cloudflare implementierten Sicherheitseinstellungen Verbindungen zu den öffentlichen (wss://ws.kraken.com) und privaten (wss://ws-auth.kraken.com) URLs beeinflussen.

Cloudflare erfordert, dass Server Name Indication (SNI) für alle TLS-Verbindungen verwendet wird, andernfalls würde die WebSocket-Verbindung fehlschlagen und stattdessen ein HTTP 403 Forbidden-Fehler zurückgegeben. Die Supportseiten von Cloudflare bieten weitere Details zu ihrer TLS SNI-Anforderung.

Unsere offizielle Python WebSocket API-Bibliothek wurde aktualisiert, um TLS SNI zu unterstützen, aber einige WebSocket API-Bibliotheken von Drittanbietern könnten immer noch betroffen sein. Bitte wenden Sie sich an unser API-Support-Team, wenn Sie Hilfe bei der Aktualisierung Ihres WebSocket API-Codes zur Unterstützung von TLS SNI benötigen.

WebSocket API-Unterstützung.

Bitte wenden Sie sich an unser API-Support-Team, wenn Sie Hilfe bei der Implementierung Ihres WebSocket API-Clients benötigen.

Brauchst du weitere Hilfe?