Système et métadonnées
Quatre routes qui ne servent pas de métrique de marché : elles disent si le service répond, si la donnée est fraîche, quels actifs existent, et ce que chacun peut réellement servir.
#Santé du service
La sonde. Elle dit si le service est debout et si sa base répond. C’est la seule route qui répond sans clé, et elle n’est jamais décomptée du quota — le point qu’un système de surveillance peut interroger sans rien consommer.
{
"status": "ok",
"timestamp": 1775647758094,
"database": "connected"
}En cas de problème, la réponse porte 503 et "database": "unreachable".
#Fraîcheur des sources
Pour chaque source alimentant le cœur de marché : le nombre de lignes, la dernière insertion, son âge, et un drapeau is_stale calculé côté serveur contre un seuil propre à cette source. C’est la route à interroger avant de bâtir une analyse — savoir qu’une donnée est vieille vaut mieux que de la découvrir dans un résultat.
{
"status": "ok",
"timestamp": 1775648290510,
"tables": {
"raw_exchange.klines_1m": {
"count": 4881977,
"last_insert": "2026-08-29T11:37:00+00:00",
"age_seconds": 70.5,
"is_stale": false,
"stale_threshold_seconds": 180
},
"raw_exchange.trades_raw": {
"count": 918964,
"last_insert": "2026-08-29T11:38:09+00:00",
"age_seconds": 1.5,
"is_stale": false,
"stale_threshold_seconds": 30,
"per_exchange": {
"venue_a": { "age_seconds": 1.2, "is_stale": false },
"venue_b": { "age_seconds": 2.0, "is_stale": false }
},
"any_exchange_stale": false
}
}
}| Champ | Type | Description |
|---|---|---|
count | integer | Nombre de lignes disponibles. |
last_insert | string | null | Horodatage ISO 8601 de la dernière écriture. |
age_seconds | float | null | Secondes écoulées depuis. |
is_stale | boolean | Vrai si l’âge dépasse le seuil. Une source vide qui a un seuil est marquée périmée : « pas de donnée du tout » est un signal plus fort que « donnée en retard ». |
stale_threshold_seconds | integer | null | Le seuil appliqué. null signifie qu’aucun seuil n’a de sens pour cette source — un indice publié une fois par jour, par exemple. |
per_exchange | object | Sur les sources multi-place : l’âge de chacune. Une seule place tombée y est visible. |
any_exchange_stale | boolean | Accompagne per_exchange. Le drapeau racine repose sur la source la plus fraîche : une place morte y serait invisible tant que les autres écrivent. Celui-ci la fait remonter. |
#Catalogue des symboles
La liste vivante des actifs activés. C’est elle qui fait foi : n’écrivez pas la liste en dur dans un client, faites-la lire au démarrage.
{
"status": "ok",
"timestamp": 1775648758094,
"data_type": "symbols",
"data": [
{ "symbol": "BTCUSDT", "base_asset": "BTC", "name": "Bitcoin" },
{ "symbol": "ETHUSDT", "base_asset": "ETH", "name": "Ethereum" }
]
}| Champ | Type | Description |
|---|---|---|
symbol | string | L’identifiant à passer en ?symbol=. |
base_asset | string | L’actif de base — BTC, ETH. C’est lui que prennent les routes options en ?asset=. |
name | string | Le nom complet, pour affichage. |
#Rapport de capacité
Ce que cet actif peut réellement servir, mesuré sur les vingt-quatre dernières heures. Il permet de prévoir une réponse vide au lieu de la découvrir — et de distinguer une métrique qui n’a pas de sens ici d’une métrique momentanément bloquée.
curl -H "X-API-KEY: $BYTNODE_KEY" \
"https://api.bytnode.com/v1/symbols/USDCUSDT/capabilities"| Champ | Type | Description |
|---|---|---|
symbol | string | L’actif interrogé. |
asset_class | string | crypto ou stablecoin. |
feeds_active_last_24h | object | Huit flux, chacun à vrai ou faux selon qu’il a produit de la donnée sur la fenêtre. Capacité n’est pas fraîcheur : un flux actif il y a vingt heures y est encore à vrai. |
computed_metrics_available | array | Les métriques calculables : tous leurs flux d’entrée sont présents. |
computed_metrics_blocked | object | Les métriques empêchées, avec les flux manquants et la raison. |
computed_metrics_not_applicable | object | Sur un stablecoin : toutes les métriques dérivées du marché à terme, avec leur raison. C’est intentionnel, pas une panne. |
stablecoin_note | string | Sur un stablecoin : ce qui reste disponible en spot. |
Un symbole inconnu ou désactivé rend 400 avec la liste des symboles actifs.