L'API Kraken fournit aux développeurs une interface puissante vers l'un des principaux échanges de crypto-monnaies au monde. Que vous construisiez des applications de trading, surveilliez les marchés ou gériez des portefeuilles de crypto-monnaies, ce guide vous aidera à naviguer dans les éléments essentiels des capacités de l'API Kraken et des approches de mise en œuvre.
Qu'est-ce que l'API Kraken ?
L'API Kraken permet aux développeurs d'accéder par programmation aux fonctionnalités de l'échange via une interface RESTful. Avec cette API, vous pouvez :
- Accéder aux données de marché en temps réel (prix, carnets d'ordres, transactions)
- Placer et gérer des ordres de trading
- Surveiller les soldes et les positions des comptes
- Traiter les dépôts et les retraits
- Accéder aux données historiques de trading

Configuration pour l'accès à l'API
Création de votre compte Kraken
Avant d'utiliser l'API, vous devrez :
- Vous inscrire pour un compte Kraken sur kraken.com
- Remplir les exigences de vérification en fonction de vos besoins d'utilisation
- Activer l'authentification à deux facteurs (2FA) pour une sécurité renforcée

Génération de clés API
Pour interagir avec l'API, créez des clés API avec les autorisations appropriées :
- Connectez-vous à votre compte Kraken
- Accédez à Connection & API

3. Cliquez sur Generate New Key

4. Définissez les autorisations appropriées :
- Query : accès en lecture seule aux informations du compte
- Trade : possibilité de placer et d'annuler des ordres
- Deposit : générer des adresses de dépôt
- Withdraw : créer des demandes de retrait

⚠️ AVERTISSEMENT DE SÉCURITÉ
- Stockez les clés API en toute sécurité et ne partagez jamais votre clé privée
- Restreignez les autorisations des clés API à ce qui est nécessaire
- Envisagez de mettre en œuvre des restrictions d'adresse IP
Comprendre la structure de l'API
L'API Kraken est organisée en une structure logique :
URL de base et points de terminaison de l'API
Toutes les requêtes d'API commencent par l'URL de base : https://api.kraken.com
La version actuelle de l'API est désignée par /0/
dans le chemin d'URL, suivi de :
- /public/ - Points de terminaison qui ne nécessitent pas d'authentification
- /private/ - Points de terminaison qui nécessitent une authentification avec votre clé API
Format de réponse
Toutes les réponses de l'API suivent un format JSON standard :
{
"error": [],
"result": { /* Données de réponse */ }
}
Effectuer vos premières requêtes d'API
Requêtes d'API publiques
Les points de terminaison publics fournissent des données de marché sans nécessiter d'authentification.
Exemple : Obtention d'informations sur le ticker
import requests
# Obtenir des informations sur le ticker pour Bitcoin en USD
response = requests.get('https://api.kraken.com/0/public/Ticker?pair=XBTUSD')
ticker_data = response.json()
if not ticker_data['error']:
btc_data = ticker_data['result']['XXBTZUSD']
print(f"BTC/USD Last Trade Price: {btc_data['c'][0]}")
print(f"BTC/USD 24h Volume: {btc_data['v'][1]}")
else:
print(f"Error: {ticker_data['error']}")
Exemple : Données du carnet d'ordres
fetch('https://api.kraken.com/0/public/Depth?pair=ETHUSD&count=5')
.then(response => response.json())
.then(data => {
if (data.error.length === 0) {
const orderbook = data.result.XETHZUSD;
console.log("ETH/USD Order Book Top 5 Bids:", orderbook.bids);
console.log("ETH/USD Order Book Top 5 Asks:", orderbook.asks);
}
});
Authentification de l'API privée
Les points de terminaison privés nécessitent une authentification avec vos clés API via un processus impliquant :
- Génération d'un nonce (nombre croissant)
- Création d'une signature de requête à l'aide de HMAC-SHA512
- Envoi de la requête avec votre clé API et votre signature
Implémentation de l'authentification
import time
import base64
import hashlib
import hmac
import urllib.parse
import requests
def kraken_request(api_key, api_sec, endpoint, data=None):
"""Effectuer une requête authentifiée vers l'API Kraken"""
if data is None:
data = {}
api_url = "https://api.kraken.com"
# Ajouter le nonce aux données
data['nonce'] = str(int(time.time() * 1000))
# Encoder les données pour la signature
encoded_data = urllib.parse.urlencode(data)
# Créer la signature
signature_data = (data['nonce'] + encoded_data).encode()
message = endpoint.encode() + hashlib.sha256(signature_data).digest()
signature = hmac.new(base64.b64decode(api_sec), message, hashlib.sha512)
signature_digest = base64.b64encode(signature.digest()).decode()
# Définir les en-têtes
headers = {
'API-Key': api_key,
'API-Sign': signature_digest
}
# Envoyer la requête
response = requests.post(api_url + endpoint, headers=headers, data=data)
return response.json()
Fonctionnalités principales de l'API
Informations sur le compte
Vérification du solde du compte
balance = kraken_request(api_key, api_secret, "/0/private/Balance")
if not balance['error']:
for asset, amount in balance['result'].items():
print(f"{asset}: {amount}")
Gestion des commandes
Passer un ordre au marché
# Paramètres pour l'achat de 0,01 BTC au prix du marché
order_params = {
'pair': 'XBTUSD',
'type': 'buy',
'ordertype': 'market',
'volume': '0.01'
}
order_result = kraken_request(api_key, api_secret, "/0/private/AddOrder", order_params)
if not order_result['error']:
print(f"Order placed! Transaction ID: {order_result['result']['txid'][0]}")
Passer un ordre limité
# Paramètres pour la vente de 0,01 BTC à 50 000 $
limit_params = {
'pair': 'XBTUSD',
'type': 'sell',
'ordertype': 'limit',
'price': '50000',
'volume': '0.01'
}
limit_result = kraken_request(api_key, api_secret, "/0/private/AddOrder", limit_params)
Interrogation des ordres ouverts
open_orders = kraken_request(api_key, api_secret, "/0/private/OpenOrders")
if not open_orders['error']:
orders = open_orders['result']['open']
for order_id, details in orders.items():
print(f"ID: {order_id}")
print(f"Type: {details['descr']['type']} {details['descr']['ordertype']}")
print(f"Pair: {details['descr']['pair']}")
Utilisation d'APIdog avec l'API Kraken

APIdog offre une plateforme puissante pour développer, tester et documenter vos intégrations d'API Kraken. Voici comment tirer parti d'APIdog pour un développement rationalisé :
Configuration de l'API Kraken dans APIdog
Créer un nouveau projet
- Lancez APIdog et créez un nouveau projet
- Configurez un environnement pour les tests de l'API Kraken
Configurer les variables d'environnement
- Créez des variables pour
API_KEY
,API_SECRET
etAPI_URL
- Définissez l'API_URL sur
https://api.kraken.com
Importer ou créer des points de terminaison

- Importez la spécification de l'API Kraken ou créez des collections manuellement
- Organisez les points de terminaison en dossiers logiques (Données de marché, Trading, Compte, etc.)
Implémentation de l'authentification Kraken dans APIdog
APIdog facilite la configuration de l'authentification personnalisée de Kraken :
- Créez un script de pré-requête pour générer l'authentification nécessaire :
// Script de pré-requête pour l'authentification Kraken
const crypto = require('crypto-js');
// Obtenir les variables d'environnement
const apiKey = pm.environment.get("API_KEY");
const apiSecret = pm.environment.get("API_SECRET");
// Ajouter le nonce au corps de la requête
const nonce = Date.now() * 1000;
pm.request.body.update({
mode: 'urlencoded',
urlencoded: [
...pm.request.body.urlencoded.all(),
{key: 'nonce', value: nonce.toString()}
]
});
// Obtenir le chemin de la requête
const path = pm.request.url.getPathWithQuery().replace(/\?.*/, '');
// Créer la signature
const postData = pm.request.body.urlencoded.toString();
const message = path + crypto.SHA256(nonce.toString() + postData).toString();
const signature = crypto.enc.Base64.stringify(
crypto.HmacSHA512(message, crypto.enc.Base64.parse(apiSecret))
);
// Définir les en-têtes
pm.request.headers.add({key: 'API-Key', value: apiKey});
pm.request.headers.add({key: 'API-Sign', value: signature});
Tests et documentation avec APIdog
Créer des requêtes de test
- Configurez des requêtes pour les opérations courantes telles que l'obtention de données de ticker, le placement d'ordres, etc.
- Utilisez le générateur de requêtes pour configurer les paramètres appropriés
Ajouter des scripts de test
- Validez les réponses de l'API avec des scripts de test
- Vérifiez les erreurs et les structures de données attendues
// Exemple de script de test pour le point de terminaison de l'équilibre
pm.test("Response status is 200", () => {
pm.response.to.have.status(200);
});
pm.test("No errors returned", () => {
const response = pm.response.json();
pm.expect(response.error).to.be.an('array').that.is.empty;
});
pm.test("Balance data exists", () => {
const response = pm.response.json();
pm.expect(response.result).to.exist.and.to.be.an('object');
});
Générer de la documentation
- Utilisez les outils de documentation d'APIdog pour créer des guides d'API complets
- Incluez des exemples, des descriptions et des exemples de réponses
Partager et collaborer
- Partagez votre collection d'API Kraken avec les membres de l'équipe
- Utilisez les fonctionnalités de collaboration d'APIdog pour le développement en équipe

Serveurs simulés APIdog pour le développement
Pendant le développement, vous pouvez utiliser les serveurs simulés d'APIdog pour simuler les réponses de l'API Kraken :
- Créez des exemples de réponses pour chaque point de terminaison
- Configurez les règles de réponse en fonction des paramètres de la requête
- Testez votre application par rapport aux réponses simulées avant de la mettre en service

Cette approche permet des cycles de développement plus rapides et vous protège contre les limites de débit de l'API pendant le développement.
Meilleures pratiques pour l'intégration de l'API Kraken
Limitation de débit et optimisation
Kraken met en œuvre des limites de débit spécifiques :
- Points de terminaison publics : 1 requête par seconde
- Points de terminaison privés : 15 à 20 requêtes par minute
Pour les gérer efficacement :
- Implémentez la limitation dans votre code
- Utilisez WebSockets pour les données en temps réel au lieu d'appels d'API REST fréquents
- Requêtes par lots lorsque cela est possible
Gestion des erreurs
Implémentez une gestion robuste des erreurs pour les interactions avec l'API :
def safe_api_call(api_function, max_retries=3):
"""Wrapper pour les appels d'API avec logique de nouvelle tentative"""
retries = 0
while retries < max_retries:
try:
response = api_function()
if 'error' in response and response['error']:
error = response['error'][0]
# Gérer la limitation de débit
if 'EAPI:Rate limit' in error:
sleep_time = (2 ** retries) # Backoff exponentiel
time.sleep(sleep_time)
retries += 1
continue
else:
return None
return response['result']
except Exception as e:
time.sleep(2 ** retries)
retries += 1
return None
Considérations de sécurité
- Stockez les informations d'identification de l'API en toute sécurité - Ne les codez jamais en dur dans vos applications
- Implémentez des restrictions IP dans les paramètres de votre clé API Kraken
- Utilisez les autorisations minimales requises pour chaque clé API
- Surveillez l'utilisation de l'API pour tout accès non autorisé
- Faites pivoter les clés API périodiquement
Cas d'utilisation courants
Surveillance des données de marché
def monitor_price(pair, interval=60):
"""Surveiller le prix à intervalles réguliers"""
while True:
response = requests.get(f'https://api.kraken.com/0/public/Ticker?pair={pair}')
data = response.json()
if not data['error']:
for p, info in data['result'].items():
price = info['c'][0]
print(f"{pair} current price: {price}")
time.sleep(interval)
Bot de trading simple
def simple_trading_strategy(pair, api_key, api_secret):
"""Exemple d'une stratégie de trading simple"""
# Obtenir le solde du compte
balance = kraken_request(api_key, api_secret, "/0/private/Balance")
# Obtenir le prix actuel
ticker = requests.get(f'https://api.kraken.com/0/public/Ticker?pair={pair}')
ticker_data = ticker.json()
if not ticker_data['error']:
current_price = float(ticker_data['result'][pair]['c'][0])
# Stratégie simple : acheter si le prix a baissé de 5 % par rapport à hier
yesterday_close = float(ticker_data['result'][pair]['o'])
if current_price < yesterday_close * 0.95:
print(f"Price dropped more than 5% - buying opportunity")
# Implémenter la logique d'achat
Conclusion
L'API Kraken fournit des outils puissants pour le trading de crypto-monnaies et la gestion de portefeuille. Ce guide a couvert les éléments essentiels de l'accès à l'API, de l'authentification et des opérations courantes. En tirant parti d'outils tels qu'APIdog pour le développement et les tests, vous pouvez créer des applications robustes qui interagissent de manière transparente avec l'échange Kraken.
N'oubliez pas de toujours vous référer à la documentation officielle de l'API Kraken pour obtenir les informations les plus récentes et des références détaillées des points de terminaison. Au fur et à mesure que vous vous familiariserez avec les bases, vous pourrez explorer des fonctionnalités avancées telles que les connexions WebSocket pour les données en temps réel et des stratégies de trading plus sophistiquées.
Que vous construisiez un outil de suivi de portefeuille personnel, que vous implémentiez du trading algorithmique ou que vous créiez des solutions de crypto-monnaies de qualité entreprise, la maîtrise de l'API Kraken ouvre des possibilités importantes dans l'écosystème des actifs numériques.