Registro de cambios
Lo que ha cambiado en el contrato de la API, de lo más reciente a lo más antiguo, y el preaviso al que nos comprometemos antes de un cambio incompatible. Contrato actual: v1, versión OpenAPI 1.1.0.
#Versionado y obsolescencia
El contrato es v1. No rompen la compatibilidad, y se publican sin preaviso: una ruta nueva, un campo nuevo en una respuesta, un parámetro opcional nuevo, un error.code nuevo, un valor nuevo en un texto informativo. Escribe clientes que ignoren los campos desconocidos.
Rompen la compatibilidad: eliminar o renombrar una ruta, un campo, un parámetro o un error.code, cambiar una unidad o el significado de un campo. Un cambio incompatible se anuncia en esta página y solo entra en vigor para tu plan una vez cumplido su preaviso:
| Plan | Preaviso antes de un cambio incompatible |
|---|---|
| Free | Sin preaviso garantizado (se anuncia en esta página) |
| Traders | 30 días |
| Financial | 60 días |
| Startup | 90 días |
| Enterprise | Fijado en el contrato |
#Cambios
2026-10-01 · Un único formato de error, una referencia generada
- Todo error tiene una sola forma:
status: "error",timestamp,error{code, message, param}ydetail.error.codees estable y legible por máquina: decide en función de él.detailse mantiene y repite el mensaje; en un error de validación ahora es una cadena en lugar de una lista. - Los mensajes de error están en inglés (estaban en francés). Un cliente que comparaba el texto en francés debe pasar a
error.code. /v1/snapshotacepta=truecomo profundidad 1 (funding_rate_8h=true). Llamado solo consymbol, ahora también devuelveavailable_multi_tf_fields,timeframesymax_depth.timePeriod=1moen los historiales de Bitcoin, una grafía inequívoca de un mes;1msigue funcionando allí y sigue significando un mes.POST /v1/indicatorsacepta también los parámetros anidados en un objetoparameters./v1/trades/futuresobre una stablecoin respondeunavailable: "not_applicable"(antes decíano_data).- Las respuestas se comprimen (gzip) cuando el cliente lo pide;
GET https://api.bytnode.com/responde con un índice JSON de los enlaces. - El contrato OpenAPI incluye ahora un esquema, la unidad de cada campo y un ejemplo real para cada ruta, las respuestas de error y ejemplos de código. Novedades:
llms-full.txt, una colección de Postman y la referencia interactiva. - Los textos de
/v1/macro/correlations(method) y/v1/macro/risk(condition) están en inglés.
2026-09-30 · Calidad de los datos
- Las velas de operaciones combinadas (
/v1/trades) se construyen a partir de las velas spot y de futuros del mismo bucket. - Nuevo campo
volume_estimateden las velas:truecuando el volumen agregado de una vela antigua se ha reconstruido. - El funding se alinea con el período realmente cubierto;
/v1/funding/rate?live=1sirve la ventana en curso. - La variación de precio del par USDC se calcula sobre velas spot.
- WebSocket: cada mensaje
book.*incluyemid_avgyspread_bps_avg.
2026-09-29 · Alias de tiempo, respuestas vacías, contrato publicado
- Todo objeto con marca de tiempo bajo
datalleva tambiéntime, una copia de subucket,timestamp,date… para que un cliente genérico lea una sola clave. - Toda ruta REST cuyo
dataestá vacío llevaunavailable(not_applicable,no_api_key,no_data), como el snapshot. - El contrato OpenAPI con la unidad de cada campo numérico se sirve sin clave en
/openapi.json. - Las velas OHLC proceden de un único mercado spot de referencia por símbolo; los volúmenes siguen agregados entre plataformas.
- Un
timeframedesconocido es un422, ya no un403.
2026-09-28 · Parámetros estrictos y una escala por sufijo
- Parámetros estrictos: un parámetro que la ruta no declara, o uno repetido, es un
422con una sugerencia (antes se ignoraba en silencio). since_ms/until_msen segundos, micro- o nanosegundos, o anteriores al 2009-01-03 son un422.- Unidades por sufijo:
*_pctes un porcentaje,*_ratiouna fracción,*_bpspuntos básicos.aprpasó a serapr_pct;basis_pctse sirve ×100. - Toda marca de tiempo es ISO 8601 UTC con milisegundos fijos (
2026-09-28T14:00:00.000Z). - El sobre repite el
symboly eltimeframeefectivos de la petición. is_closedes inmutable: un bucket cerrado es definitivo y nunca se reescribe.- Cabeceras de límite de velocidad en el formato del IETF (
RateLimit-Policy,RateLimit), con la cuota mensual restante. - Todo error generado en el borde es JSON, nunca una página HTML.
/v1/statustiene una fila por flujo público, con un umbral de 1,5 × su intervalo esperado.
2026-09-26 · Servidor MCP
- El servidor MCP expone tres herramientas que cubren toda la API (73 campos), con la clave y el plan del propio cliente.
- Un historial nunca se corta en silencio: un período sin
timeframerecibe el paso más fino que cabe, y cada serie incluye su cobertura real (ranges).
2026-09-16 · Capacidad del WebSocket
- El flujo WebSocket funciona en una infraestructura dedicada y anuncia su capacidad: un
503en el handshake significa que el servicio está lleno, no que tu plan lo haya rechazado. - Los números de secuencia (
seq) son globales por canal.
2026-09-12 · Diez pares nuevos
- XMR, LINK, ADA, LTC, UNI, GRAM (ex-TON), AVAX, HBAR, NEAR y TAO se suman al catálogo: 22 pares.