SDK
Deux clients officiels, Python et TypeScript, générés depuis le contrat OpenAPI : chaque route est une méthode typée nommée d’après son chemin, la pagination est suivie pour vous, les erreurs sont des exceptions typées qui portent le error.code stable, les nouvelles tentatives respectent Retry-After, et le flux WebSocket se reconnecte seul.
#Installer
Les paquets sont publiés en pièces jointes de chaque version du dépôt public github.com/bytnode/bytnode-SDK, avec leur source et leur journal. Ils ne sont pas encore sur PyPI ni npm : installez la pièce jointe de la version, par son 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"Les deux lisent la clé dans la variable d’environnement BYTNODE_API_KEY, le nom qu’emploient tous les exemples de cette documentation.
#Premiers appels
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()#Ce que les clients font pour vous
- L’URL est la méthode.
/v1/funding/rate/historys’écritclient.funding.rate.history(...); chaque ligne est un modèle typé aux noms de champs de l’API, dates déjà converties. - La pagination.
.iter()suitnextpage après page jusqu’ànull, avec les plus grandes pages que la route permet ; bornes de temps en date, en chaîne ISO ou en millisecondes epoch. - Les erreurs. Une exception par situation (requête invalide, accès refusé, débit dépassé...) qui porte
code,paramet le message de l’API. - Les nouvelles tentatives. 429 et 503 attendent
Retry-After; 502, 503, 504 et les erreurs réseau reculent avec un délai aléatoire ; un quota mensuel épuisé échoue tout de suite. - Le flux. Reconnexion avec délai croissant, réabonnement, messages typés et détection des pertes par
seq.
#Générer votre propre client
Le contrat est fait pour les générateurs de code : chaque opération a un operationId lisible (getFundingRateHistory), chaque réponse un schéma nommé (FundingRate, Kline, Trade...), et les valeurs fermées sont des enum (timeframe, asset, order). Pour un autre langage, générez depuis 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#Versions
La version du SDK suit son propre journal ; chaque version est générée depuis une version du contrat, que toute réponse de l’API annonce dans l’en-tête BytNode-Contract-Version. Comparez les deux pour savoir si l’API a bougé depuis la génération de votre client. Voir Versions et migration.
bytnode 0.2.1 · contract 2.0.0