API WebSocket Kraken - Întrebări frecvente

Ultima actualizare: 31 martie 2025

Kraken are un API WebSocket? Cum mă pot conecta la acesta?

Kraken are atât un API REST, cât și un API WebSocket. API-ul nostru WebSocket este disponibil la următoarele URL-uri securizate:

Fluxuri de date de piață publice (neautentificate): wss://ws.kraken.com/

Fluxuri de date de cont private (autentificate) și puncte finale de tranzacționare: wss://ws-auth.kraken.com/

Autentificarea nu este necesară pentru a vă conecta la fluxurile de date de piață publice, dar este necesar un token de autentificare valid pentru fluxurile private.

Toate mesajele trimise și primite prin API-ul WebSocket sunt text simplu codificat în format JSON. Detaliile fiecărui tip de mesaj sunt furnizate în documentația noastră API WebSocket.

Aveți biblioteci WebSocket disponibile?

Avem o varietate de exemple de cod API WebSocket disponibile, care pot fi utilizate direct sau ca punct de plecare pentru propria dumneavoastră implementare:

  • un client de linie de comandă API WebSocket (în Python),

  • o suită de testare API WebSocket (în JavaScript),

  • exemple despre cum să utilizați modulul nostru Python WebSocket recomandat (websocket-client),

  • și o bibliotecă API WebSocket (Github).

API-ul nostru WebSocket poate fi implementat în orice limbaj de programare pe care îl preferați, iar echipa noastră de asistență API ar fi bucuroasă să vă ajute sau să vă ofere exemple de cod în limbi suplimentare, dacă este necesar.

Ce fluxuri/puncte finale sunt acceptate?

API-ul nostru WebSocket oferă o varietate de fluxuri de date de piață în timp real, fluxuri de date de cont și puncte finale de tranzacționare. O listă completă a fluxurilor/punctelor finale disponibile, împreună cu detaliile de implementare pentru fiecare flux/punct final, poate fi găsită în documentația noastră API WebSocket.

Cum știu că sunt conectat cu succes? Cum știu că sunt încă conectat?

Când sunteți abonat la un flux, un mesaj {u'event': u'heartbeat'} va fi primit la o frecvență de 1 heartbeat pe secundă.

Heartbeat-urile nu vor fi primite dacă, în schimb, sunt primite alte mesaje (date de piață, date de cont etc.). Când și de ce sunt primite date de piață sau de cont depinde de fluxul la care sunteți abonat.

Dacă vă abonați la fluxul unei perechi valutare cu volum de tranzacționare scăzut, este posibil să primiți heartbeat-uri doar pentru perioade lungi.

Dacă vă dezabonați de la un flux, nu veți mai primi heartbeat-uri sau date de tranzacționare și, după ce nu sunteți abonat la niciun flux timp de 1 minut, veți fi deconectat de la fluxul WebSockets.

Când și de ce trimite WebSocket date actualizate?

Când și de ce sunt primite date de piață sau de cont depinde de fluxul la care sunteți abonat. De exemplu:

Ticker: Când există o tranzacție sau un lot de tranzacții pentru o pereche valutară, un mesaj ticker este publicat pentru acea pereche. Veți primi acest mesaj doar dacă sunteți abonat la fluxul ticker pentru această pereche.

Tranzacție: În mod similar, când există o tranzacție sau un lot de tranzacții pentru o pereche valutară, un mesaj de tranzacție este, de asemenea, publicat pentru acea pereche. Veți primi acest mesaj doar dacă sunteți abonat la fluxul de tranzacții pentru această pereche.

OHLC: Un interval OHLC actualizat este publicat pentru fiecare interval atunci când o tranzacție sau un lot de tranzacții pentru o pereche valutară este executat. Veți primi actualizări doar pentru intervalele la care sunteți abonat. După ce ați depășit o limită de interval, nu este trimis niciun mesaj până la următoarea tranzacție.

Book: O imagine inițială a registrului de ordine cu adâncimea aleasă este publicată la prima abonare la fluxul de registru.

Pe măsură ce noi ordine sunt adăugate în registrul de ordine sau tranzacțiile sunt executate și afectează adâncimea registrului de ordine la care sunteți abonat, este publicat un mesaj care conține actualizări ale registrului de ordine pentru orice niveluri de preț și volume afectate. Aceste actualizări pot conține doar oferte de cumpărare (bids), doar oferte de vânzare (asks) sau ambele. Consultați Cum să construiți un registru de ordine mai jos pentru detalii.

Spread: Când este plasată o nouă ofertă de cumpărare cea mai mare sau o ofertă de vânzare cea mai mică, sau este executată o tranzacție care modifică cel mai bun preț de cumpărare sau cel mai bun preț de vânzare, un mesaj spread este publicat cu prețurile actualizate de cumpărare și vânzare.

Fluxurile WebSocket oferă date istorice sau doar date curente?

Fluxurile de date de piață WebSocket oferă doar date curente, însă este posibil să vă conectați simultan la API-ul WebSocket pentru date curente și la API-ul REST pentru date istorice.

Utilizarea parametrului reqid.

Solicitările de abonare pot include un parametru reqid furnizat de client, care poate fi ulterior utilizat pentru a potrivi solicitarea de abonare WebSocket dorită cu ID-ul canalului pentru acea abonare.

Rețineți că dacă efectuați mai multe abonamente WebSocket în același timp, toate vor primi aceeași valoare reqid. Pentru a atribui o valoare reqid diferită, fiecare flux trebuie abonat individual.

Vreau mai multe detalii, unde le pot găsi?

Specificația completă a API-ului WebSocket este disponibilă în documentația API WebSocket.

Diferențe între simbolurile perechilor valutare în API-urile REST și WebSocket.

API-ul WebSocket acceptă doar simboluri de perechi valutare în formatul ISO 4217-A3, cum ar fi XBT/USD.

Punctul final AssetPairs al API-ului REST poate fi utilizat pentru a traduce simbolurile între versiunile API REST (cum ar fi XBTUSD sau XXBTZUSD) și versiunea API WebSocket (cum ar fi XBT/USD).

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

Câmpul wsname furnizează simbolul API WebSocket.

Cum să construiți un registru de ordine

Fluxul de registru API WebSocket este cel mai complex dintre toate fluxurile WebSocket, dar atâta timp cât mesajele fluxului de registru sunt interpretate corect, este posibil să se mențină o copie locală a unui registru de ordine cu doar câteva linii de cod.

Paginile noastre de asistență API WebSocket oferă instrucțiuni detaliate pentru interpretarea mesajelor fluxului de registru, împreună cu o transcriere exemplu a fluxului de registru și cod exemplu (în Python) pentru menținerea unei copii locale valide a unui registru de ordine.

Care sunt limitele de conexiune API WebSocket?

API-ul WebSocket limitează numărul maxim de conexiuni simultane pentru a oferi protecție împotriva utilizării abuzive (cum ar fi atacurile DDoS, de exemplu). Dacă clientul dumneavoastră WebSocket efectuează prea multe conexiuni în același timp, va fi primit următorul mesaj de eroare:

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

API-ul WebSocket permite mai multe abonamente la fluxuri printr-o singură conexiune WebSocket (cum ar fi abonarea la toate datele de piață disponibile pentru perechea valutară XBT/USD printr-o singură conexiune), deci este posibil să se transmită în flux toate datele de piață disponibile pentru toate perechile valutare fără a atinge limitele de conexiune WebSocket.

Care sunt limitele de rată API WebSocket?

Aceleași limite de rată de tranzacționare se aplică tuturor interfețelor de introducere a ordinelor (site web, Kraken Terminal, API-uri REST și WebSocket), și sunt explicate în detaliu pe pagina noastră de asistență privind limitele de rată.

Limita de rată a mesajelor unei singure conexiuni API WebSocket va varia în funcție de încărcarea sistemului. Clienții API WebSocket vor primi mesajul de eroare {"Error": "Exceeded msg rate"} atunci când limita de rată a mesajelor este depășită.

Tranzacționarea (plasarea/anularea ordinelor) prin API-ul WebSocket.

Tranzacționarea prin API-ul WebSocket este disponibilă prin punctele finale addOrder și cancelOrder, care sunt utilizate pentru a plasa ordine noi și, respectiv, pentru a anula ordine existente (deschise).

Punctele finale de tranzacționare WebSocket sunt disponibile prin aceeași conexiune WebSocket privată (wss://ws-auth.kraken.com/) ca și fluxurile private de gestionare a contului (openOrders și ownTrades).

Detalii complete privind punctele finale de tranzacționare sunt disponibile prin documentația API WebSocket, iar paginile noastre de asistență API WebSocket oferă informații suplimentare și exemple pentru utilizarea punctelor finale de tranzacționare în propriul dumneavoastră cod.

De ce primesc o eroare 403 la conectarea la API-ul WebSocket?

Conexiunile API WebSocket sunt intermediate prin Cloudflare, prin urmare, orice setări de securitate implementate de Cloudflare pot afecta conexiunile atât la URL-urile publice (wss://ws.kraken.com), cât și la cele private (wss://ws-auth.kraken.com).

Cloudflare necesită ca Server Name Indication (SNI) să fie utilizat pentru toate conexiunile TLS, altfel conexiunea WebSocket ar eșua și, în schimb, ar fi returnată o eroare HTTP 403 Forbidden. Paginile de asistență Cloudflare oferă detalii suplimentare privind cerința lor TLS SNI.

Biblioteca noastră oficială Python WebSocket API a fost actualizată pentru a suporta TLS SNI, dar unele biblioteci API WebSocket terțe ar putea fi încă afectate. Vă rugăm să contactați echipa noastră de asistență API dacă aveți nevoie de asistență pentru actualizarea codului dumneavoastră API WebSocket pentru a suporta TLS SNI.

Asistență API WebSocket.

Vă rugăm să contactați echipa noastră de asistență API dacă aveți nevoie de asistență pentru implementarea clientului dumneavoastră API WebSocket.

Ai nevoie de mai mult ajutor?