All
Filtern nach:
Wie zahle ich Cash auf mein Konto ein?
Ich brauche Hilfe bei der Kontoverifizierung
Warum kann ich nicht auf mein Konto zugreifen?
Gibt es Gebühren für das Auszahlen von Krypto?
Ich brauche Hilfe bei der Anmeldung bei meinem Konto
Der REST API-Befehlszeilen-Client in Python ermöglicht den vollständigen Zugriff auf die Kraken REST API über die Befehlszeile (z. B. Terminal unter macOS), sodass keine Programmierkenntnisse oder API-Erfahrung erforderlich sind.
Alle REST API-Funktionen sind zugänglich, einschließlich:
öffentliche Marktdaten-Endpunkte
private Kontodaten-Endpunkte
private Handels-Endpunkte
private Finanzierungs-Endpunkte
private Earn-Endpunkte
Der Befehlszeilen-Client kann als eigenständiger API-Client verwendet oder von anderen Programmen (wie anderen interpretierten Sprachen wie Bash-Skripten oder kompilierten Sprachen wie C/C++) aufgerufen werden.
1. Installieren Sie Python 3 (falls erforderlich).
macOS und Linux haben Python 3 möglicherweise bereits installiert.
Windows hat Python 3 wahrscheinlich nicht installiert, aber es kann von https://www.python.org/ installiert werden.
2. Laden Sie die Datei krakenapi.py herunter und speichern Sie sie auf Ihrem Computer in einem Ordner (Verzeichnis) Ihrer Wahl.
Zum Beispiel: Macintosh HD > Benutzer > Satoshi > KrakenAPI
3. Öffnen Sie eine Eingabeaufforderung (z. B. das Terminal von macOS) und navigieren Sie zu dem Ordner (Verzeichnis), der im vorherigen Schritt ausgewählt wurde. Sie können den UNIX/Linux-Befehl „cd“ (change directory) zum Navigieren verwenden.
Zum Beispiel:cd /Users/Satoshi/KrakenAPI
4. Machen Sie die Datei krakenapi.py ausführbar.
Sie können den UNIX/Linux-Befehl „chmod 755“ (change mode) verwenden.
Zum Beispiel: chmod 755 krakenapi.py
5. Fügen Sie Ihren API-Schlüssel zu demselben Ordner hinzu, in dem Sie die Datei krakenapi.py aufbewahren.
Kopieren/fügen Sie Ihren öffentlichen API-Schlüssel aus der Kontoverwaltung in eine einfache Textdatei namens „API_Public_Key“ ein.
Kopieren/fügen Sie Ihren privaten (geheimen) API-Schlüssel in eine einfache Textdatei namens „API_Private_Key“ ein.
Anweisungen zum Erstellen/Konfigurieren eines API-Schlüssels sind verfügbar.
Ein API-Schlüssel wird nur benötigt, wenn Sie die privaten API-Endpunkte verwenden möchten, um auf Ihr Kraken-Konto zuzugreifen (z. B. Saldoabfragen, Platzieren/Stornieren von Aufträgen, Export von Kontoverläufen usw.).
Die Verwendung des REST API-Befehlszeilen-Clients ist wie folgt:
./krakenapi.py endpoint [parameters] [-pretty]
Der Befehlszeilen-Client unterstützt alle REST API-Endpunkte, daher sind die folgenden nur einige Beispielbefehle:
Python
# Time
./krakenapi.py Time
# Ticker
./krakenapi.py Ticker pair=xbtusd
# Trades
./krakenapi.py Trades pair=etheur since=1574067140000000000
# Balance
./krakenapi.py Balance
# Trade Balance
./krakenapi.py TradeBalance asset=xbt
# Query Orders
./krakenapi.py QueryOrders txid=O7MN22-ZCX7J-TGLQHD
# Add Order
./krakenapi.py AddOrder pair=xbtusd type=buy ordertype=limit price=6500 volume=0.002 leverage=5
# Cancel Order
./krakenapi.py CancelOrder txid=O7MN22-ZCX7J-TGLQHDStandardmäßig gibt der Befehlszeilen-Client die ursprüngliche API-Antwort aus (JSON, geeignet zur Interpretation über Code), aber wenn ein zusätzliches Befehlszeilenargument -pretty verwendet wird:
./krakenapi.py TradeBalance asset=shib -pretty
gibt der Client dieselbe API-Antwort als menschenfreundliches JSON aus (mit Zeilenumbrüchen/Einzügen).
Python
#!/usr/bin/env python3
# Kraken Rest API
#
# Usage: ./krakenapi endpoint [parameters]
# Example: ./krakenapi Time
# Example: ./krakenapi OHLC pair=xbtusd interval=1440
# Example: ./krakenapi Balance
# Example: ./krakenapi TradeBalance asset=xdg
# Example: ./krakenapi OpenPositions
# Example: ./krakenapi AddOrder pair=xxbtzusd type=buy ordertype=market volume=0.003 leverage=5
import sys
import time
import base64
import hashlib
import hmac
import urllib.request
import json
api_public = {"Time", "Assets", "AssetPairs", "Ticker", "OHLC", "Depth", "Trades", "Spread", "SystemStatus"}
api_private = {"Balance", "BalanceEx", "TradeBalance", "OpenOrders", "ClosedOrders", "QueryOrders", "TradesHistory", "QueryTrades", "OpenPositions", "Ledgers", "QueryLedgers", "TradeVolume", "AddExport", "ExportStatus", "RetrieveExport", "RemoveExport", "GetWebSocketsToken", "CreateSubaccount", "AccountTransfer"}
api_trading = {"AddOrder", "AddOrderBatch", "EditOrder", "CancelOrder", "CancelOrderBatch", "CancelAll", "CancelAllOrdersAfter","OrderAmends","AmendOrder","ListSubaccounts"}
api_funding = {"DepositMethods", "DepositAddresses", "DepositStatus", "WithdrawMethods", "WithdrawAddresses", "WithdrawInfo", "Withdraw", "WithdrawStatus", "WithdrawCancel", "WalletTransfer"}
api_staking = {"Earn/Strategies", "Earn/Allocations", "Earn/Allocate", "Earn/Deallocate", "Earn/AllocateStatus", "Earn/DeallocateStatus", "Staking/Assets", "Staking/Balance", "Stake", "Unstake", "Staking/Pending", "Staking/Transactions"}
api_domain = "https://api.kraken.com"
api_data = ""
output_format = 0
if len(sys.argv) < 2:
api_method = "Time"
elif len(sys.argv) == 2:
api_method = sys.argv[1]
else:
api_method = sys.argv[1]
for count in range(2, len(sys.argv)):
if sys.argv[count] == '-pretty':
output_format = 1
continue
if count == 2:
api_data = sys.argv[count]
else:
api_data = api_data + "&" + sys.argv[count]
if api_method in api_private or api_method in api_trading or api_method in api_funding or api_method in api_staking:
api_path = "/0/private/"
api_nonce = str(int(time.time()*1000))
try:
api_key = open("API_Public_Key").read().strip()
api_secret = base64.b64decode(open("API_Private_Key").read().strip())
except:
print("API public key and API private (secret) key must be in plain text files called API_Public_Key and API_Private_Key")
sys.exit(1)
api_postdata = api_data + "&nonce=" + api_nonce
api_postdata = api_postdata.encode('utf-8')
api_sha256 = hashlib.sha256(api_nonce.encode('utf-8') + api_postdata).digest()
api_hmacsha512 = hmac.new(api_secret, api_path.encode('utf-8') + api_method.encode('utf-8') + api_sha256, hashlib.sha512)
api_request = urllib.request.Request(api_domain + api_path + api_method, api_postdata)
api_request.add_header("API-Key", api_key)
api_request.add_header("API-Sign", base64.b64encode(api_hmacsha512.digest()))
api_request.add_header("User-Agent", "Kraken REST API")
elif api_method in api_public:
api_path = "/0/public/"
api_request = urllib.request.Request(api_domain + api_path + api_method + '?' + api_data)
api_request.add_header("User-Agent", "Kraken REST API")
else:
print("Usage: %s method [parameters]" % sys.argv[0])
print("Example: %s OHLC pair=xbtusd interval=1440" % sys.argv[0])
sys.exit(1)
try:
api_reply = urllib.request.urlopen(api_request).read()
except Exception as error:
print("API call failed (%s)" % error)
sys.exit(1)
try:
api_reply = api_reply.decode()
except Exception as error:
if api_method == 'RetrieveExport':
sys.stdout.buffer.write(api_reply)
sys.exit(0)
print("API response invalid (%s)" % error)
sys.exit(1)
if '"error":[]' in api_reply:
print(api_reply if output_format == 0 else json.dumps(json.loads(api_reply), indent = 4))
sys.exit(0)
else:
print(api_reply if output_format == 0 else json.dumps(json.loads(api_reply), indent = 4))
sys.exit(1)