Kraken WebSocket API - Veelgestelde vragen

Laatst bijgewerkt: 31 mrt 2025

Heeft Kraken een WebSocket API? Hoe kan ik er verbinding mee maken?

Kraken heeft zowel een REST API als een WebSocket API. Onze WebSocket API is beschikbaar via de volgende beveiligde URL's:

Openbare (niet-geauthenticeerde) marktdatafeeds: wss://ws.kraken.com/

Privé (geauthenticeerde) accountdatafeeds en trading-endpoints: wss://ws-auth.kraken.com/

Authenticatie is niet vereist om verbinding te maken met de openbare marktdatafeeds, maar een geldig authenticatietoken is wel vereist voor de privéfeeds.

Alle berichten die via de WebSocket API worden verzonden en ontvangen, zijn platte tekst gecodeerd in JSON-formaat. De details van elk berichttype worden beschreven in onze WebSocket API-documentatie.

Zijn er WebSocket-bibliotheken beschikbaar?

We hebben een verscheidenheid aan voorbeeldcode voor de WebSocket API beschikbaar, die direct kan worden gebruikt of als startpunt voor uw eigen implementatie:

  • een WebSocket API commandoregelclient (in Python),

  • een WebSocket API testsuite (in JavaScript),

  • voorbeelden van hoe u onze aanbevolen Python WebSocket-module (websocket-client) kunt gebruiken,

  • en een WebSocket API bibliotheek (Github).

Onze WebSocket API kan worden geïmplementeerd in elke programmeertaal die u verkiest, en ons API-ondersteuningsteam helpt u graag verder of voorziet u van voorbeeldcode in aanvullende talen indien nodig.

Welke feeds/endpoints worden ondersteund?

Onze WebSocket API biedt een verscheidenheid aan realtime marktdatafeeds, accountdatafeeds en trading-endpoints. Een complete lijst van beschikbare feeds/endpoints, samen met de implementatiedetails voor elke feed/endpoint, is te vinden in onze WebSocket API-documentatie.

Hoe weet ik of ik succesvol verbonden ben? Hoe weet ik of ik nog steeds verbonden ben?

Wanneer u geabonneerd bent op een feed, wordt er een {u'event': u'heartbeat'}-bericht ontvangen met een frequentie van 1 heartbeat per seconde.

Heartbeats worden niet ontvangen als er in plaats daarvan andere berichten (marktdata, accountdata, enz.) worden ontvangen. Wanneer en waarom markt- of accountdata worden ontvangen, hangt af van de feed waarop u geabonneerd bent.

Als u zich abonneert op de feed van een valutapaar met een laag handelsvolume, ontvangt u mogelijk alleen heartbeats gedurende lange perioden.

Als u zich afmeldt voor een feed, ontvangt u geen heartbeats of handelsdata meer en nadat u gedurende 1 minuut niet op een feed geabonneerd bent geweest, wordt u losgekoppeld van de WebSockets-feed.

Wanneer en waarom stuurt de WebSocket bijgewerkte gegevens?

Wanneer en waarom marktdata of accountdata worden ontvangen, hangt af van de feed waarop u geabonneerd bent. Bijvoorbeeld:

Ticker: Wanneer er een trade of batch van trades is voor een valutapaar, wordt er een tickerbericht gepubliceerd voor dat paar. U ontvangt dit bericht alleen als u geabonneerd bent op de tickerfeed voor dit paar.

Trade: Op dezelfde manier, wanneer er een trade of batch van trades is voor een valutapaar, wordt er ook een tradebericht gepubliceerd voor dat paar. U ontvangt dit bericht alleen als u geabonneerd bent op de tradefeed voor dit paar.

OHLC: Een bijgewerkt OHLC-interval wordt gepubliceerd voor elk interval wanneer een trade of batch van trades voor een valutapaar wordt uitgevoerd. U ontvangt alleen updates voor de intervallen waarop u geabonneerd bent. Na het overschrijden van een intervalgrens wordt er geen bericht verzonden totdat de volgende trade plaatsvindt.

Book: Een initiële momentopname van het orderboek met de gekozen diepte wordt gepubliceerd wanneer u zich voor het eerst abonneert op de bookfeed.

Naarmate nieuwe orders aan het orderboek worden toegevoegd of trades worden uitgevoerd die de orderboekdiepte waarop u geabonneerd bent beïnvloeden, wordt er een bericht gepubliceerd met orderboekupdates voor alle getroffen prijsniveaus en volumes. Deze updates kunnen alleen biedingen, alleen aanbiedingen, of zowel biedingen als aanbiedingen bevatten. Zie Hoe een orderboek op te bouwen hieronder voor details.

Spread: Wanneer een nieuwe hoogste bieding of laagste aanbieding wordt geplaatst, of een trade wordt uitgevoerd die de beste bied- of aanbiedprijs verandert, wordt er een spreadbericht gepubliceerd met de bijgewerkte bied- en aanbiedprijzen.

Bieden WebSocket-feeds historische gegevens of alleen actuele gegevens?

De WebSocket marktdatafeeds bieden alleen actuele gegevens, maar het is mogelijk om tegelijkertijd verbinding te maken met de WebSocket API voor actuele gegevens en de REST API voor historische gegevens.

Gebruik van de reqid parameter.

Abonnementsaanvragen kunnen een door de client geleverde reqid-parameter bevatten die vervolgens kan worden gebruikt om de gewenste WebSocket-abonnementsaanvraag te matchen met de kanaal-ID voor dat abonnement.

Merk op dat als u meerdere WebSocket-abonnementen tegelijkertijd maakt, deze allemaal dezelfde reqid-waarde krijgen. Om een andere reqid-waarde toe te wijzen, moet elke feed afzonderlijk worden geabonneerd.

Ik wil meer details, waar kan ik die vinden?

De complete WebSocket API-specificatie is beschikbaar in de WebSocket API-documentatie.

Verschillen tussen valutapaarsymbolen in REST en WebSocket API's.

De WebSocket API accepteert alleen valutapaarsymbolen in het ISO 4217-A3-formaat, zoals XBT/USD.

Het REST API AssetPairs-endpoint kan worden gebruikt om symbolen te vertalen tussen de REST API-versies (zoals XBTUSD of XXBTZUSD) en de WebSocket API-versie (zoals XBT/USD).

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

Het veld wsname geeft het WebSocket API-symbool.

Hoe een orderboek op te bouwen

De WebSocket API bookfeed is de meest complexe van alle WebSocket-feeds, maar zolang de bookfeed-berichten correct worden geïnterpreteerd, is het mogelijk om een lokale kopie van een orderboek te onderhouden met slechts een paar regels code.

Onze WebSocket API-ondersteuningspagina's bieden gedetailleerde instructies voor het interpreteren van de bookfeed-berichten, samen met een voorbeeld van een bookfeed-transcript, en voorbeeldcode (in Python) voor het onderhouden van een geldige lokale kopie van een orderboek.

Wat zijn de verbindingslimieten van de WebSocket API?

De WebSocket API beperkt het maximale aantal gelijktijdige verbindingen om bescherming te bieden tegen misbruik (zoals DDoS-aanvallen, bijvoorbeeld). Als uw WebSocket-client te veel verbindingen tegelijkertijd maakt, wordt het volgende foutbericht ontvangen:

{“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”}}

De WebSocket API staat meerdere feed-abonnementen toe via één enkele WebSocket-verbinding (zoals abonneren op alle beschikbare marktdata voor het XBT/USD-valutapaar via één enkele verbinding), dus het is mogelijk om alle beschikbare marktdata voor alle valutaparen te streamen zonder de WebSocket-verbindingslimieten te bereiken.

Wat zijn de snelheidslimieten van de WebSocket API?

Dezelfde handels-snelheidslimieten gelden voor alle orderinvoerinterfaces (website, Kraken Terminal, REST en WebSocket API's), en worden gedetailleerd uitgelegd op onze ondersteuningspagina voor snelheidslimieten.

De bericht-snelheidslimiet van een enkele WebSocket API-verbinding varieert afhankelijk van de belasting van het systeem. WebSocket API-clients ontvangen het foutbericht {"Error": "Exceeded msg rate"} wanneer de bericht-snelheidslimiet wordt overschreden.

Handelen (orders plaatsen/annuleren) via de WebSocket API.

Handelen via de WebSocket API is beschikbaar via de addOrder- en cancelOrder-endpoints, die respectievelijk worden gebruikt om nieuwe orders te plaatsen en bestaande (open) orders te annuleren.

De WebSocket trading-endpoints zijn beschikbaar via dezelfde privé WebSocket-verbinding (wss://ws-auth.kraken.com/) als de privé accountbeheerfeeds (openOrders en ownTrades).

Volledige details met betrekking tot de trading-endpoints zijn beschikbaar via de WebSocket API-documentatie, en onze WebSocket API-ondersteuningspagina's bieden verdere informatie en voorbeelden voor het gebruik van de trading-endpoints in uw eigen code.

Waarom ontvang ik een 403-fout bij het verbinden met de WebSocket API?

WebSocket API-verbindingen worden bemiddeld via Cloudflare, vandaar dat alle beveiligingsinstellingen die door Cloudflare zijn geïmplementeerd, van invloed kunnen zijn op verbindingen met zowel de openbare (wss://ws.kraken.com) als de privé (wss://ws-auth.kraken.com) URL's.

Cloudflare vereist dat Server Name Indication (SNI) wordt gebruikt voor alle TLS-verbindingen, anders zou de WebSocket-verbinding mislukken en zou er in plaats daarvan een HTTP 403 Forbidden-fout worden geretourneerd. De ondersteuningspagina's van Cloudflare bieden verdere details over hun TLS SNI-vereiste.

Onze officiële Python WebSocket API-bibliotheek is bijgewerkt om TLS SNI te ondersteunen, maar sommige WebSocket API-bibliotheken van derden kunnen nog steeds worden beïnvloed. Neem contact op met ons API-ondersteuningsteam als u hulp nodig heeft bij het bijwerken van uw WebSocket API-code om TLS SNI te ondersteunen.

WebSocket API-ondersteuning.

Neem contact op met ons API-ondersteuningsteam als u hulp nodig heeft bij het implementeren van uw WebSocket API-client.

Meer hulp nodig?