Voorbeeld van een REST API-verzoek met bash

Laatst bijgewerkt: 31 maart 2025

Inleiding

Het implementeren van een Kraken REST API-interface met 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 vereiste software beschikbaar is zonder gebruik te maken van aanvullende API-tools of bibliotheken van derden.

Met een eenvoudige teksteditor (zelfs een ouderwetse editor zoals vi) en een paar regels code is het mogelijk om toegang te krijgen tot zowel publieke marktgegevens als privérekeninggegevens, 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-endpoint:

#!/usr/bin/env bash

# API public/private keys gekopieerd van de website voor accountbeheer

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

# API-variabelen (URL, endpoint, nonce, enz.)

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

# Authenticatie-algoritme (SHA256 en 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-verzoek (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 je eigen rekeningsaldi op te halen, moet de voorbeeld-API-sleutel worden vervangen door een API-sleutel van je eigen Kraken-account. Extra API-endpoints kunnen eenvoudig worden ingeschakeld door de variabele api_endpoint en de variabele api_post aan te passen (indien nodig).

Meer hulp nodig?