Die Kraken API bietet Entwicklern eine leistungsstarke Schnittstelle zu einer der weltweit führenden Kryptowährungsbörsen. Egal, ob Sie Handelsanwendungen erstellen, Märkte überwachen oder Kryptowährungsportfolios verwalten, dieser Leitfaden hilft Ihnen, die Grundlagen der API-Funktionen und Implementierungsansätze von Kraken zu navigieren.
Was ist die Kraken API?
Die API von Kraken ermöglicht es Entwicklern, programmgesteuert über eine RESTful-Schnittstelle auf die Funktionalität der Börse zuzugreifen. Mit dieser API können Sie:
- Echtzeit-Marktdaten abrufen (Kurse, Orderbücher, Trades)
- Handelsaufträge platzieren und verwalten
- Kontostände und Positionen überwachen
- Ein- und Auszahlungen verarbeiten
- Auf historische Handelsdaten zugreifen

Einrichten für den API-Zugriff
Erstellen Ihres Kraken-Kontos
Bevor Sie die API verwenden, müssen Sie Folgendes tun:
- Melden Sie sich für ein Kraken-Konto unter kraken.com an
- Erfüllen Sie die Verifizierungsanforderungen basierend auf Ihren Nutzungsbedürfnissen
- Aktivieren Sie die Zwei-Faktor-Authentifizierung (2FA) für erhöhte Sicherheit

Generieren von API-Schlüsseln
Um mit der API zu interagieren, erstellen Sie API-Schlüssel mit entsprechenden Berechtigungen:
- Melden Sie sich bei Ihrem Kraken-Konto an
- Navigieren Sie zu Connection & API

3. Klicken Sie auf Generate New Key

4. Legen Sie die entsprechenden Berechtigungen fest:
- Query: Nur-Lese-Zugriff auf Kontoinformationen
- Trade: Möglichkeit, Aufträge zu platzieren und zu stornieren
- Deposit: Generieren Sie Einzahlungsadressen
- Withdraw: Erstellen Sie Auszahlungsanfragen

⚠️ SECURITY WARNING
- Store API keys securely and never share your private key
- Restrict API key permissions to only what's necessary
- Consider implementing IP address restrictions
Verstehen der API-Struktur
Die Kraken API ist in eine logische Struktur unterteilt:
API-Basis-URL und Endpunkte
Alle API-Anfragen beginnen mit der Basis-URL: https://api.kraken.com
Die aktuelle API-Version wird durch /0/
im URL-Pfad gekennzeichnet, gefolgt von:
- /public/ - Endpunkte, die keine Authentifizierung erfordern
- /private/ - Endpunkte, die eine Authentifizierung mit Ihrem API-Schlüssel erfordern
Antwortformat
Alle API-Antworten folgen einem Standard-JSON-Format:
{
"error": [],
"result": { /* Response data */ }
}
Ihre ersten API-Anfragen erstellen
Öffentliche API-Anfragen
Öffentliche Endpunkte stellen Marktdaten bereit, ohne dass eine Authentifizierung erforderlich ist.
Beispiel: Abrufen von Ticker-Informationen
import requests
# Get ticker information for Bitcoin in 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']}")
Beispiel: Orderbuchdaten
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);
}
});
Private API-Authentifizierung
Private Endpunkte erfordern eine Authentifizierung mit Ihren API-Schlüsseln über einen Prozess, der Folgendes beinhaltet:
- Generieren eines Nonce (zunehmende Zahl)
- Erstellen einer Anforderungssignatur mit HMAC-SHA512
- Senden der Anfrage mit Ihrem API-Schlüssel und Ihrer Signatur
Authentifizierungs-Implementierung
import time
import base64
import hashlib
import hmac
import urllib.parse
import requests
def kraken_request(api_key, api_sec, endpoint, data=None):
"""Make an authenticated request to Kraken API"""
if data is None:
data = {}
api_url = "https://api.kraken.com"
# Add nonce to data
data['nonce'] = str(int(time.time() * 1000))
# Encode data for signature
encoded_data = urllib.parse.urlencode(data)
# Create 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()
# Set headers
headers = {
'API-Key': api_key,
'API-Sign': signature_digest
}
# Send request
response = requests.post(api_url + endpoint, headers=headers, data=data)
return response.json()
Kern-API-Funktionalität
Kontoinformationen
Kontostand prüfen
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}")
Auftragsverwaltung
Platzieren einer Marktorder
# Parameters for buying 0.01 BTC at market price
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]}")
Platzieren einer Limit-Order
# Parameters for selling 0.01 BTC at $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)
Abfragen offener Aufträge
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']}")
Verwenden von APIdog mit der Kraken API

APIdog bietet eine leistungsstarke Plattform für die Entwicklung, das Testen und die Dokumentation Ihrer Kraken API-Integrationen. So nutzen Sie APIdog für eine optimierte Entwicklung:
Einrichten der Kraken API in APIdog
Erstellen Sie ein neues Projekt
- Starten Sie APIdog und erstellen Sie ein neues Projekt
- Richten Sie eine Umgebung für Kraken API-Tests ein
Konfigurieren Sie Umgebungsvariablen
- Erstellen Sie Variablen für
API_KEY
,API_SECRET
undAPI_URL
- Setzen Sie die API_URL auf
https://api.kraken.com
Importieren oder erstellen Sie Endpunkte

- Importieren Sie entweder die Kraken API-Spezifikation oder erstellen Sie Sammlungen manuell
- Organisieren Sie Endpunkte in logischen Ordnern (Marktdaten, Handel, Konto usw.)
Implementieren der Kraken-Authentifizierung in APIdog
APIdog macht es einfach, die benutzerdefinierte Authentifizierung von Kraken einzurichten:
- Erstellen Sie ein Pre-Request-Skript zum Generieren der erforderlichen Authentifizierung:
// Pre-request script for Kraken authentication
const crypto = require('crypto-js');
// Get environment variables
const apiKey = pm.environment.get("API_KEY");
const apiSecret = pm.environment.get("API_SECRET");
// Add nonce to request body
const nonce = Date.now() * 1000;
pm.request.body.update({
mode: 'urlencoded',
urlencoded: [
...pm.request.body.urlencoded.all(),
{key: 'nonce', value: nonce.toString()}
]
});
// Get the request path
const path = pm.request.url.getPathWithQuery().replace(/\?.*/, '');
// Create 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))
);
// Set headers
pm.request.headers.add({key: 'API-Key', value: apiKey});
pm.request.headers.add({key: 'API-Sign', value: signature});
Testen und Dokumentieren mit APIdog
Erstellen Sie Testanfragen
- Richten Sie Anfragen für gängige Operationen wie das Abrufen von Ticker-Daten, das Platzieren von Aufträgen usw. ein.
- Verwenden Sie den Request Builder, um die richtigen Parameter zu konfigurieren
Fügen Sie Testskripte hinzu
- Validieren Sie API-Antworten mit Testskripten
- Überprüfen Sie auf Fehler und erwartete Datenstrukturen
// Example test script for balance endpoint
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');
});
Generieren Sie Dokumentation
- Verwenden Sie die Dokumentationstools von APIdog, um umfassende API-Leitfäden zu erstellen
- Fügen Sie Beispiele, Beschreibungen und Antwortbeispiele ein
Teilen und zusammenarbeiten
- Teilen Sie Ihre Kraken API-Sammlung mit Teammitgliedern
- Verwenden Sie die Kollaborationsfunktionen von APIdog für die Teamentwicklung

APIdog Mock-Server für die Entwicklung
Während der Entwicklung können Sie die Mock-Server von APIdog verwenden, um Kraken API-Antworten zu simulieren:
- Erstellen Sie Beispielantworten für jeden Endpunkt
- Konfigurieren Sie Antwortregeln basierend auf Anforderungsparametern
- Testen Sie Ihre Anwendung anhand von Mock-Antworten, bevor Sie live gehen

Dieser Ansatz ermöglicht schnellere Entwicklungszyklen und schützt Sie vor dem Erreichen von API-Ratenlimits während der Entwicklung.
Best Practices für die Kraken API-Integration
Ratenbegrenzung und Optimierung
Kraken implementiert bestimmte Ratenlimits:
- Öffentliche Endpunkte: 1 Anfrage pro Sekunde
- Private Endpunkte: 15-20 Anfragen pro Minute
Um diese effektiv zu handhaben:
- Implementieren Sie eine Drosselung in Ihrem Code
- Verwenden Sie WebSockets für Echtzeitdaten anstelle von häufigen REST-API-Aufrufen
- Stapeln Sie Abfragen, wenn möglich
Fehlerbehandlung
Implementieren Sie eine robuste Fehlerbehandlung für API-Interaktionen:
def safe_api_call(api_function, max_retries=3):
"""Wrapper for API calls with retry logic"""
retries = 0
while retries < max_retries:
try:
response = api_function()
if 'error' in response and response['error']:
error = response['error'][0]
# Handle rate limiting
if 'EAPI:Rate limit' in error:
sleep_time = (2 ** retries) # Exponential backoff
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
Sicherheitsüberlegungen
- Speichern Sie API-Anmeldeinformationen sicher - Codieren Sie diese niemals fest in Ihren Anwendungen
- Implementieren Sie IP-Einschränkungen in Ihren Kraken API-Schlüsseleinstellungen
- Verwenden Sie die minimal erforderlichen Berechtigungen für jeden API-Schlüssel
- Überwachen Sie die API-Nutzung auf unbefugten Zugriff
- Rotieren Sie API-Schlüssel regelmäßig
Häufige Anwendungsfälle
Marktdatenüberwachung
def monitor_price(pair, interval=60):
"""Monitor price at regular intervals"""
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)
Einfacher Trading-Bot
def simple_trading_strategy(pair, api_key, api_secret):
"""Example of a simple trading strategy"""
# Get account balance
balance = kraken_request(api_key, api_secret, "/0/private/Balance")
# Get current price
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])
# Simple strategy: buy if price dropped 5% from yesterday
yesterday_close = float(ticker_data['result'][pair]['o'])
if current_price < yesterday_close * 0.95:
print(f"Price dropped more than 5% - buying opportunity")
# Implement buy logic
Fazit
Die Kraken API bietet leistungsstarke Tools für den Kryptowährungshandel und die Portfolioverwaltung. Dieser Leitfaden hat die Grundlagen des API-Zugriffs, der Authentifizierung und der gängigen Operationen behandelt. Durch die Nutzung von Tools wie APIdog für Entwicklung und Tests können Sie robuste Anwendungen erstellen, die nahtlos mit der Kraken-Börse interagieren.
Denken Sie daran, sich immer auf die offizielle Kraken API-Dokumentation zu beziehen, um die aktuellsten Informationen und detaillierte Endpunktreferenzen zu erhalten. Wenn Sie sich mit den Grundlagen vertraut gemacht haben, können Sie erweiterte Funktionen wie WebSocket-Verbindungen für Echtzeitdaten und ausgefeiltere Handelsstrategien erkunden.
Egal, ob Sie einen persönlichen Portfolio-Tracker erstellen, algorithmischen Handel implementieren oder Kryptowährungslösungen für Unternehmen entwickeln, die Beherrschung der Kraken API eröffnet erhebliche Möglichkeiten im digitalen Asset-Ökosystem.