Kraken WebSocket API - Ofte stillede spørgsmål

Sidst opdateret: 31. marts 2025

Har Kraken en WebSocket API? Hvordan kan jeg oprette forbindelse til den?

Kraken har både en REST API og en WebSocket API. Vores WebSocket API er tilgængelig på følgende sikre URL'er:

Offentlige (uautentificerede) markedsdatafeeds: wss://ws.kraken.com/

Private (autentificerede) kontodatafeeds og handelsendepunkter: wss://ws-auth.kraken.com/

Autentificering er ikke påkrævet for at oprette forbindelse til de offentlige markedsdatafeeds, men en gyldig autentificeringstoken er påkrævet for de private feeds.

Alle meddelelser, der sendes og modtages via WebSocket API'en, er almindelig tekst kodet i JSON-format. Detaljerne for hver meddelelsestype findes i vores WebSocket API-dokumentation.

Har I WebSocket-biblioteker tilgængelige?

Vi har en række WebSocket API-eksempelkode tilgængelig, som enten kan bruges direkte eller som et udgangspunkt for din egen implementering:

  • en WebSocket API kommandolinjeklient (i Python),

  • en WebSocket API testsuite (i JavaScript),

  • eksempler på, hvordan man bruger vores anbefalede Python WebSocket-modul (websocket-client),

  • og et WebSocket API bibliotek (Github).

Vores WebSocket API kan implementeres i ethvert programmeringssprog, du foretrækker, og vores API-supportteam vil med glæde hjælpe dig eller give eksempelkode på yderligere sprog, hvis det er nødvendigt.

Hvilke feeds/endepunkter understøttes?

Vores WebSocket API tilbyder en række realtids markedsdatafeeds, kontodatafeeds og handelsendepunkter. En komplet liste over tilgængelige feeds/endepunkter, sammen med implementeringsdetaljerne for hvert feed/endepunkt, kan findes i vores WebSocket API-dokumentation.

Hvordan ved jeg, om jeg er forbundet? Hvordan ved jeg, om jeg stadig er forbundet?

Når du abonnerer på et feed, vil en {u'event': u'heartbeat'}-meddelelse blive modtaget med en frekvens på 1 heartbeat pr. sekund.

Heartbeats vil ikke blive modtaget, hvis andre meddelelser (markedsdata, kontodata osv.) modtages i stedet. Hvornår og hvorfor markeds- eller kontodata modtages, afhænger af det feed, du abonnerer på.

Hvis du abonnerer på et feed for et valutapar med lav handelsvolumen, modtager du muligvis kun heartbeats i lange perioder.

Hvis du afmelder et feed, modtager du ikke længere heartbeats eller handelsdata, og efter at have været afmeldt alle feeds i 1 minut, vil du blive afbrudt fra WebSockets-feedet.

Hvornår og hvorfor sender WebSocket opdaterede data?

Hvornår og hvorfor markedsdata eller kontodata modtages, afhænger af det feed, du abonnerer på. For eksempel:

Ticker: Når der er en handel eller et parti handler for et valutapar, offentliggøres en ticker-meddelelse for det pågældende par. Du modtager kun denne meddelelse, hvis du abonnerer på ticker-feedet for dette par.

Handel: Tilsvarende, når der er en handel eller et parti handler for et valutapar, offentliggøres en handelsmeddelelse også for det pågældende par. Du modtager kun denne meddelelse, hvis du abonnerer på handelsfeedet for dette par.

OHLC: Et opdateret OHLC-interval offentliggøres for hvert interval, når en handel eller et parti handler for et valutapar udføres. Du modtager kun opdateringer for de intervaller, du abonnerer på. Efter at have krydset en intervalgrænse sendes der ingen meddelelse, før den næste handel finder sted.

Book: Et indledende øjebliksbillede af ordrebogen med den valgte dybde offentliggøres, når du først abonnerer på book-feedet.

Efterhånden som nye ordrer tilføjes ordrebogen, eller handler udføres, der påvirker den ordrebogsdybde, du abonnerer på, offentliggøres en meddelelse, der indeholder ordrebogsopdateringer for alle berørte prisniveauer og volumener. Disse opdateringer kan kun indeholde bud, kun udbud eller både bud og udbud. Se Sådan opbygges en ordrebog nedenfor for detaljer.

Spread: Når en ny højeste bud- eller laveste udbudsordre placeres, eller en handel udføres, der ændrer den bedste bud- eller bedste udbudspris, offentliggøres en spread-meddelelse med de opdaterede bud- og udbudspriser.

Leverer WebSocket-feeds historiske data eller kun aktuelle data?

WebSocket-markedsdatafeeds leverer kun aktuelle data, men det er muligt samtidigt at oprette forbindelse til WebSocket API'en for aktuelle data og REST API'en for historiske data.

Brug af reqid-parameteren.

Abonnementsanmodninger kan inkludere en klientleveret reqid-parameter, som efterfølgende kan bruges til at matche den ønskede WebSocket-abonnementsanmodning med kanal-ID'et for det pågældende abonnement.

Bemærk, at hvis du foretager flere WebSocket-abonnementer samtidigt, vil de alle blive tildelt den samme reqid-værdi. For at tildele en anden reqid-værdi skal hvert feed abonneres individuelt.

Jeg ønsker flere detaljer, hvor kan jeg finde dem?

Den komplette WebSocket API-specifikation er tilgængelig i WebSocket API-dokumentationen.

Forskelle mellem valutaparsymboler i REST- og WebSocket API'er.

WebSocket API'en accepterer kun valutaparsymboler i ISO 4217-A3-formatet, såsom XBT/USD.

REST API'ens AssetPairs-endepunkt kan bruges til at oversætte symboler mellem REST API-versionerne (såsom XBTUSD eller XXBTZUSD) og WebSocket API-versionen (såsom XBT/USD).

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

wsname-feltet angiver WebSocket API-symbolet.

Sådan opbygges en ordrebog

WebSocket API book-feedet er det mest komplekse af alle WebSocket-feeds, men så længe book-feed-meddelelserne fortolkes korrekt, er det muligt at opretholde en lokal kopi af en ordrebog med blot et par kodelinjer.

Vores WebSocket API-supportside giver detaljerede instruktioner til fortolkning af book-feed-meddelelserne, sammen med en eksempel på book-feed-transkription og eksempelkode (i Python) til at opretholde en gyldig lokal kopi af en ordrebog.

Hvad er forbindelsesgrænserne for WebSocket API?

WebSocket API begrænser det maksimale antal samtidige forbindelser for at yde beskyttelse mod misbrug (f.eks. DDoS-angreb). Hvis din WebSocket-klient opretter for mange forbindelser samtidigt, modtages følgende fejlmeddelelse:

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

WebSocket API tillader flere feed-abonnementer via en enkelt WebSocket-forbindelse (f.eks. abonnement på alle tilgængelige markedsdata for XBT/USD-valutaparret via en enkelt forbindelse), så det er muligt at streame alle tilgængelige markedsdata for alle valutapar uden at nå WebSocket-forbindelsesgrænserne.

Hvad er rate-grænserne for WebSocket API?

De samme handelsrate-grænser gælder for alle ordreindtastningsgrænseflader (websted, Kraken Terminal, REST og WebSocket API'er) og er forklaret i detaljer på vores supportside for rate-grænser.

Meddelelsesrate-grænsen for en enkelt WebSocket API-forbindelse vil variere afhængigt af systemets belastning. WebSocket API-klienter vil modtage fejlmeddelelsen {"Error": "Exceeded msg rate"} når meddelelsesrate-grænsen overskrides.

Handel (placering/annullering af ordrer) via WebSocket API.

Handel via WebSocket API er tilgængelig via addOrder- og cancelOrder-endepunkterne, som bruges til at placere nye ordrer og annullere eksisterende (åbne) ordrer henholdsvis.

WebSocket-handelsendepunkterne er tilgængelige via den samme private WebSocket-forbindelse (wss://ws-auth.kraken.com/) som de private kontostyringsfeeds (openOrders og ownTrades).

Fuldstændige detaljer vedrørende handelsendepunkterne er tilgængelige via WebSocket API-dokumentationen, og vores WebSocket API-supportside giver yderligere information og eksempler på brug af handelsendepunkterne i din egen kode.

Hvorfor modtager jeg en 403-fejl, når jeg opretter forbindelse til WebSocket API?

WebSocket API-forbindelser formidles via Cloudflare, og derfor kan eventuelle sikkerhedsindstillinger implementeret af Cloudflare påvirke forbindelser til både de offentlige (wss://ws.kraken.com) og private (wss://ws-auth.kraken.com) URL'er.

Cloudflare kræver, at Server Name Indication (SNI) bruges til alle TLS-forbindelser, ellers ville WebSocket-forbindelsen mislykkes, og en HTTP 403 Forbidden-fejl ville blive returneret i stedet. Cloudflares supportside giver yderligere detaljer vedrørende deres TLS SNI-krav.

Vores officielle Python WebSocket API-bibliotek er blevet opdateret til at understøtte TLS SNI, men nogle tredjeparts WebSocket API-biblioteker kan stadig være påvirket. Kontakt venligst vores API-supportteam, hvis du har brug for hjælp til at opdatere din WebSocket API-kode til at understøtte TLS SNI.

WebSocket API-assistance.

Kontakt venligst vores API-supportteam, hvis du har brug for hjælp til at implementere din WebSocket API-klient.

Har du brug for mere hjælp?