Avanceret API FAQ

Sidst opdateret: 25. november 2025

Ved at bruge REST API-finansieringsendepunkterne kan kunder indbetale/udbetale midler til/fra deres Kraken-konto og anmode om realtidsstatus for en indbetalings-/udbetalingstransaktion.

Indbetalinger/udbetalinger gennemgår flere stadier mellem den oprindelige anmodning og transaktionens fuldførelse, og derfor vil finansieringsendepunkterne returnere en forskellig statusværdi afhængigt af, hvornår de kaldes.

Bemærk, at statusværdierne oprindeligt kom fra side 16/17 i Internet Financial Exchange Protocol (IFEX)-dokumentet, men værdierne er blevet modificeret en smule for at være mere egnede til kryptotransaktioner (f.eks. bruges ikke alle mulige statusværdier).

Indbetalinger

De mulige statusværdier for indbetalingstransaktioner er som følger:

  • Afregnet = Indbetaling er modtaget, men kræver stadig yderligere bekræftelser på blockchainen.

  • Succes = Indbetaling har opnået det krævede antal bekræftelser på blockchainen.

  • Fejl = Indbetaling mislykkedes (af en eller flere forskellige årsager).

Følgende er nogle eksempler på, hvordan ovenstående statusværdier ville fremstå i svar fra DepositStatus-endepunktet:

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"}]}

Udbetalinger

De mulige statusværdier for udbetalingstransaktioner er som følger:

  • Initial = Udbetalingsanmodning er modtaget og kontrolleres for gyldighed (eventuelle finansieringsrestriktioner på kontoen osv.).

  • Afventende = Udbetaling afventer behandling af vores finansieringsgateway.

  • Afregnet = Udbetaling er sendt til blockchainen (på dette tidspunkt ville blockchain-transaktions-ID'et blive tilgængeligt).

  • Succes = Udbetalingstransaktion har mindst 1 bekræftelse på blockchainen.

  • Sat på hold = Udbetaling er sat på hold og skal manuelt kontrolleres af vores finansieringsteam.

  • Fejl = Udbetaling mislykkedes (af en eller flere forskellige årsager).

Følgende er nogle eksempler på, hvordan ovenstående statusværdier ville fremstå i svar fra WithdrawStatus-endepunktet:

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"}]}

Yderligere information vedrørende indbetalinger/udbetalinger er tilgængelig via vores kontantfinansiering og kryptofinansiering support sider.

REST API OHLC-endepunktet giver kun en begrænset mængde historiske data, specifikt 720 datapunkter for det anmodede interval. For eksempel vil en anmodning om OHLC-data i 1-minutters intervaller returnere de seneste 720 minutter (12 timer) af data.

For applikationer, der kræver yderligere OHLC- eller tick-data, er det muligt at hente hele handelshistorikken for vores markeder (den historiske tid og salg) via REST API Trades-endepunktet. OHLC for enhver tidsramme og ethvert interval kan derefter oprettes ud fra de historiske tid- og salgsdata.

Trades-endepunktet tager en valgfri parameter kaldet since, som angiver startdato/-tidspunktet for dataene. since-værdien er et UNIX-tidsstempel med nanosekundopløsning (et standard UNIX-tidsstempel i sekunder med 9 yderligere cifre).

For eksempel vil et kald til Trades-endepunktet som https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 returnere den historiske tid og salg for XBT/USD fra 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ølgende kald til Trades-endepunktet skal erstatte værdien af since-parameteren med værdien af last-parameteren fra resultaterne af det forrige kald, f.eks. https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Brug af den specielle since-værdi 0 (nul) ville returnere den historiske tid og salg fra markedets begyndelse (startende med den allerførste handel).

En brugerreference er et klientleveret ordre-ID, der kan bruges i stedet for det faktiske (API-leverede) ordre-ID til visse ordrehåndteringsopgaver (især annullering af ordrer).

Brugerreferencer er implementeret til at være så fleksible som muligt og kan derfor bruges på en række forskellige måder, herunder:

  • som et unikt ID (hvor hver ordre har en forskellig brugerreference),

  • til at gruppere relaterede ordrer (f.eks. gruppering af ordrer med forskellige gearingniveauer),

  • eller som et backup-ID i tilfælde af, at det faktiske ordre-ID ikke er kendt.

En brugerreference skal være en numerisk værdi mellem 1 og 2.147.483.647 (i det væsentlige ethvert positivt 32-bit tal) og kunne derfor implementeres som en simpel tæller, som en tilfældig signeret 32-bit værdi eller endda som et tidsstempel i sekunder (selvom dette ville fejle efter den 19. januar 2038 kl. 03:14:07 UTC).

Placering af ordrer med en brugerreference

Ordrer kan placeres med en vedhæftet brugerreference ved at kalde AddOrder-endepunktet og inkludere userref-parameteren med brugerreferencen som værdi:

$ ./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"]}}

Visning af ordrer, der har en brugerreference

Ordrer, der allerede har en brugerreference tilknyttet, kan ses ved at kalde Open/Closed/QueryOrders-endepunkterne og inkludere userref-parameteren med den eksisterende brugerreference som værdi (i dette tilfælde fungerer brugerreferencen som et filter, der kun viser de tilknyttede ordrer):

$ ./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}}

Annullering af ordrer, der har en brugerreference

Ordrer, der allerede har en brugerreference tilknyttet, kan annulleres ved hjælp af brugerreferencen ved at kalde CancelOrder-endepunktet og bruge brugerreferencen som txid-værdi (i stedet for ordre-ID-værdien):

$ ./krakenapi CancelOrder txid=16764529

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

Bemærk, at alle åbne ordrer med den samme brugerreference ville blive annulleret, og det er derfor muligt at foretage et enkelt CancelOrder-kald for at annullere flere ordrer samtidigt (som angivet af count-værdien 3 i følgende svar):

$ ./krakenapi CancelOrder txid=48695624

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

Dette problem kan være relateret til Cloudflare:

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

BEMÆRK: Kraken har "Browser Integrity Check" aktiveret.

Dette kan ske, hvis din anmodning indeholder mistænkelige headers. For eksempel kan din anmodning mangle en user agent eller bruge en ikke-standard user agent; så tjek venligst dine anmodningsheaders.

Hvis du ikke kan oprette standardanmodninger, som vores system tillader, bedes du sende os en fuld kopi af den/de anmodning(er), du forsøger, inklusive din IP-adresse og alle headers. Denne information ville give os mulighed for at undersøge sagen yderligere.

Futures API

For vores Futures REST og WebSocket API'er (futures.kraken.com) tilbyder vi et fuldt testmiljø ved hjælp af API-URL'en demo-futures.kraken.com.

REST-, WebSocket- og FIX-testmiljøer

For vores spot REST/WebSocket API og FIX API tilbyder vi i øjeblikket et testmiljø for kvalificerede kunder. Adgang til dette miljø kræver en onboarding-proces, der kan startes ved direkte at kontakte API-teamet.

Test af vores API ved hjælp af Validate Testing Parameter

Når du afgiver en ordre via REST API AddOrder- eller WebSocket API addOrder-slutpunkterne, kan inputparameteren validate bruges til at simulere ordren.

Hvis du kalder AddOrder/addOrder med validate-parameteren sat til true (validate=1, validate=true, validate=anything osv.), vil ordredetaljerne blive kontrolleret for fejl, men API-svaret vil aldrig inkludere et order ID (som altid ville blive returneret for en vellykket ordre uden validate-parameteren).

Eksempel på AddOrder-kald med validate-parameteren (bemærk det manglende order ID):

bash

Bash

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

Små reelle ordrer og/eller ordrer med ekstreme priser

For en omfattende API-test ved hjælp af Validate Parameter anbefaler vi at placere meget små markedsordrer (ordrer for den mindste ordrestørrelse) eller limitordrer, der er prissat langt fra den aktuelle markedspris (f.eks. at placere en limitordre for at sælge ETH/USD til $800, når markedsprisen er $200).

Test med live-ordrer gør det muligt for din API-kode at interagere med vores API under virkelige forhold, og derfor vil alle aspekter af testen være nøjagtige (hvordan dine ordrer påvirker ordrebogen osv.).

Af sikkerhedsmæssige årsager har vi for nylig droppet understøttelsen af TLS 1.0 og 1.1. Hvis du støder på SSL/TLS-forbindelsesfejlmeddelelser, når du forsøger at oprette forbindelse til vores API, skyldes det sandsynligvis brugen af en af disse forældede standarder. Du skal ændre din API-klient for at tvinge brugen af TLS 1.2/1.3 eller opgradere din version af .NET til 4.6 eller nyere, som bruger TLS 1.2/1.3 som standard.

Følgende Google Sheet kan bruges til at beregne REST API-autentificeringssignaturen for enhver kombination af inputdata:

  • API private (hemmelige) nøgle

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

  • Nonce-værdi (se vores hvad er en nonce supportside for flere detaljer)

  • Inputparametre for slutpunkt (f.eks. asset=doge)

Lommeregneren kan bruges til at verificere, at autentificeringsalgoritmen er korrekt implementeret, og derved undgå potentielle problemer (især uventede ugyldig nøgle-fejl) senere i udviklingscyklussen.

Brugsanvisning

  1. 1

    Åbn REST API-autentificeringsberegneren i Chrome (eller enhver anden nyere webbrowser)

  2. 2

    Lav en kopi af beregneren til dit eget Google Drive via menuen Filer -> Lav en kopi (du skal logge ind på din Google-konto for dette trin)

  3. 3

    Rediger felterne API key, API endpoint, nonce value og input data med din egen API key og anmodningsdetaljer

  4. 4

    Sammenlign den beregnede API-autentificeringssignatur med den værdi, der er beregnet af din egen API-kode (de to værdier skal stemme nøjagtigt overens)

Af sikkerhedsmæssige årsager anbefaler vi at bruge autentificeringsberegneren med en midlertidig API-nøgle og derefter slette API-nøglen fra din konto, når din implementering af autentificeringssignaturen er vist at være korrekt.

Eksempel

Screenshot_2021-06-21_at_14.42.35.png

Den primære fordel ved at bruge vores klientbiblioteks-wrappers er, at du ikke behøver at bruge tid/kræfter på at genopfinde hjulet til at oprette API-signaturer; det er allerede gjort for dig.

Hvis du kun har til hensigt at foretage kald til offentlige metoder, kan du vælge at fravælge klientbiblioteker, da der ikke er behov for autentificering.

Listen over tilgængelige wrappers kan du finde her.

Har du brug for mere hjælp?