API REST

Vue d’ensemble

Une requête, une réponse déjà agrégée. Toutes les routes partagent la même forme, la même enveloppe et les mêmes paramètres transverses : ce qui est vrai d’une famille l’est des autres.

#La forme d’une requête

Forme
GET https://api.bytnode.com/v1/<family>/<metric>
  ?symbol=BTCUSDT       # required on per-asset routes
  &timeframe=1h         # on bucketed routes
  &limit=100            # on /history routes
  &fields=timestamp,rate

X-API-KEY: your_key

Le chemin dit la famille et la métrique. Les paramètres disent l’actif, l’unité de temps et la profondeur. L’en-tête porte la clé. Il n’y a rien d’autre à savoir pour appeler n’importe quelle route.

Un seul endpoint échappe à cette forme : POST /v1/indicators, qui prend un corps JSON parce qu’il décrit un calcul, pas une lecture.

#Dernière valeur ou historique

La plupart des métriques existent en deux versions. La route nue renvoie la dernière valeur : un objet, ou null. Le suffixe /history renvoie une liste, de la plus récente à la plus ancienne.

curl
# The latest value
GET /v1/basis?symbol=BTCUSDT

# The last 200, from newest to oldest
GET /v1/basis/history?symbol=BTCUSDT&limit=200

# A dated window, in milliseconds
GET /v1/basis/history?symbol=BTCUSDT&since_ms=1756425600000&until_ms=1756512000000

#Paramètres communs

ParamètreTypeDéfautDescription
symbolstringobligatoireL’actif, au format du catalogue (BTCUSDT). Absent : 422. Inconnu : 400 avec la liste. Les routes de tout le marché ne l’acceptent pas.
timeframestringobligatoireSur les routes par intervalles : 1m, 5m, 15m, 30m, 1h, 4h, 1d. Hors liste : 422.
limitinteger100Sur les routes /history. Plafond de 1000 en général, 500 sur le ratio long/short et les écarts entre places.
since_ms / until_msinteger—Fenêtre de temps en millisecondes Unix, là où la route l’accepte. Le filtre s’applique avant limit.
livebooleanfalseSur les routes de dernière valeur par intervalles : expose la période en cours, marquée is_closed: false.
fieldsstring—Projection CSV de data, notation pointée pour les champs imbriqués. Champ inconnu : 422 avec une suggestion.

Ce qui n’existe pas

Le paramètre exchange n’existe sur aucune route : les réponses sont agrégées et ne nomment pas leur place, à la seule exception des écarts entre places. Le passer renvoie 422.

#Les familles

AuthentificationUne clé d’API pour les trois canaux. Où la placer, comment la protéger, comment la renouveler.Réponses et erreursL’enveloppe commune, la projection ?fields=, les codes d’erreur et ce qu’ils veulent dire.Limites d’usageDébit, connexions simultanées, profondeur d’historique, et que faire sur un 429.ConventionsSymboles, unités de temps, agrégation multi-places, bougies closes et couverture des sources.API RESTLa forme d’une requête REST, les familles disponibles et le choix latest / history.Système et métadonnéesSanté, fraîcheur des sources, catalogue des symboles et rapport de capacités.SnapshotSoixante et un champs en une seule requête, avec les clés unavailable et coverage.Prix et volumeBougies, transactions agrégées, ticks individuels, gros ordres et variation de prix.DérivésFunding, intérêt ouvert, liquidations, ratio long/short, base et écarts entre places.Flux et microstructureCVD, carnet d’ordres agrégé, VWAP, ratio achat/vente, taille moyenne et heatmap.Indicateurs techniquesVingt indicateurs calculés à la demande, calibrés sur TradingView.OptionsIntérêt ouvert, volume, put/call, max pain, volatilité implicite et grecques sur BTC et ETH.On-chain et réseauLe réseau Bitcoin, la valorisation on-chain du BTC, et les huit familles Ethereum.Macro, ETF et sentimentSéries macro officielles, bougies macro intrajournalières, fondamentaux des ETF, tokenomics et Fear & Greed.Flux WebSocketQuatre canaux consolidés, authentification par message, séquences et codes de fermeture.

Toutes les routes tiennent sur une page dans le catalogue des endpoints.