Sistema y metadatos
Cuatro rutas que no sirven ninguna métrica de mercado: dicen si el servicio responde, si los datos están frescos, qué activos existen y lo que cada uno puede servir realmente.
#Salud del servicio
La sonda. Dice si el servicio está en marcha y si su base de datos responde. Es la única ruta que responde sin clave y nunca se descuenta de la cuota, lo que la convierte en el punto que un sistema de monitorización puede consultar sin consumir nada.
{
"status": "ok",
"timestamp": 1775647758094,
"database": "connected"
}En caso de problema, la respuesta lleva 503 y "database": "unreachable".
#Frescura de las fuentes
Para cada fuente que alimenta el núcleo de mercado: el número de filas, la última inserción, su antigüedad y un indicador is_stale calculado en el servidor según un umbral propio de esa fuente. Es la ruta que hay que consultar antes de construir un análisis: saber que un dato es antiguo es mejor que descubrirlo en un resultado.
{
"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
}
}
}| Campo | Tipo | Descripción |
|---|---|---|
count | integer | Número de filas disponibles. |
last_insert | string | null | Marca de tiempo ISO 8601 de la última escritura. |
age_seconds | float | null | Segundos transcurridos desde entonces. |
is_stale | boolean | Verdadero si la antigüedad supera el umbral. Una fuente vacía que tiene umbral se marca como obsoleta: «ningún dato» es una señal más fuerte que «datos con retraso». |
stale_threshold_seconds | integer | null | El umbral aplicado. null significa que ningún umbral tiene sentido para esta fuente (un índice publicado una vez al día, por ejemplo). |
per_exchange | object | En las fuentes multimercado: la antigüedad de cada una. Un solo mercado caído se ve ahí. |
any_exchange_stale | boolean | Acompaña a per_exchange. El indicador raíz se basa en la fuente más fresca: un mercado caído sería invisible mientras los demás sigan escribiendo. Este lo hace aparecer. |
#Catálogo de símbolos
La lista viva de los activos habilitados. Es la referencia: no codifiques la lista en un cliente, haz que la lea al arrancar.
{
"status": "ok",
"timestamp": 1775648758094,
"data_type": "symbols",
"data": [
{ "symbol": "BTCUSDT", "base_asset": "BTC", "name": "Bitcoin" },
{ "symbol": "ETHUSDT", "base_asset": "ETH", "name": "Ethereum" }
]
}| Campo | Tipo | Descripción |
|---|---|---|
symbol | string | El identificador que pasar en ?symbol=. |
base_asset | string | El activo base (BTC, ETH). Es lo que las rutas de opciones reciben en ?asset=. |
name | string | El nombre completo, para mostrar. |
#Informe de capacidades
Lo que este activo puede servir realmente, medido en las últimas veinticuatro horas. Permite anticipar una respuesta vacía en lugar de descubrirla, y distinguir una métrica que no tiene sentido aquí de una métrica bloqueada momentáneamente.
curl -H "X-API-KEY: $BYTNODE_KEY" \
"https://api.bytnode.com/v1/symbols/USDCUSDT/capabilities"| Campo | Tipo | Descripción |
|---|---|---|
symbol | string | El activo consultado. |
asset_class | string | crypto o stablecoin. |
feeds_active_last_24h | object | Ocho flujos, cada uno verdadero o falso según haya producido datos en la ventana. Capacidad no es frescura: un flujo activo hace veinte horas sigue siendo verdadero. |
computed_metrics_available | array | Las métricas calculables: todos sus flujos de entrada están presentes. |
computed_metrics_blocked | object | Las métricas impedidas, con los flujos que faltan y el motivo. |
computed_metrics_not_applicable | object | En una stablecoin: cada métrica derivada del mercado de futuros, con su motivo. Es intencionado, no un fallo. |
stablecoin_note | string | En una stablecoin: lo que sigue disponible en spot. |
Un símbolo desconocido o desactivado devuelve 400 con la lista de símbolos activos.