SDK
Dos clientes oficiales, Python y TypeScript, generados a partir del contrato OpenAPI: cada ruta es un método tipado con el nombre de su ruta, la paginación se sigue por ti, los errores son excepciones tipadas con el error.code estable, los reintentos respetan Retry-After y el flujo WebSocket se reconecta solo.
#Instalar
Los paquetes se publican como adjuntos de cada versión del repositorio público github.com/bytnode/bytnode-SDK, con su código fuente y su registro de cambios. Aún no están en PyPI ni en npm: instala el adjunto de la versión, por su URL.
pip install https://github.com/bytnode/bytnode-SDK/releases/download/v0.2.1/bytnode-0.2.1-py3-none-any.whl
# with pandas: pip install "bytnode[pandas] @ https://github.com/bytnode/bytnode-SDK/releases/download/v0.2.1/bytnode-0.2.1-py3-none-any.whl"
export BYTNODE_API_KEY="your_key"Ambos leen la clave de la variable de entorno BYTNODE_API_KEY, el nombre que usan todos los ejemplos de esta documentación.
#Primeras llamadas
from bytnode import Bytnode
client = Bytnode() # reads BYTNODE_API_KEY
rate = client.funding.rate("BTCUSDT")
print(rate.data.rate_pct, rate.data.time)
# every page of a history, followed for you, into one DataFrame
df = client.klines.iter("BTCUSDT", "1h", since="2026-10-01").to_pandas()#Lo que los clientes hacen por ti
- La URL es el método.
/v1/funding/rate/historyesclient.funding.rate.history(...); cada fila es un modelo tipado con los nombres de campo de la API y las fechas ya convertidas. - Paginación.
.iter()siguenextpágina tras página hasta que valenull, con las páginas más grandes que permite la ruta; límites de tiempo como fecha, cadena ISO o milisegundos epoch. - Errores. Una excepción por situación (petición no válida, acceso denegado, límite de velocidad...) con
code,paramy el mensaje de la API. - Reintentos. 429 y 503 esperan
Retry-After; 502, 503, 504 y los errores de red reintentan con espera aleatoria; una cuota mensual agotada falla de inmediato. - Flujo. Reconexión con espera creciente, resuscripción, mensajes tipados y detección de pérdidas a partir de
seq.
#Generar tu propio cliente
El contrato está hecho para generadores de código: cada operación tiene un operationId legible (getFundingRateHistory), cada respuesta un esquema con nombre (FundingRate, Kline, Trade...), y los valores cerrados son enum (timeframe, asset, order). Para otro lenguaje, genera a partir de https://api.bytnode.com/openapi.json:
# TypeScript types
npx openapi-typescript https://api.bytnode.com/openapi.json -o bytnode.d.ts
# Python client
pipx run openapi-python-client generate --url https://api.bytnode.com/openapi.json#Versiones
La versión del SDK sigue su propio registro de cambios; cada versión se genera a partir de una versión del contrato, que toda respuesta de la API anuncia en la cabecera BytNode-Contract-Version. Compara ambas para saber si la API ha cambiado desde que se generó tu cliente. Ver Versiones y migración.
bytnode 0.2.1 · contract 2.0.0