Voorbeeld van een REST API-verzoek met bash

Laatst bijgewerkt: 31 mrt 2025

Introductie

Het implementeren van een Kraken REST API-interface met behulp van de Bourne Again shell (bash) en enkele bijbehorende commando's (openssl, base64, xxd, enz.) kan een handige en efficiënte oplossing zijn voor interactie met de markten van Kraken (hoewel het niet de snelste implementatie zou zijn vergeleken met gecompileerde code).

Bash en de vereiste commando's zijn direct beschikbaar (vooraf geïnstalleerd) op de meeste UNIX-, Linux- en macOS-systemen, en kunnen eenvoudig worden geïnstalleerd op Windows en andere systemen, zodat alle benodigde software beschikbaar is zonder gebruik te maken van aanvullende API-tools of bibliotheken van derden.

Met behulp van een eenvoudige teksteditor (zelfs een ouderwetse editor zoals vi) en een paar regels code is het mogelijk om zowel openbare marktgegevens als privéaccountgegevens te benaderen, en ook om orders te plaatsen/annuleren op de markten van Kraken.

Voorbeeldcode

De volgende code toont een bash-code-implementatie voor het aanroepen van het REST API Balance-eindpunt:

#!/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

en de bijbehorende code kan ook worden gedownload (als een kapi_bash.sh-bestand).

Verder gebruik/ontwikkeling

Om uw eigen accountbalansen op te halen, moet de voorbeeld-API-sleutel worden vervangen door een API-sleutel van uw eigen Kraken-account, en aanvullende API-eindpunten kunnen worden ingeschakeld door simpelweg de variabele api_endpoint en de variabele api_post (indien nodig) aan te passen.

Meer hulp nodig?