Ejemplo de solicitud de API REST usando bash

Última actualización: 31 mar 2025

Introducción

La implementación de una interfaz de API REST de Kraken utilizando el Bourne Again shell (bash) y algunos comandos asociados (openssl, base64, xxd, etc.) puede ser una solución conveniente y eficiente para interactuar con los mercados de Kraken (aunque no sería la implementación más rápida en comparación con el código compilado).

Bash y los comandos requeridos están fácilmente disponibles (preinstalados) en la mayoría de los sistemas UNIX, Linux y macOS, y se pueden instalar fácilmente en Windows y otros sistemas, por lo que todo el software necesario está disponible sin utilizar herramientas o bibliotecas de API de terceros adicionales.

Utilizando un editor de texto plano (incluso un editor de la vieja escuela como vi) y unas pocas líneas de código, es posible acceder tanto a los datos de mercado públicos como a los datos de cuenta privados, y también colocar/cancelar órdenes en los mercados de Kraken.

Código de ejemplo

El siguiente código muestra una implementación en bash para llamar al endpoint Balance de la API REST:

#!/usr/bin/env bash

# Claves públicas/privadas de la API copiadas del sitio web de gestión de cuentas

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

# Variables de la API (URL, endpoint, nonce, etc.)

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

# Algoritmo de autenticación (SHA256 y 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`

# Solicitud HTTP (POST)

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

y el código correspondiente también se puede descargar (como archivo kapi_bash.sh).

Uso/Desarrollo adicional

Para recuperar los saldos de su propia cuenta, la clave API de ejemplo debe reemplazarse por una clave API de su propia cuenta de Kraken, y se pueden habilitar endpoints API adicionales simplemente modificando la variable api_endpoint y la variable api_post (si es necesario).

¿Necesita más ayuda?