API-feilmeldinger

Sist oppdatert: 8. august 2025

Introduksjon

De fleste API-forespørsler fullføres vellykket, men noen ganger går ting galt, og en feilmelding returneres i stedet for det forventede svaret.

Vårt API tilbyr en rekke beskrivende feilmeldinger ment å gi årsaken til feilen og gi forslag til passende løsning.

API-feilmeldinger kan deles inn i flere forskjellige grupper (avhengig av feiltype, den underliggende årsaken og den optimale løsningen), men formatet på API-feilmeldingene er konsistent, og er som følger:

"Alvorlighetsgrad""Feilkategori":"Feilmelding"

"Alvorlighetsgraden" kan enten være E for en feil eller W for en advarsel. "Feilkategorien" kan være en av General, API, Query, Order, Trade, Funding eller Service. "Feilmeldingen" kan være en hvilken som helst tekststreng som beskriver årsaken til feilen (for eksempel Invalid arguments).

For eksempel, en feil som indikerer at et ugyldig valutapar ble brukt i en ticker-forespørsel, vil være som følger:

EQuery:Unknown asset pair

Merk at noe tredjeparts programvare (mobilapper, trading bots, osv.) velger å skjule den originale API-feilen og presentere en tilpasset feil i stedet, derfor er et alternativt feilformat eller innhold mulig avhengig av programvaren som brukes.

  • Generelle bruksfeil

  • Rate limit-feil

  • Handelsfeil (plassering/kansellering av ordre)

  • Finansieringsfeil (innskudd/uttak)

  • Tjenestestatusfeil

  • Interne feil

  • Cloudflare (nettverks) feil

Generelle bruksfeil

Feilmeldinger om nektet tilgang returneres når API-klienten forsøker en oppgave som API-nøkkelen ikke har tillatelse til. For eksempel, hvis en API-klient forsøkte å hente kontosaldoen ved hjelp av en API-nøkkel som var konfigurert til å tillate handelstilgang, men ikke tilgang til kontoadministrasjon, ville feilmeldingen om nektet tilgang bli returnert. Du kan gjennomgå dine API-nøkler og deres innstillinger (som deres tillatelser) via Innstillinger -> API-fanen i kontoadministrasjonen. Du må sørge for at API-nøklene som brukes av tredjepartsappene dine, har alle innstillingene og tillatelsene som appene dine krever.

Denne feilen returneres når API-nøkkelen som brukes for kallet, enten er utløpt eller deaktivert. Vennligst gjennomgå API-nøkkelen i Innstillinger -> API-fanen i kontoadministrasjonen, eller generer en ny og oppdater applikasjonen din.

Du kan hente den komplette listen over våre aktivapar fra AssetPairs offentlige kall og se etter parnavnet som oppføringen i JSON-hodene eller via parameteren "altname": https://api.kraken.com/0/public/AssetPairs

Denne feilen returneres når en metode kalles uten de nødvendige parameterne. For eksempel, å kalle QueryOrders-metoden uten å spesifisere en gyldig transaksjons-ID (txid)-parameter ville føre til at feilen for ugyldige argumenter ble returnert. Å kalle en metode med unødvendige parametere ville fortsatt ikke returnere feilen for ugyldige argumenter, fordi de unødvendige parameterne ganske enkelt ville bli ignorert.

Feil med ugyldig signatur oppstår hvis enten din API-nøkkel eller API-hemmelighet er skrevet feil i programmet ditt, eller fordi POST-dataene som brukes i autentiseringen og POST-dataene som sendes til API-et, ikke stemmer overens.For ytterligere referanse er følgende eksempel på Python-kode for å implementere API-signaturalgoritmen. Den passende offentlige API-nøkkelen skal kopieres og limes inn fra kontoadministrasjonen, og API-metoden og POST-dataene skal oppdateres deretter. Utdataverdien kan brukes direkte som verdi for API-Sign HTTP-headeren. #!/usr/bin/env python

# Import required Python libraries
import time
import base64
import hashlib
import hmac

# Decode API private key from base64 format displayed in account management
api_secret = base64.b64decode("nmlrD83t1J+yVWKUBx9vD6j26C5zhC11tFfXpN+Ww+8oOVuGgse5AeADcvl95jYaD+UAi3D5CrVfFr8GfQ7zhA==")

# Variables (API method, nonce, and POST data)
api_path = "/0/private/TradeBalance"
api_nonce = str(int(time.time()*1000))
api_post = "nonce=" + api_nonce + "&asset=xxbt"

# Cryptographic hash algorithms
api_sha256 = hashlib.sha256(api_nonce + api_post).digest()
api_hmac = hmac.new(api_secret, api_path + api_sha256, hashlib.sha512)

# Encode signature into base64 format used in API-Sign value
api_signature = base64.b64encode(api_hmac.digest())

# API authentication signature for use in API-Sign HTTP header
print(api_signature)SHA256 beregnes ved hjelp av nonce-verdien selv og POST-dataene for API-metoden, og POST-DATA består av navn/verdi-par for nonce (igjen) og API-metodeparameterne. Et eksempel på dataene som skal sendes til SHA256 for TradeBalance-metoden vil være som følger:SHA256 = SHA256 av "1541933977000nonce=1541933977000&asset=xxbt"Strengverdien som sendes til SHA256 skal ikke inneholde ytterligere null (\0) verdier, og strengverdien skal ikke kodes som base64 eller hex (dvs. strengverdien skal være en ren tekststreng).URI-banen er hele URL-en til API-metoden bortsett fra "https://api.kraken.com"-prefikset, så URI-banen til TradeBalance-metoden (for eksempel) ville være strengverdien "/0/private/TradeBalance" uten ytterligere nullverdier.HMAC SHA512 beregnes ved hjelp av URI-banen og den tidligere beregnede SHA256-digest, med den base64-dekodede private API-nøkkelen som HMAC-nøkkel. Et eksempel på dataene som skal sendes til HMAC vil være som følger:HMAC SHA512 ved bruk av base64-dekodet privat nøkkel = HMAC av "/0/private/TradeBalanceSHA256"API-Key og API-Sign HTTP-headere er de eneste to påkrevde egendefinerte HTTP-headerne. API-Key-headeren er en eksakt duplikat av den offentlige API-nøkkelen fra kontoadministrasjonen. API-Sign-headeren er HMAC SHA512-digest kodet ved hjelp av base64.

Ugyldige sesjonsfeil returneres via WebSocket API, når et forsøk gjøres på å abonnere på en autentisert (privat) feed ved hjelp av et autentiseringstoken som ikke lenger er gyldig (for eksempel har utløpt).

Løsningen er ganske enkelt å be om et nytt autentiseringstoken via REST API GetWebSocketsToken-endepunktet, og bruke det nye tokenet for alle påfølgende autentiserte (private) abonnementsforespørsler.

En feil med ugyldig forespørsel indikerer at det er noe feil med den underliggende HTTP-forespørselen (ikke den påfølgende API-forespørselen), for eksempel uoverensstemmende URL-er mellom REST/WebSocket, eller at HTTP POST-dataene ikke er inkludert riktig:

% curl --data "" https://api.kraken.com/0/private/GetWebSocketsToken

{"error":["EAPI:Bad request"]}

Denne feilen returneres når endepunktet som kalles, ikke er et gyldig endepunkt.

Rate limit-feil

Mens det å legge til og kansellere ordre ikke teller mot våre standard API-tellergrenser, har disse operasjonene sin egen teller for å legge til og kansellere ordre. Denne telleren fungerer slik at jo lenger ordre blir liggende i ordreboken, desto flere ordre kan klienter legge til eller kansellere.

Midlertidige utestengelsesfeilmeldinger kan oppstå hvis du hadde for mange mislykkede API-kall eller for mange ugyldige nonce-feil i løpet av kort tid, eller ugyldige signaturer. Selv om disse kallene returnerer en feil, teller den feilen fortsatt mot dine API-grenser og kan føre til en midlertidig utestengelse.

Midlertidige utestengelser varer i omtrent 15 minutter. Etter å ha mottatt feilen om midlertidig utestengelse, vennligst vent 15 minutter før du sender nye API-forespørsler. Hvis du utløser flere ugyldige nonce-feil, vennligst øk nonce-vinduet, da dette kan bidra til å redusere hyppigheten av disse feilene. Vennligst prøv også å redusere hyppigheten av dine private API-kall.

Handelsfeil

Åpning av nye spotposisjoner med margin har blitt midlertidig suspendert på grunn av vedlikehold av handelsmotoren. Funksjonen vil snart være tilbake, og du kan følge med på oppdateringer på status.kraken.com.

En annen grunn kan være at spotposisjoner med margin for øyeblikket ikke er tilgjengelige for klienter bosatt i visse land.

På Kraken kan du ikke åpne en long- og short-posisjon for samme par.

Hvis du ønsker å åpne en long- og short-posisjon for samme valuta, velg forskjellige trading pairs med samme valuta som base- eller quote-valuta. F.eks.: short XBT/USD, long XBT/EUR.

Denne feilen oppstår når du har overskredet margin allowance-grensene for ditt nåværende verifiseringsnivå. Margin allowance-grensene for hver valuta varierer basert på ditt nåværende verifiseringsnivå.

Vi har begrensede midler tilgjengelig for margin extensions. Meldingen "insufficient margin" indikerer at vi for øyeblikket er tomme for midler i den aktuelle margin pool. Dette kan endre seg når som helst. Du kan kanskje lykkes med å plassere din ordre bare sekunder eller minutter senere, men high volume orders og ordrer plassert i perioder med høyt volum kan ta lengre tid. Vi beklager eventuelle ulemper dette medfører.

Denne feilen oppstår når det er utilstrekkelig Free Margin til å åpne en ny posisjon på kontoen, eller hvis det nåværende forsøket på å åpne en posisjon ville føre til at kontoens Free Margin faller under 100 %.

Du har ikke tilstrekkelige midler tilgjengelig for å plassere denne ordren. Vennligst gjennomgå dine åpne posisjoner og ordrer for elementer som kan holde tilbake midlene dine.

Du har ikke oppfylt minimum order volume for denne asset.

Du har overskredet maksimalt antall åpne ordrer tilgjengelig for din konto.

Disse grensene er basert på ditt verifiseringsnivå. Vennligst lukk noen av dine åpne ordrer eller verifiser kontoen din til et høyere nivå.

Du har overskredet maksimalt antall åpne posisjoner tilgjengelig for din konto.

Disse grensene er basert på ditt verifiseringsnivå. Vennligst lukk eller avvikle noen eller alle dine åpne posisjoner, eller verifiser kontoen din til et høyere nivå hvis mulig.

Et forsøk ble gjort på å redigere en eksisterende (åpen) ordre, men endringene kunne ikke fullføres. Mulige årsaker inkluderer utilstrekkelige midler for den nye ordren, noen partial fill-scenarier og noen leveraged orders.

Det nye volumet er mindre enn det allerede utførte/fylte volumet.

Ordrestørrelsen overskred margin position size limit for trading pair.

Display volume har ikke oppfylt minimum order volume.

Display volume må være mindre enn volumet av ordren.

Iceberg orders er ikke kompatible med andre order types enn en limit order.

Feil ved finansiering

Hver crypto currency har maksimalt 5 nye (ubrukte) deposit addresses, hvoretter ethvert forsøk på å opprette en 6. ny adresse vil returnere en feil.

Denne feilen returneres når funding endpoints kalles med en ugyldig eller manglende "method"-parameter. 

"Key"-inputparameteren samsvarer ikke med adressebeskrivelsen som er angitt i account management (via Funding -> Withdraw).

Minimum withdrawal amounts per currency varierer, og ethvert forsøk på uttak under minimumsbeløpet vil resultere i denne feilen.

Dette er en generell feil som indikerer at en funding request ikke kunne fullføres (for eksempel vil klienter fra visse steder som forsøker å gjøre on chain staking requests forårsake denne feilen).

Det forespurte uttaket kunne ikke fullføres fordi destinasjonsadressen mangler nødvendig informasjon om begunstiget/mottaker (merk at dette for øyeblikket kun gjelder utvalgte uttak fra kanadiske kontoer).

Feil i tjenestestatus

Tjenestefeilene du opplever, skal kun være midlertidige. Du kan prøve å sende inn forespørslene dine på nytt hvis de har mislyktes. Vi vil overvåke problemene og oppdatere siden vår:

https://status.kraken.com/

Interne feil

Når vi opplever API-degraderingsproblemer, kan dette føre til problemer for Kraken i form av meldinger om utilgjengelig tjeneste og nettstedbrudd.

Dette problemet handler om sikkerheten til kontoen din, som kan ha blitt kompromittert. Vennligst endre passordet ditt og tofaktorautentisering, og kontakt vårt brukerstøttesenter.

Denne feilen oppstår når et flagg eller en inndataparameter er midlertidig eller permanent deaktivert. Feilen skal komme fra en av de overførte inndataene. Vennligst kontakt vår brukerstøtte og send en logg med den fullstendige informasjonen som ble brukt for kallet som genererte feilen.

Disse 5xx- og 10xx-feilene er ikke faktisk API-feil, men snarere webserverfeil fra Cloudflare.

API-feil returneres alltid i JSON-format, for eksempel “error”:[“ErrorType:ErrorMessage”], så når en feil i et annet format mottas (som en HTTP-statuskode på 520, 504, 502, 1020 osv.), er den midlertidige løsningen å prøve API-kallet igjen kort tid etterpå, og forhåpentligvis vil kallet da lykkes.

Trenger du mer hjelp?