API

En savoir plus sur notre API

API WebSockets

Documentation WebSockets

REST API

Utilisation Générale

Remarque: Toutes les URL de l'API doivent utiliser le domaine api.kraken.com.

Les méthodes publiques peuvent utiliser GET ou POST.

Les méthodes privées doivent utiliser POST et être configurées comme suit:

Entête HTTP:

API-Key = Clé API
API-Sign = Signature du message avec le hachage HMAC-SHA512 (adresse URI + SHA256 (données nonce + POST)) et la valeur base64 de la clé d'API secret

Données Post:

nonce = Valeur incrémentielle d'entier non signé de 64 bits
otp = Authentification à 2 facteurs (dans le cas d'avoir 2FA activé, non requis autrement)

Remarque: Il n'est pas possible de réinitialiser la valeur du nonce à une valeur inférieure. Assurez-vous d'utiliser une méthode de génération qui ne génère jamais de nombres inférieurs à ceux existants. Il est recommandé d'utiliser un compteur persistant ou l'heure actuelle avec une précision au centième de seconde ou plus. Trop de demandes avec des valeurs de nonces inférieures à la dernière nonce valide (EAPI: Invalid nonce) peuvent entraîner des blocages de service temporaires.

Remarque: Certaines demandes peuvent arriver désordonnées ou le protocole NTP peut causer le recul de l'horloge, ce qui peut entraîner des problèmes avec le nonce. Si vous rencontrez ce problème, vous pouvez modifier l'intervalle de nonce à partir des paramètres de l'API de votre compte. La valeur de l'intervalle dépend de votre méthode pour augmenter le nonce. En fonction du type de connectivité disponible, il est recommandé de définir une valeur qui tolère 3 à 15 secondes de perturbations de réseau.

Les appels d'API devant indiquer une valeur d'actif/devise peuvent utiliser le nom ISO4217-A3 dans le cas de noms enregistrés ISO, leur code habituel à 3 lettres pour les noms non enregistrés ou leur code X-ISO4217-A3 (voir http://www.ifex-project.org/).

Les réponses seront en JSON sous la structure suivante:

error = tableau de messages d'erreur au format suivant:
    <char-severity code><string-error category>:<string-error type>[:<string-extra info>]
    le code de sévérité peut être E pour erreur ou W pour avertissement
result = résultat de l'appel API (peut ne pas être présent si des erreurs se produisent)

Remarque: Vous devez faire attention lorsque vous manipulez un nombre représenté sous forme de chaîne de caractères, car cela pourrait déborder des types de données standard.

Limites de requêtes API

Nous avons également des mesures de sécurité pour nous protéger contre les abus ou les attaques de type DoS ainsi que contre la manipulation du carnet d’ordres causée par le placement et l’annulation rapides des transactions.

Chaque utilisateur de notre API a un "compteur d'appels" qui commence à 0.

Les appels de registre/trading augmentent le compteur de 2

La création/annulation d'un ordre n'affect pas le compteur

Tous les autres appels API augmentent le compteur de 1.

Le compteur de l'utilisateur est réduit toutes les quelques secondes et s'il dépasse le nombre maximal d'accès, les appels à l'API de l'utilisateur sont suspendus pendant 15 minutes. Les utilisateurs du niveau de base ont un maximum de 15 et leur nombre est réduit de 1 toutes les 3 secondes. Les utilisateurs des niveaux intermédiaire et pro en ont au maximum 20; Le nombre est réduit de 1 toutes les 2 secondes pour les utilisateurs de niveau intermédiaire et de 1 toutes les secondes pour les utilisateurs de niveau Pro.

Bien que la création et l'annulation d'ordres n'augmente pas le compteur, il existe des limites distinctes pour éviter toute manipulation du carnet d'ordres. Exécuter des ordres à compléter et maintenir l'exécution selon un rapport de 1 appel/seconde est généralement suffisant pour ne pas atteindre cette limite.

Données du marché public

Obtenez l'heure du serveur

URL: https://api.kraken.com/0/public/Time

Résultat: Heure du serveur

unixtime =  en horodatage unix
rfc1123 = en horodatage RFC 1123

Remarque: permet d'estimer l'écart entre le serveur et le client.

Obtenir l'information d'un actif

URL: https://api.kraken.com/0/public/Assets

Input:

info = information souhaitée (facultatif):
    info = toute l'information (défaut)
aclass = classe d'actif (facultatif):
    currency (par défaut)
asset = liste d'actifs séparés par des virgules pour lesquels des données sont souhaitées (facultatif, par défaut = tous pour la classe d'actifs sélectionnée)

Résultat: tableau avec les noms des actifs et leurs informations associées

<asset_name> = nom de l'actif
    altname = nom alternatif
    aclass = classe d'actif
    decimals = scaling decimal places for record keeping
    display_decimals = nombre de décimales visibles souhaitées

Obtenir les pairs d'actifs négociables

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

Input:

info = Informations souhaitées (facultatif):
    info = toute l'information (par défaut)
    leverage = information de levier
    fees = grille tarifaire
    margin = information de marge
pair = liste séparée par des virgules de paires d'actifs pour lesquelles des données sont souhaitées (facultatif, par défaut = tout)

Résultat: tableau avec les noms des paires et leurs informations

<pair_name> = nom de la paire
    altname = nom alternatif de la paire
    wsname = Nom de la paire WebSocket (si disponible)
    aclass_base = classe d'actif de base
    base = ID d'actif de base
    aclass_quote = classe d'actif de cotation
    quote = ID d'actif de cotation
    lot = Taille du lot (volume)
    pair_decimals = nombre de décimales pour la paire
    lot_decimals = nombre de décimales pour le volume
    lot_multiplier = facteur de multiplication du volume du lot pour obtenir le volume de la devise
    leverage_buy = tableau de montants de levier disponibles lors de l'achat
    leverage_sell = tableau de montants de levier disponibles lors de la vente
    fees = tableau avec la grille de taux en tuples [volume, taux en pourcentage]
    fees_maker = tableau avec la grille de taux maker en tuples [volume, pourcentage des frais] (si le maker / taker s'applique)
    fee_volume_currency = devise d'escompte pour volume
    margin_call = niveau d'appel de marge
    margin_stop = niveau de liquidation de marge

Remarque: Si une paire d'actifs figure dans le tableau de type maker/taker, le taker sera affiché dans "fees" et maker sera affiché dans "fees_maker". Pour les paires qui ne sont pas maker/taker, elles seront seulement affichées dans "fees".

Information sur les Ticker

URL: https://api.kraken.com/0/public/Ticker

Entrée:

pair = liste séparée par des virgules de paires d'actifs pour lesquelles des données sont souhaitées

Résultat: tableau avec le nom des paires et l'information reliée à leur ticker

<pair_name> = nom de la paire
    a = tableau de demandes(<price>, <whole lot volume>, <lot volume>),
    b = tableau d'offres(<price>, <whole lot volume>, <lot volume>),
    c = tableau du dernier trade fermé(<price>, <lot volume>),
    v = tableau de volume(<today>, <last 24 hours>),
    p = tableau de prix du volume moyen (<today>, <last 24 hours>),
    t = tableau du nombre de trades(<today>, <last 24 hours>),
    l = tableau minimums(<today>, <last 24 hours>),
    h = tableau maximums(<today>, <last 24 hours>),
    o = prix d'ouverture aujourd'hui

Remarque: Le prix d'aujourd'hui commence à 00:00:00 UTC

Obtenir données OHLC (Ouverture, Maximum, Minimum, Fermeture

URL: https://api.kraken.com/0/public/OHLC

Entrée:

pair = paire d'actifs sur lesquels vous souhaitez obtenir des données OHLC
interval = intervalle de temps en minutes (facultatif):
	1 (défaut), 5, 15, 30, 60, 240, 1440, 10080, 21600
since = retourne les données OHLC validées depuis l'id donné (facultatif. exclusif)

Résultat: tableau de nom de paire et de données OHLC

<pair_name> = nom de paire
    tableau du tableau des entrées(<time>, <open>, <high>, <low>, <close>, <vwap>, <volume>, <count>)
last = ID à utiliser comme lors de la recherche de nouvelles données OHLC validées

Remarque: la dernière entrée du tableau OHLC concerne la trame actuelle non encore validée et sera toujours présente quelle que soit la valeur "since".

Obtenir livre des ordres

URL: https://api.kraken.com/0/public/Depth

Input:

pair = paire d'actifs pour obtenir la profondeur du marché pour
count = nombre maximum de demandes/offres (facultatif)

Résultat: tableau de la paire et de la profondeur du marché

<pair_name> = nom de la paire
    asks = côté tableau d'entrées de tableau de demandes(<price>, <volume>, <timestamp>)
    bids = côté tableau d'entrées de tableau d'offres(<price>, <volume>, <timestamp>)

Obtenir trades récents

URL: https://api.kraken.com/0/public/Trades

Entrée:

pair = paire d'actifs sur lesquels vous souhaitez obtenir des données de trades
since = retourne les données de trades à partir de l'heure indiquée (facultatif, exclusif)

Résultat: tableau de noms de paires et de données de trades récents

<pair_name> = nom de la paire
    tableau d'entrées(<price>, <volume>, <time>, <buy/sell>, <market/limit>, <miscellaneous>)
last = id à utiliser dans le champ since afin d'obtenir des nouvelles données de trades

Obtenir les données de spread récentes

URL: https://api.kraken.com/0/public/Spread

Input:

pair = paire d'actifs pour obtenir des données de spread
since = retourne les données de spread depuis l'id donné (facultatif. inclusif)

Résultat: tableau du nom de la paire et des données de spread récentes

<pair_name> = nom de la paire
    tableau des entrées(<time>, <bid>, <ask>)
last = id à utiliser dans le champ since afin d'obtenir des nouvelles données de spread

Remarque: "since" est inclusif de sorte que toutes les données renvoyées avec la même heure que l'ensemble précédent doivent remplacer toutes les entrées de l'ensemble précédent

Données d'utilisateur privé

Obtenir le solde du compte

URL: https://api.kraken.com/0/private/Balance

Résultat: tableau de noms d'actif et montant du solde

Obtenir la balance de trade

URL: https://api.kraken.com/0/private/TradeBalance

Input:

aclass = classe d'actif (facultatif):
    currency (par défaut)
asset = actif de base utilisé pour déterminer le solde (par défaut = ZUSD)

Résultat: tableau d'informations sur la balance de trade

eb = solde équivalent (solde combiné de toutes les devises) 
tb = balance de trade (balance combinée de toutes les devises capital) 
m = montant de la marge des positions ouvertes
n = résultat net non réalisé profit/perte de positions ouvertes
c = coût de base des positions ouvertes
v = valeur flottante actuelle des positions ouvertes 
e = capital = balance de trade + résultat net non réalisé profit/perte de positions ouvertes
mf = marge libre = capital - marge initiale (marge maximale disponible pour ouvrir de nouvelles positions)
ml = niveau de marge = (capital / marge initiale) * 100

Remarque: Les taux utilisés pour l'évaluation flottante sont la moyenne entre la meilleure offre et les prix de vente.

Obtenir les ordres ouverts

URL: https://api.kraken.com/0/private/OpenOrders

Input:

trades = inclure les trades ou non dans la requête (facultatif. par défaut = faux) 
userref = restreindre les résultats à un identifiant de référence utilisateur donné (facultatif) 

Résultat: tableau d'informations de commande dans un tableau ouvert avec txid comme clé

refid = identifiant de référence de la transaction qui a créé cette commande
userref = identifiant de référence de l'utilisateur
status = état de l'ordre
    pending = ordre en attente d'entrer dans le livre
    open = ordre ouvert
    closed = ordre fermé
    canceled = ordre annulé
    expired = ordre expiré
opentm = horodatage Unix où la commande a été passée
starttm = horodatage Unix de l'heure de début de la commande (ou 0 s'il n'est pas configuré)
expiretm = horodatage Unix de l'heure de fin de la commande (ou 0 s'il n'est pas configuré)
descr = description de l'ordre 
    pair = pair d'actifs
    type =  type de commande (achat/vente) 
    ordertype = type de commande (voir  Ajouter une commande standard )  
    price = prix primaire
    price2 = prix secondaire
    leverage = montant de l'effet de levier 
    order = description de l'ordre
    close = description de l'ordre de fermeture conditionnel (si l'ensemble de fermeture conditionnel est défini) 
vol = volume de l'ordre (devise de base sauf si viqc est défini sur oflags
vol_exec = volume exécuté (devise de base, sauf si viqc est définie dans oflags) 
cost = coût total (devise de cotation sauf si viqc n'est pas défini dans oflags) 
fee =total des frais (total de cotation) 
price = prix moyen (devise de cotation sauf si viqc est définie dans oflags) 
stopprice = prix stop (devise de cotation, pour les trailing stops)
limitprice = prix limite de déclenchement (devise de cotation, lorsque le type d'ordre basé sur la limite est déclenché)
misc = liste délimitée par des virgules d'informations diverses 
    stopped = déclenché par prix stop 
    touched = déclenché par une touche de prix 
    liquidated = liquidation
    partial = remplissage partiel
oflags = liste d'indicateurs d'ordre séparés par des virgule
    viqc = volume en devise de cotation 
    fcib = préférer frais dans la devise de base (défaut en cas de vente)
    fciq = préférer frais dans la devise de cotation (par défaut si achat)
    nompp = pas de protection des prix du marché
trades = tableau d'identifiants de transaction liés à l'ordre (si des informations sur les transactions sont demandées et les données disponibles) 

Remarque: sauf indication contraire, les coûts, les frais, les prix et les volumes correspondent à ceux de la paire d'actifs, et non à ceux de la devise. Par exemple, si la paire d'actifs utilise une taille de lot avec une échelle de 8, le volume utilisera une échelle de 8, même si la devise qu'elle représente n'a qu'une échelle de 2. De même, si l'échelle de prix de la paire d'actifs est de 5 , l’échelle restera égale à 5, même si la monnaie sous-jacente à une échelle de 8.

Get closed orders

URL: https://api.kraken.com/0/private/ClosedOrders

Input:

trades = inclure ou non les trades dans les résultats (facultatif. par défaut = faux)
userref = restreindre les résultats à un identifiant de référence utilisateur donné (facultatif)
start = l'horodatage Unix du début ou l'ordre tx id des résultats (facultatif. exclusif)
end =  l'horodatage Unix de fin ou ordre tx id des résultats (facultatif, inclusif) 
ofs = décalage du résultat
closetime = quelle heure utiliser (facultatif) 
    open
    close
    both (défaut)

Résultat: tableau d'informations de commande

closed = tableau d'informations de commande. Voir  Obtenir les commandes en cours . Champs supplémentaires: 
    closetm = horodatage unix de la fermeture de l'ordre 
    reason = informations supplémentaires sur le statut (le cas échéant)
count = quantité de critères de correspondance disponibles pour les informations de commande

Remarque: les temps donnés par les identificateurs d'ordre sont plus précis que les horodatages Unix. Si un ID tx de commande est indiqué pour l'heure, l'heure d'ouverture de la commande est utilisée

Information sur les ordres

URL: https://api.kraken.com/0/private/QueryOrders

Entrée:

trades = inclure ou non les trades dans les résultats (facultatif. défaut = faux)
userref = restreindre les résultats à un identifiant de référence utilisateur donné (facultatif)
txid = liste délimitée par des virgules d'id de transaction sur laquelle rechercher des informations sur (50 maximum)

Résultat: tableau associatif d'informations sur les ordres

<order_txid> = Informations des ordres.  Voir Obtenir ordres ouverts/Obtenir ordres fermés

Obtenir l'historique des trades

URL: https://api.kraken.com/0/private/TradesHistory

Entrée:

type = type de trade (facultatif)
    all = tous les types (par défaut) 
    any position = n'importe quelle position (ouverte ou fermée)
    closed position = positions fermées 
    closing position = toute transaction clôturant tout ou la partie d'une position
    no position = trades non positionnels
trades = inclure ou non les trades liés à la position dans la sortie (facultatif. par défaut = faux)
start = l'horodatage Unix du début ou l'ordre tx id des résultats (facultatif. exclusif)
end = l'horodatage Unix de fin ou ordre tx id des résultats (facultatif, inclusif) 
ofs = décalage du résultat

Résultat: tableau d'informations de trades

trades = tableau d'informations de trades avec txid comme clé
    ordertxid = ordre responsable de l'exécution du trade 
    pair =  paire d'actifs 
    time = horodatage unix du trade
    type = type de trade (achat/vente)
    ordertype = type d'ordre
    price = prix moyen de l'ordre exécuté (devise de cotation)
    cost = coût total de l'ordre (devise de cotation)
    fee = frais (devise de cotation)
    vol = volume (devise de base)
    margin = marge initiale (devise de cotation)
    misc = liste délimitée par des virgules d'informations diverses
        closing = trade ferme tout ou une partie d'une position
count = quantité de trades qui correspondent au critères

Si le trade a ouvert une position, les champs suivants sont également présents dans l'info du trade:

    posstatus = statut de position (ouvert/fermé) 
    cprice = prix moyen de la partie fermée de la position (devise de cotation)
    ccost = coût total de la partie fermée de la position (devise de cotation) 
    cfee = total des frais de la partie fermée de la position (devise de cotation) 
    cvol = total des frais de la partie fermée de la position (devise de cotation)
    cmargin = marge totale libérée dans la partie fermée de la position (devise de cotation)
    net = bénéfice net/perte de la partie fermée de la position (devise de cotation, échelle de devise de cotation)
    trades = liste des trades de clôture pour position (si disponible) 

Remarque:

  • Sauf indication contraire, les coûts, les frais, les prix et les volumes correspondent à ceux de la paire d'actifs, et non à ceux de la devise.
  • Les temps donnés par les identifiants tx commerciaux sont plus précis que les horodatages Unix.

Obtenir information sur les trades

URL: https://api.kraken.com/0/private/QueryTrades

Entrée:

txid = liste délimitée par des virgules des identifiants de transaction sur lesquels demander des informations (20 maximum)
trades =  inclure ou non les trades dans les résultats (facultatif. défaut = faux)

Résultat: tableau associatif d'informations sur les transactions

<trade_txid> = informations des trades.  Voir Obtenir l'historique des trades

Obtenir les positions ouvertes

URL: https://api.kraken.com/0/private/OpenPositions

Input:

txid =  liste délimitée par des virgules d'id de transaction pour restreindre les résultats
docalcs =  inclure ou non les calculs de profits/pertes (facultatif. défaut = faux) 

Résultat: tableau associatif d'informations de position ouverte

<position_txid> = information de position ouverte
    ordertxid = ordre responsable de l'exécution du trade
    pair = paire d'actifs
    time = horodatage unix du trade
    type = type de commande utilisé pour ouvrir une position (achat/vente) 
    ordertype = type d'ordre utilisé pour ouvrir une position
    cost = coût d'ouverture de la position (devise de cotation, sauf si viqc définie dans un décalage) 
    fee = frais d'ouverture de la position (devise de cotation)
    vol =  volume de la position (devise de base sauf si viqc est défini sur oflags) 
    vol_closed = volume de position fermé (devise de base sauf si viqc est défini dans oflags)
    margin = marge initiale (devise de cotation) 
    value = valeur actuelle de la position restante (si docalcs demandé, devise de cotation) 
    net = bénéfice non réalisé/perte de la position restante (si docalcs demandé. devise de cotation, échelle de devise de cotation)
    misc = liste délimitée par des virgules d'informations diverses 
    oflags = liste d'indicateurs d'ordre séparés par des virgules
        viqc = volume en devise de cotation

Remarque: sauf indication contraire, les coûts, les frais, les prix et les volumes correspondent à ceux de la paire d'actifs, et non à ceux de la devise.

Obtenir information sur les ledgers

URL: https://api.kraken.com/0/private/Ledgers

Entrée:

aclass = classe d'actif (facultatif): 
    currency (défaut)
asset = liste délimitée par des virgules d'actifs pour restreindre les résultats (facultatif. défaut = tout)
type = type de ledger à récupérer (facultatif): 
    tout (par défaut) 
    dépôt
    retrait
    trade
    marge
start = l'horodatage Unix du début ou l'ordre tx id des résultats (facultatif. exclusif)
end =  l'horodatage Unix de fin ou ordre tx id des résultats (facultatif, inclusif) 
ofs = décalage du résultat

Résultat: tableau associatif d'informations sur les ledgers

<ledger_id> = information ledger
    refid = id de référence 
    time = horodatage du ledger
    type = type d'entrée du ledger
    aclass = classe d'actif 
    asset = actif
    amount = montant de la transaction
    fee = frais de transaction 
    balance = solde résultant 

Remarque: les heures indiquées par les identifiants de ledger sont plus précis que les horodatages Unix.

Requête de ledgers

URL: https://api.kraken.com/0/private/QueryLedgers

Entrée:

id = liste délimitée par des virgules des identifiants de ledger sur lesquels rechercher des informations sur (20 maximum)

Résultat: tableau associatif d'informations sur les ledgers

<ledger_id> = information de ledger.  Voir Obtenir information sur les ledgers

Obtenir le volume des trades

URL: https://api.kraken.com/0/private/TradeVolume

Entrée:

pair = liste délimitée par des virgules de paires d'actifs pour obtenir des informations sur les frais (facultatif)
fee-info = inclure ou non les infos de frais dans les résultats (facultatif) 

Résultat: tableau associatif

currency = devise de volume 
volume = volume d'escompte actuel 
fees =  tableau de paires d'actifs et informations sur le niveau de frais (si demandé)
    fee = frais actuel en pourcentage
    minfee = frais minimum pour la paire (si frais n'est pas fixe) 
    maxfee = maximum fee for pair (si frais n'est pas fixe)
    nextfee = frais du prochain palier pour la paire (si frais n'est pas fixe.  néant si au palier le plus bas)
    nextvolume = niveau de volume du pallier suivant (si frais n'est pas fixe.  néant si au palier le plus bas)
    tiervolume = niveau de volume du pallier actuel (si frais n'est pas fixe.  néant si au palier le plus bas)
fees_maker = un tableau des paires d'actifs et des informations sur les niveaux de frais du maker (si demandé) pour toutes les paires figurant dans la grille maker/taker 
    fee = frais actuel en pourcentage
    minfee = frais minimum pour la paire (si frais n'est pas fixe)
    maxfee = frais maximum pour la paire (si frais n'est pas fixe)
    nextfee = frais du prochain palier pour la paire (si frais n'est pas fixe.  néant si au palier le plus bas)
    nextvolume = niveau de volume du pallier suivant (si frais n'est pas fixe.  néant si au palier le plus bas)
    tiervolume = niveau de volume du pallier actuel (si frais n'est pas fixe.  néant si au palier le plus bas)

Remarque: Isi une paire d'actifs est sur une liste de frais maker/taker, le taker est donné en "frais" et le maker en "fees_maker". Pour les paires ne faisant pas partie du maker/taker, les frais ne seront indiqués qu'en "fees".

Exporter un rapport

URL: https://api.kraken.com/0/private/AddExport

Entrée:

description = description du rapport 
report = type de rapport (trades/ledgers)
format = (CSV/TSV) (facultatif. par défaut = CSV) 
fields = liste délimitée par des virgules de champs à inclure dans le rapport (facultatif. défaut = tous) 
    Remarque: les options de champ sont basées sur le type de rapport.
    <trades>
        ordertxid
        time
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <ledgers>
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance
asset = liste délimitée par des virgules d'actifs pour restreindre les résultats (facultatif. default = tout)
starttm = heure de début du rapport (facultatif. par défaut = un an avant maintenant):
    <n> = horodatage unix de l'heure de début 
endtm = heure de fin du rapport (facultatif. par défaut = maintenant):
    <n> = horodatage unix de l'heure de fin 

Résultat:

id = identifiant de rapport 

Errors: les erreurs incluent (sans s'y limiter):

EGeneral:arguments invalides
EQuery:paire d'actifs inconnue 

Obtenir les statuts d'exportation

URL: https://api.kraken.com/0/private/ExportStatus

Entrée:

report = type de rapport (trades/ledgers)

Résultat: tableau de rapports et leurs informations

id = identifiant de rapport 
descr = description du rapport 
format = (CSV/TSV)
report = type de rapport (trades/ledgers)
status = statut:
    Queued = le rapport a été mis en file d'attente pour la création 
    Processing = le rapport est en cours de traitement 
    Processed = le rapport a été traité 
createdtm = temps de la création du rapport
expiretm =  temps d'expiration du rapport
starttm = heure de début du rapport 
endtm = heure de fin du rapport
completedtm = heure à laquelle le rapport a été complété
aclass = classe d'actif
asset = liste d'actifs délimitée par des virgules 
fields = liste de champs délimités par des virgules 
    <trades>
        txid
        ordertxid
        pair
        time
        type
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <ledgers>
        txid
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance

Erreurs: les erreurs incluent (sans s'y limiter):

EGeneral:Arguments invalides

Obtenir le rapport d'exportation

URL: https://api.kraken.com/0/private/RetrieveExport

Entrée:

id = identifiant de rapport 

Résultat: archive zip binaire contenant le rapport

Remarque: si le type de contenu n'est pas application / json, text ou html, le rapport binaire sera renvoyé. Si c'est un de ces types vous pouvez vous attendre à une erreur dans la réponse.

Remarque: en fonction du type de rapport choisi et des champs choisis, le rapport pourrait avoir les champs suivants. Les champs avec un * sont toujours présent.

<trades>
    *txid
    ordertxid
    *pair
    time
    *type
    ordertype
    price
    cost
    fee
    vol
    margin
    misc
    ledgers
<ledgers>
    *txid
    refid
    time
    type
    aclass
    asset
    amount
    fee
    balance

Supprimer le rapport d'exportation

URL: https://api.kraken.com/0/private/RemoveExport

Entrée:

type = type de suppression (annuler/supprimer)
id = identifiant de rapport 

Résultat: bool avec le résultat de l'appel

cancel/delete = type de suppression

Remarque: le type de suppression delete, ne peut être utilisé que pour un rapport qui: a déjà été traité. Utilisez cancel pour les statuts en file d'attente et de traitement.

Erreurs: les erreurs incluent (sans s'y limiter):

EGeneral:Arguments invalides
WExport:Déjà traité 

Remarque: dans le cas où une opération d'annulation ou de suppression a déjà eu lieu sur un identifiant de rapport particulier, vous obtiendrez l'erreur WExport:Already processed error.




Trading par utilisateur privée

Ajouter une commande standard

URL: https://api.kraken.com/0/private/AddOrder

Entrée:

pair = paire d'actifs 
type = type de commande (achat/vente) 
ordertype = type d'ordre: 
    market
    limit (price = prix limite)
    stop-loss (price = prix stop loss)
    take-profit (price = prix take profit)
    stop-loss-profit (price = prix stop loss, price2 = prix take profit)
    stop-loss-profit-limit (price = prix stop loss, price2 = prix take profit)
    stop-loss-limit (price = prix déclenchement stop loss, price2 = prix limite de déclenchement)
    take-profit-limit (price = prix déclenchement de take profit, price2 = prix limite de déclenchement)
    trailing-stop (price = décalage trailing stop)
    trailing-stop-limit (price = décalage trailing stop, price2 = décalage limite déclenché)
    stop-loss-and-limit (price = prix stop loss, price2 = prix limite)
    settle-position
price = prix (optionnel. dépend du ordertype)
price2 = prix secondaire (optionnel. dépend du ordertype)
volume = volume de commande en lots 
leverage = montant de l'effet de levier souhaité (facultatif. valeur par défaut = aucune) 
oflags = liste d'indicateurs d'ordre séparés par des virgules (facultatif): 
    viqc = volume en devise de cotation (non disponible pour les commandes à effet de levier) 
    fcib = préférer frais dans la devise de base 
    fciq = préférer frais dans la devise de cotation 
    nompp = pas de protection des prix du marché 
    post = ordre seulement post (disponible lorsque ordertype = limit) 
starttm = heure de début planifiée (facultatif):
    0 = maintenant (par défaut)
    +<n> = heure de début <n> secondes à partir de maintenant
    <n> = horodatage unix de l'heure de début 
expiretm = heure d'expiration (facultatif): 
    0 = pas d'expiration (par défault)
    +<n> = expire <n> secondes à partir de maintenant
    <n> = horodatage unix de l'heure d'expiration
userref = id de référence de l'utilisateur. Numéro signé 32 bits. (facultatif)
validate = valider uniquement les entrées. ne pas soumettre d'ordres (facultatif)

ordre de fermeture facultatif à ajouter au système lorsque l'ordre est rempli: 
    close[ordertype] = type d'ordre 
    close[price] = prix
    close[price2] = prix secondaire

Résultat:

descr = description
    order = description de l'ordre
    close = description de l'ordre de fermeture conditionnel (si l'ensemble de fermeture conditionnel est défini)
txid =  tableau d'identifiants de transaction pour l'ordre (si l'ordre a été ajoutée avec succès)

Erreurs: les erreurs incluent (sans s'y limiter):

EGeneral:Arguments invalides
EService:Indisponible
ETrade:Requête invalide
EOrder:Impossible d'ouvrir la position
EOrder:Impossible d'ouvrir position adverse
EOrder:Marge dépassée
EOrder:Niveau de marge trop bas
EOrder:Marge insuffisante (l’exchange ne dispose pas de fonds suffisants pour permettre le trading de marge)
EOrder:Fonds insuffisants (fonds d'utilisateurs insuffisants) 
EOrder:Minimum d'ordre non atteint (volume trop faible)
EOrder:Limite d'ordres dépassée
EOrder:Limite de positions dépassée
EOrder:Limite de débit dépassée
EOrder:Limite de commandes planifiées dépassées
EOrder:Position inconnue

Remarque:

  • Voir Obtenir des paires d'actifs de trade pour plus d'informations sur les prix, les lots et l'effet de levier des paires d'actifs.
  • Les prix peuvent être précédés de +, - ou # pour indiquer le prix sous forme de montant relatif (à l'exception des trailing stops, qui sont toujours relatifs). + ajoute le montant au prix actuel offert. - soustrait le montant du prix actuel offert. # additionne ou soustrait le montant au prix actuel proposé, en fonction du type et du type de commande utilisé. Les prix relatifs peuvent porter le suffixe avec un% pour indiquer le montant relatif sous forme de pourcentage du prix proposé.
  • Pour les ordres utilisant l'effet de levier, vous pouvez utiliser 0 pour que le volume remplisse automatiquement le volume nécessaire pour fermer votre position.
  • Si vous recevez le message d'erreur "EOrder:accord de trade requis", reportez-vous à la page de gestion des clés de votre API pour plus de détails.

Annuler une commande ouverte

URL: https://api.kraken.com/0/private/CancelOrder

Entrée:

txid = identifiant de transaction 

Résultat:

count = nombre de commandes annulées
pending = si défini, ordre(s) est/sont en attente d'annulation

Remarque: txid peut être un identifiant de référence utilisateur.

Exemple de clients API

Vous trouverez ci-dessous des exemples de bibliothèques de code client API pouvant être utilisées lors de l'écriture de votre propre client API. Veuillez garder à l'esprit que Payward, ni les auteurs tiers, ne sont responsables des pertes dues à des bogues ou à une utilisation incorrecte des API. Payward a procédé à un examen initial de la sécurité du code tiers avant de les répertorier, mais ne peut garantir aucune modification ajoutée depuis. Si vous avez des doutes, contactez le support.

C

Voir le tiers créé https://github.com/hANSIc99/Kraken_C_API.

C#

Voir le tiers créé https://bitbucket.org/arrivets/krakenapi.

C++

Voir le tiers créé https://github.com/voidloop/krakenapi.

GO

Voir le tiers créé https://github.com/Beldur/kraken-go-api-client.

Node.JS

Voir le tiers créé https://github.com/nothingisdead/npm-kraken-api.

PERL

Voir le tiers créé http://search.cpan.org/~philippe/Finance-Bank-Kraken-0.1/.

Python 3

Voir le tiers créé https://github.com/veox/python3-krakenex.

Python 2

Voir le tiers créé https://github.com/veox/python2-krakenex.

Ruby

Voir le tiers créé https://github.com/jonatack/kraken_ruby_client.

PHP

L’équipe de Kraken a fourni une bibliothèque PHP de base pour l’interfaçage avec l’API REST de Kraken. Les exemples de source et d'utilisation sont également disponibles sur kraken-api-client github repository and is MIT licensed.

Bibliothèque

Utilisez cette classe de bibliothèque pour appeler la API Kraken REST avec un client PHP. It automatically determines the API method's correct URL path, generates a nonce for each request, and adds a signed header using your API secret and the generated nonce.

<?php
/**
* Implémentation de référence pour l'API REST de Kraken.
*
* Voir https://www.kraken.com/help/api pour plus d'informations.
*
*
* La licence MIT (MIT)
*
* Copyright (c) 2013 Payward, Inc
* 
* L'autorisation est accordée, gracieusement, à toute personne acquérant une copie
* de cette bibliothèque et des fichiers de documentation associés (la "Bibliothèque"),
* de commercialiser la Bibliothèque sans restriction, notamment les droits d'utiliser,
* de copier, de modifier, de fusionner, de publier, de distribuer, de sous-licencier
* et/ou de vendre des copies de la Bibliothèque, ainsi que d'autoriser les personnes
* auxquelles la Bibliothèque est fournie à le faire, sous réserve des conditions
* suivantes :
*
* La déclaration de copyright ci-dessus et la présente autorisation doivent être
* incluses dans toutes copies ou parties substantielles de la Bibliothèque.
*
* LA BIBLIOTHÈQUE EST FOURNIE "TELLE QUELLE", SANS GARANTIE D'AUCUNE
* SORTE, EXPLICITE OU IMPLICITE, NOTAMMENT SANS GARANTIE DE QUALITÉ
* MARCHANDE, D’ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE
* CONTREFAÇON. EN AUCUN CAS, LES AUTEURS OU TITULAIRES DU DROIT D'AUTEUR
* NE SERONT RESPONSABLES DE TOUT DOMMAGE, RÉCLAMATION OU AUTRE
* RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UN CONTRAT, D'UN DÉLIT OU
* AUTRE, EN PROVENANCE DE, CONSÉCUTIF À OU EN RELATION AVEC LA
* BIBLIOTHÈQUE OU SON UTILISATION, OU AVEC D'AUTRES ÉLÉMENTS DE LA
* BIBLIOTHÈQUE.
*/

class KrakenAPIException extends ErrorException {};

class KrakenAPI
{
protected $key; // clé API
protected $secret; // secret API
protected $url; // URL de base de l'API
protected $version; // version API
protected $curl; // curl handle

/**
* Constructeur pour l'API Kraken
*
* @param string $key clé API
* @param string $secret secret API
* @param string $url base URL pour l'API Kraken
* @param string $version version API
* @param bool $sslverify activer/désactiver la vérification de paire SSL. désactiver si vous utilisez beta.api.kraken.com
*/
function __construct($key, $secret, $url='https://api.kraken.com', $version='0', $sslverify=true)
{
$this->key = $key;
$this->secret = $secret;
$this->url = $url;
$this->version = $version;
$this->curl = curl_init();

curl_setopt_array($this->curl, array(
CURLOPT_SSL_VERIFYPEER => $sslverify,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_USERAGENT => 'Kraken PHP API Agent',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true)
);
}

function__destruct()
{
curl_close($this->curl);
}

/**
* Query public methods
*
* @paramètre chaine de caractères $method nom de la méthode
* @paramètre tableau $request demande les paramètres
* @retourne un tableau, demande un résultat si réussi
* @lance une exception KrakenAPIException
*/
function QueryPublic($method, array $request = array())
{
// construction de la chaine de caractères POST
$postdata = http_build_query($request, '', '&');

// effectuer une requête
curl_setopt($this->curl, CURLOPT_URL, $this->url . '/' . $this->version . '/public/' . $method);
curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($this->curl, CURLOPT_HTTPHEADER, array());
$result = curl_exec($this->curl);
if($result===false)
throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

// déchiffrer les résultats
$result = json_decode($result, true);
if(!is_array($result))
throw new KrakenAPIException('JSON decode error');

return $result;
}

/**
* 
* @paramètre chaine de caractères $path chemin de la méthode
* @paramètre tableau $request demande les paramètres
* @retourne un tableau, demande un résultat si réussi
* @lance une exception KrakenAPIException
*/
function QueryPrivate($method, array $request = array())
{
if(!isset($request['nonce'])) {
// génère un nonce 64 bit en utilisant un horodatage à une résolution à la micro seconde
// fonctions de chaine de caractères sont utilisées pour éviter les problèmes sur les systèmes 32 bit
$nonce = explode(' ', microtime());
$request['nonce'] = $nonce[1] . str_pad(substr($nonce[0], 2, 6), 6, '0');
}

// construction de la chaine de caractère de données POST
$postdata = http_build_query($request, '', '&');

// mettre la clé API en place et signer le message
$path = '/' . $this->version . '/private/' . $method;
$sign = hash_hmac('sha512', $path . hash('sha256', $request['nonce'] . $postdata, true), base64_decode($this->secret), true);
$headers = array(
'API-Key: ' . $this->key,
'API-Sign: ' . base64_encode($sign)
);

// effectuer une requête
curl_setopt($this->curl, CURLOPT_URL, $this->url . $path);
curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($this->curl, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($this->curl);
if($result===false)
throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

// déchiffrer les résultats
$result = json_decode($result, true);
if(!is_array($result))
throw new KrakenAPIException('JSON decode error');

return $result;
}
}
Exemple d'usage

Vous trouverez ci-dessous les étapes nécessaires à l’initialisation de la classe de bibliothèque KrakenAPI, ainsi que plusieurs exemples d’appels de méthodes API. Les ensembles de résultats mis en forme sont affichés sous chaque extrait d’appel d’API respectif.

Initialisation

Incluez le fichier de bibliothèque et indiquez votre clé d'API et votre secret lors de l'instanciation d'un objet KrakenAPI.

<?php

require_once 'KrakenAPIClient.php';
$kraken = new KrakenAPI('YOUR API KEY', 'YOUR API SECRET');
Method calls

Query a public list of active assets and their properties:

$res = $kraken->QueryPublic('Assets');
print_r($res);

Returned assets are keyed by their ISO-4217-A3-X names, example output:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBT] => Array
                (
                    [aclass] => currency
                    [altname] => XBT
                    [decimals] => 10
                    [display_decimals] => 5
                )

            [XLTC] => Array
                (
                    [aclass] => currency
                    [altname] => LTC
                    [decimals] => 10
                    [display_decimals] => 5
                )

            [XXRP] => Array
                (
                    [aclass] => currency
                    [altname] => XRP
                    [decimals] => 8
                    [display_decimals] => 5
                )

            [ZEUR] => Array
                (
                    [aclass] => currency
                    [altname] => EUR
                    [decimals] => 4
                    [display_decimals] => 2
                )
            ...
)

Query public ticker info for XBT/USD pair:

$res = $kraken->QueryPublic('Ticker', array('pair' => 'XXBTZUSD'));
print_r($res);

Example output:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBTZUSD] => Array
                (
                    [a] => Array
                        (
                            [0] => 106.09583
                            [1] => 111
                        )

                    [b] => Array
                        (
                            [0] => 105.53966
                            [1] => 4
                        )

                    [c] => Array
                        (
                            [0] => 105.98984
                            [1] => 0.13910102
                        )

                    ...
        )
)

Query public recent trades for XBT/EUR pair since 2013-08-07T18:20:42+00:00:

Remarque: the 'since' parameter is subject to change in the future: it's precision may be modified, and it may no longer be representative of a timestamp. The best practice is to base it on the 'last' value returned in the result set.

$res = $kraken->QueryPublic('Trades', array('pair' => 'XXBTZEUR', 'since' => '137589964200000000'));
print_r($res);

Example output:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBTZEUR] => Array
                (
                    [0] => Array
                        (
                            [0] => 78.60500
                            [1] => 2.03990000
                            [2] => 1375897934.1176
                            [3] => s
                            [4] => m
                            [5] =>
                        )

                    [1] => Array
                        (
                            [0] => 79.41809
                            [1] => 2.02203000
                            [2] => 1375898123.0771
                            [3] => b
                            [4] => m
                            [5] =>
                        )

                    [2] => Array
                        (
                            [0] => 79.86999
                            [1] => 7.00000000
                            [2] => 1375898123.2587
                            [3] => b
                            [4] => m
                            [5] =>
                        )
                    ...
            )
            [last] => 137589925237491170
        )
)

Query private asset balances:

$res = $kraken->QueryPrivate('Balance');
print_r($res);

Example output:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [ZUSD] => 3415.8014
            [ZEUR] => 155.5649
            [XXBT] => 149.9688412800
            [XXRP] => 499889.51600000
        )

)

Query private open orders and included related trades:

$res = $kraken->QueryPrivate('OpenOrders', array('trades' => true));
print_r($res);

Example output:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [open] => Array
                (
                    [O7ICPO-F4CLJ-MVBLHC] => Array
                        (
                            [refid] =>
                            [userref] =>
                            [status] => open
                            [opentm] => 1373750306.9819
                            [starttm] => 0
                            [expiretm] => 0
                            [descr] => Array
                                (
                                    [order] => sell 3.00000000 XBTUSD @ limit 500.00000
                                )

                            [vol] => 3.00000000
                            [vol_exec] => 0.00000000
                            [cost] => 0.00000
                            [fee] => 0.00000
                            [price] => 0.00000
                            [misc] =>
                            [oflags] =>
                        )
                    ...
                )
        )
)

Add a standard order: sell 1.123 XBT/USD @ limit $120

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZUSD',
    'type' => 'sell',
    'ordertype' => 'limit',
    'price' => '120',
    'volume' => '1.123'
));
print_r($res);

Example output:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => sell 1.12300000 XBTUSD @ limit 120.00000
                )

            [txid] => Array
                (
                    [0] => OAVY7T-MV5VK-KHDF5X
                )

        )

)

Add a standard order: buy €300 worth of XBT at market at 2013-08-12T09:27:22+0000

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZEUR',
    'type' => 'buy',
    'ordertype' => 'market',
    'oflags' => 'viqc',
    'volume' => '300',
    'starttm' => '1376299642'
));
print_r($res);

Example output:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => buy 300.00000000 XBTEUR @ market
                )

            [txid] => Array
                (
                    [0] => ONQN65-L2GNR-HWJLF5
                )

        )

)

Add a standard order: buy 2.12345678 XBTUSD @ limit $101.9901 with 2:1 leverage, with a follow up stop loss, take profit sell order: stop at -5% loss, take profit at +$10 price increase (signed stop/loss prices determined automatically using # notation):

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZUSD',
    'type' => 'buy',
    'ordertype' => 'limit',
    'price' => '101.9901',
    'volume' => '2.12345678',
    'leverage' => '2:1',
    'close' => array(
        'ordertype' => 'stop-loss-profit',
        'price' => '#5%',  // stop loss price (relative percentage delta)
        'price2' => '#10'  // take profit price (relative delta)
    )
));
print_r($res);

Example output:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => buy 2.12345678 XBTUSD @ limit 101.99010 with 2:1 leverage
                    [close] => close position @ stop loss -5.0000%, take profit +10.00000
                )

            [txid] => Array
                (
                    [0] => OFMYYE-POAPQ-63IMWL
                )

        )

)