Avancerad API FAQ

Senast uppdaterad: 25 november 2025

Med hjälp av REST API funding endpoints kan kunder sätta in/ta ut medel till/från sitt Kraken-konto och begära realtidsstatus för en insättnings-/uttagstransaktion.

Insättningar/uttag passerar flera steg mellan den initiala begäran och transaktionen är slutförd, därför kommer funding endpoints att returnera ett annat statusvärde beroende på när de anropas.

Observera att statusvärdena ursprungligen kom från sidorna 16/17 i dokumentet Internet Financial Exchange Protocol (IFEX), men värdena har modifierats något för att vara mer lämpliga för kryptotransaktioner (till exempel används inte alla möjliga statusvärden).

Insättningar

De möjliga statusvärdena för insättningstransaktioner är följande:

  • Settled = Insättningen har mottagits men behöver fortfarande ytterligare bekräftelser på blockkedjan.

  • Success = Insättningen har uppnått det nödvändiga antalet bekräftelser på blockkedjan.

  • Failure = Insättningen misslyckades (av en eller flera olika anledningar).

Följande är några exempel på hur ovanstående statusvärden skulle visas i svar från DepositStatus-endpointen:

Settled status:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906dde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Settled"}]}

Success status:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906tdde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Success"}]}

Uttag

De möjliga statusvärdena för uttagstransaktioner är följande:

  • Initial = Uttagsbegäran har mottagits och kontrolleras för giltighet (eventuella finansieringsrestriktioner på kontot, etc.).

  • Pending = Uttaget väntar på att behandlas av vår funding gateway.

  • Settled = Uttaget har skickats till blockkedjan (vid denna tidpunkt skulle blockkedjetransaktions-ID bli tillgängligt).

  • Success = Uttagstransaktionen har minst 1 bekräftelse på blockkedjan.

  • On hold = Uttaget har hållits kvar och måste kontrolleras manuellt av vårt funding team.

  • Failure = Uttaget misslyckades (av en eller flera olika anledningar).

Följande är några exempel på hur ovanstående statusvärden skulle visas i svar från WithdrawStatus-endpointen:

Initial status:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Initial"}]}

Pending status:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Pending"}]}

Settled status:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Settled"}]}

Success status:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Success"}]}

Failure status:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Failure","status-prop":"canceled"}]}

Ytterligare information om insättningar/uttag finns tillgänglig via våra supportsidor för kontantfinansiering och kryptofinansiering.

REST API OHLC-endpointen tillhandahåller endast en begränsad mängd historisk data, specifikt 720 datapunkter för det begärda intervallet. Om du till exempel begär OHLC-data i 1-minutersintervaller kommer de senaste 720 minuterna (12 timmarna) av data att returneras.

För applikationer som kräver ytterligare OHLC- eller tickdata är det möjligt att hämta hela handelshistoriken för våra marknader (den historiska tiden och försäljningen) via REST API Trades endpoint. OHLC för valfri tidsram och valfritt intervall kan sedan skapas från den historiska tiden och försäljningsdata.

Trades-endpointen tar en valfri parameter med namnet since, som anger startdatum/tid för data. Värdet för since är en UNIX timestamp med nanosekundupplösning (en standard UNIX timestamp i sekunder med 9 ytterligare siffror).

Till exempel skulle ett anrop till Trades-endpointen som https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 returnera den historiska tiden och försäljningen för XBT/USD från den 1 juni 2019 kl. 00:00:00 UTC:

{"error":[],"result":{"XXBTZUSD":[["8552.90000","0.03190270",1559347203.7998,"s","m",""],["8552.90000","0.03155529",1559347203.8086,"s","m",""],["8552.90000","0.00510797",1559347203.9664,"s","m",""],["8552.90000","0.09047336",1559347203.9789,"s","m",""],["8552.90000","0.00328738",1559347203.9847,"s","m",""],["8552.90000","0.00492152",1559347203.9897,"s","m",""],["8552.90000","0.00201848",1559347203.9937,"s","m",""],["8552.90000","0.11422068",1559347203.9993,"s","m",""],["8552.90000","0.00425858",1559347204.071,"s","m",""],["8552.90000","0.00427679",1559347204.0762,"s","m",""],["8552.90000","0.06381401",1559347204.1662,"s","m",""]
...
["8579.50000","0.05379597",1559350785.248,"s","l",""],["8579.50000","0.94620403",1559350785.2936,"s","l",""],["8578.10000","0.45529068",1559350785.297,"s","l",""]],"last":"1559350785297011117"}}

Efterföljande anrop till Trades-endpointen bör ersätta värdet för parametern since med värdet för parametern last från resultaten av det föregående anropet, till exempel https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Att använda det speciella since-värdet 0 (noll) skulle returnera den historiska tiden och försäljningen från marknadens början (med start från den allra första handeln).

En user reference är ett klienttillhandahållet order-ID som kan användas i stället för det faktiska (API-tillhandahållna) order-ID:t för vissa orderhanteringsuppgifter (särskilt annullering av ordrar).

User references är implementerade för att vara så flexibla som möjligt och kan därför användas på en mängd olika sätt, inklusive:

  • som ett unikt ID (där varje order har en annan user reference),

  • för att gruppera relaterade ordrar (som att gruppera ordrar med olika hävstångsnivåer),

  • eller som ett backup-ID i händelse av att det faktiska order-ID:t inte är känt.

En user reference måste vara ett numeriskt värde mellan 1 och 2 147 483 647 (i huvudsak vilket positivt 32-bitarsnummer som helst), och kan därför implementeras som en enkel räknare, som ett slumpmässigt signerat 32-bitarsvärde, eller till och med som en timestamp i sekunder (även om detta skulle misslyckas efter den 19 januari 2038 kl. 03:14:07 UTC).

Lägga ordrar med en user reference

Ordrar kan läggas med en bifogad user reference genom att anropa AddOrder-endpointen och inkludera parametern userref med user reference som värde:

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=limit price=0.1 volume=50 userref=27649653

{"error":[],"result":{"descr":{"order":"buy 50.00000000 XDGUSD @ limit 0.1000000"},"txid":["OQJSXE-F5FOM-IXHVL4"]}}

Visa ordrar som har en user reference

Ordrar som redan har en user reference bifogad kan visas genom att anropa Open/Closed/QueryOrders-endpoints och inkludera parametern userref med den befintliga user reference som värde (i detta fall fungerar user reference som ett filter och visar endast de associerade ordrarna):

$ ./krakenapi OpenOrders userref=27649653

{"error":[],"result":{"open":{"OQJSXE-F5FOM-IXHVL4":{"refid":null,"userref":27649653,"status":"open","opentm":1629618802.9812,"starttm":0,"expiretm":0,"descr":{"pair":"XDGUSD","type":"buy","ordertype":"limit","price":"0.1000000","price2":"0","leverage":"none","order":"buy 50.00000000 XDGUSD @ limit 0.1000000","close":""},"vol":"50.00000000","vol_exec":"0.00000000","cost":"0.000000000","fee":"0.000000000","price":"0.000000000","stopprice":"0.000000000","limitprice":"0.000000000","misc":"","oflags":"fciq"}}}}

$ ./krakenapi ClosedOrders userref=38695724

{"error":[],"result":{"closed":{"O7YEFN-3V4RK-FBNSNM":{"refid":null,"userref":38695724,"status":"canceled","reason":"User requested","opentm":1629619539.3593,"closetm":1629619542.2246,"starttm":0,"expiretm":0,"descr":{"pair":"XBTUSD","type":"buy","ordertype":"limit","price":"25000.0","price2":"0","leverage":"none","order":"buy 0.00010000 XBTUSD @ limit 25000.0","close":""},"vol":"0.00010000","vol_exec":"0.00000000","cost":"0.00000","fee":"0.00000","price":"0.00000","stopprice":"0.00000","limitprice":"0.00000","misc":"","oflags":"fciq"}},"count":1}}

Annullera ordrar som har en user reference

Ordrar som redan har en user reference bifogad kan annulleras med hjälp av user reference genom att anropa CancelOrder-endpointen och använda user reference som txid-värde (i stället för order-ID-värdet):

$ ./krakenapi CancelOrder txid=16764529

{"error":[],"result":{"count":1}}

Observera att alla öppna ordrar med samma user reference skulle annulleras, därför är det möjligt att göra ett enda CancelOrder-anrop för att annullera flera ordrar samtidigt (som indikeras av count-värdet 3 i följande svar):

$ ./krakenapi CancelOrder txid=48695624

{"error":[],"result":{"count":3}}

Detta problem kan vara relaterat till Cloudflare:

https://support.cloudflare.com/hc/en-us/articles/200169226-Why-am-I-getting-a-403-error-

OBS: Kraken har "Browser Integrity Check" aktiverat.

Detta kan inträffa om din begäran innehåller misstänkta headers. Till exempel kan din begäran sakna en user agent, eller använda en icke-standard user agent; så vänligen kontrollera dina request headers.

Om du inte kan skapa några standardbegäranden som vårt system tillåter, skicka oss en fullständig kopia av den/de begäran(den) du försöker göra, inklusive din IP-adress och alla headers. Denna information skulle göra det möjligt för oss att undersöka vidare.

Futures API

För våra Futures REST och WebSocket API:er (futures.kraken.com) erbjuder vi en fullständig testmiljö med API-URL:en demo-futures.kraken.com.

REST-, WebSocket- och FIX-testmiljöer

För vår spot REST/WebSocket API och FIX API erbjuder vi för närvarande en testmiljö för kvalificerade kunder. Åtkomst till denna miljö kräver en onboarding-process som kan startas genom att direkt kontakta API-teamet.

Testa vårt API med hjälp av valideringsparametern

När du lägger en order via REST API AddOrder- eller WebSocket API addOrder-slutpunkterna kan indataparametern validate användas för att simulera ordern.

Att anropa AddOrder/addOrder med parametern validate inställd på true (validate=1, validate=true, validate=anything, etc.) kommer att göra att orderdetaljerna kontrolleras för fel, men API-svaret kommer aldrig att inkludera ett order-ID (vilket alltid skulle returneras för en lyckad order utan validate-parametern).

Exempel på AddOrder-anrop med validate-parametern (observera det saknade order-ID:t):

bash

Bash

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=market volume=5000 validate=true{"error":[],"result":{"descr":{"order":"buy 5000.00000000 XDGUSD @ market"}}}

Små riktiga ordrar och/eller ordrar med extrema priser

För ett omfattande API-test med valideringsparametern rekommenderar vi att du lägger mycket små marknadsordrar (ordrar för minsta orderstorlek), eller limitordrar som är prissatta långt från det aktuella marknadspriset (till exempel att lägga en limitorder för att sälja ETH/USD för 800 $ när marknadspriset är 200 $).

Testning med live-ordrar gör att din API-kod kan interagera med vårt API under verkliga förhållanden, vilket innebär att varje aspekt av testet kommer att vara korrekt (hur dina ordrar påverkar orderboken, etc.).

Av säkerhetsskäl har vi nyligen upphört med stödet för TLS 1.0 och 1.1. Om du stöter på SSL/TLS-anslutningsfelmeddelanden när du försöker ansluta till vårt API, beror det sannolikt på användningen av en av dessa föråldrade standarder. Du måste ändra din API-klient för att tvinga fram användningen av TLS 1.2/1.3 eller uppgradera din version av .NET till 4.6 eller högre, som använder TLS 1.2/1.3 som standard.

Följande Google Sheet kan användas för att beräkna REST API-autentiseringssignaturen för valfri kombination av indata:

  • API privat (hemlig) nyckel

  • API-slutpunkt (Balance, TradeBalance, QueryOrders, etc.)

  • Nonce-värde (se vår vad är en nonce supportsida för mer information)

  • Slutpunktens indataparametrar (till exempel asset=doge)

Kalkylatorn kan användas för att verifiera att autentiseringsalgoritmen har implementerats korrekt, och därmed undvika potentiella problem (särskilt oväntade ogiltig nyckel-fel) senare i utvecklingscykeln.

Användningsinstruktioner

  1. 1

    Öppna REST API-autentiseringskalkylatorn i Chrome (eller någon annan nyare webbläsare)

  2. 2

    Gör en kopia av kalkylatorn till din egen Google Drive via menyn Arkiv -> Skapa en kopia (du måste logga in på ditt Google-konto för detta steg)

  3. 3

    Redigera fälten API key, API endpoint, nonce value och input data med din egen API-nyckel och förfrågningsdetaljer

  4. 4

    Jämför den beräknade API-autentiseringssignaturen med värdet som beräknats av din egen API-kod (de två värdena måste matcha exakt)

Av säkerhetsskäl rekommenderar vi att du använder autentiseringskalkylatorn med en tillfällig API-nyckel, och sedan raderar API-nyckeln från ditt konto när din implementering av autentiseringssignaturen har visat sig vara korrekt.

Exempel

Screenshot_2021-06-21_at_14.42.35.png

Den främsta fördelen med att använda våra klientbiblioteks-wrappers är att du inte behöver lägga tid/möda på att uppfinna hjulet på nytt för att skapa API-signaturer, det är redan gjort åt dig.

Om du bara avser att göra anrop till publika metoder kan du välja att avstå från klientbibliotek eftersom ingen autentisering behövs.

Listan över tillgängliga wrappers hittar du här.

Behöver du mer hjälp?