Beispiel einer REST API-Anfrage mit Bash

Zuletzt aktualisiert: 31. März 2025

Einführung

Die Implementierung einer Kraken REST API-Schnittstelle unter Verwendung der Bourne Again Shell (Bash) und einiger zugehöriger Befehle (openssl, base64, xxd usw.) kann eine bequeme und effiziente Lösung für die Interaktion mit den Kraken-Märkten sein (obwohl es nicht die schnellste Implementierung im Vergleich zu kompiliertem Code wäre).

Bash und die erforderlichen Befehle sind auf den meisten UNIX-, Linux- und macOS-Systemen leicht verfügbar (vorinstalliert) und können problemlos auf Windows und anderen Systemen installiert werden, sodass die gesamte erforderliche Software ohne zusätzliche API-Tools oder Bibliotheken von Drittanbietern verfügbar ist.

Mit einem einfachen Texteditor (sogar einem Editor der alten Schule wie vi) und ein paar Zeilen Code ist es möglich, sowohl öffentliche Marktdaten als auch private Kontodaten abzurufen und auch Aufträge auf den Kraken-Märkten zu platzieren/zu stornieren.

Beispielcode

Der folgende Code zeigt eine Bash-Code-Implementierung zum Aufrufen des REST API Balance-Endpunkts:

#!/usr/bin/env bash

# API public/private keys copied from account management web site

api_key='gxTXpC4Ag/N0QPKlYnRhL1qVB2G/HZV1eB2drl7eOXga30dEKoB+EUMs'
api_private='62kRfRX7BI8G8T/jl7clnZ+vSfJt7YmQN23JQkJfHCE6oxecJX4fN4i2RitmRhyFzfJ4efKy2yCo4H068rfv0A=='

# API variables (URL, endpoint, nonce, etc.)

api_host='https://api.kraken.com'
api_endpoint='/0/private/Balance'
api_nonce=`date +%s`
api_post="nonce=$api_nonce"

# Authentication algorithm (SHA256 and HMAC SHA512)

api_private_hex=`echo -n $api_private base64 -d xxd -p tr -d "\n"`
echo -n $api_endpoint > kapi_bash.bin
echo -n $api_nonce$api_post openssl dgst -sha256 -binary >> kapi_bash.bin
api_sign=`cat kapi_bash.bin openssl dgst -binary -sha512 -mac HMAC -macopt hexkey:$api_private_hex base64`

# HTTP request (POST)

curl --header "API-Key: $api_key" --header "API-Sign: $api_sign" --data $api_post $api_host$api_endpoint

und der passende Code kann auch heruntergeladen werden (als kapi_bash.sh-Datei).

Weitere Verwendung/Entwicklung

Um Ihre eigenen Kontostände abzurufen, sollte der Beispiel-API-Schlüssel durch einen API-Schlüssel Ihres eigenen Kraken-Kontos ersetzt werden, und zusätzliche API-Endpunkte können einfach durch Ändern der Variablen api_endpoint und api_post (falls erforderlich) aktiviert werden.

Brauchst du weitere Hilfe?