Cómo suscribirse a los feeds privados de WebSocket de Kraken

Última actualización: 1 de abril de 2025

Aunque los feeds de datos de mercado de WebSocket están disponibles públicamente, los feeds privados de WebSocket que acceden a una cuenta de Kraken deben protegerse mediante autenticación segura.

Nuestra API REST ya proporciona un mecanismo de autenticación seguro utilizando claves API y algoritmos hash criptográficos, por lo que nuestra autenticación WebSocket aprovecha esto para proporcionar el mismo alto nivel de seguridad.

Para suscribirse a un feed privado de WebSocket, el cliente de la API debe solicitar primero un token de autenticación a través de la API REST y luego proporcionar el mismo token al suscribirse a los feeds privados:

API_Flowchart_10072020.png

Instrucciones paso a paso

Se puede acceder a los feeds privados de WebSocket siguiendo este procedimiento:

1. Genera una clave API a través del menú desplegable de tu Nombre de perfil en la parte superior derecha -> Seguridad -> API de la gestión de la cuenta y asegúrate de habilitar el permiso Acceder a la API de WebSockets:

General_SecurityDropdown_04272021.png
API_KeyPermissionsCheckboxes_03122021.png

2. Llama al endpoint GetWebSocketsToken de la API REST para recuperar un nuevo token de autenticación de WebSocket, que será similar al siguiente:

WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f

Los tokens de autenticación tienen una validez inicial de 15 minutos (900 segundos), pero una vez que se utiliza un token para suscribirse a un feed privado, el token seguirá siendo válido mientras la suscripción permanezca activa.

Nuestro ejemplo de Python 3 muestra cómo recuperar un token de autenticación de WebSocket del endpoint GetWebSocketsToken de la API REST en solo unas pocas líneas de código.

3. Conéctate a la API de WebSocket a través de la URL del feed privado wss://ws-auth.kraken.com/ y suscríbete al feed openOrders, al feed ownTrades o a ambos.

El token de autenticación de WebSocket debe proporcionarse en el mensaje de suscripción como el valor del campo del token:

  • {"event":"subscribe", "subscription":{"name":"openOrders", "token":"WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f"}}

  • {"event":"subscribe", "subscription":{"name":"ownTrades", "token":"WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f"}}

Problemas conocidos

  • EService:Unavailable - Si recibes un error de servicio no disponible

     al suscribirte a un feed privado, deberías intentar la suscripción de nuevo. El error de servicio no disponible es solo temporal, por lo que un intento de suscripción posterior debería ser exitoso.