/api/sd/basis/history
GETParcialFRESH

Historial de la base (horario)

Serie horaria de la base por exchange y como agregado entre exchanges (mediana, media, ponderada por OI) de una moneda.

GET/api/sd/basis/history
Cobertura parcial. La recopilación comenzó el 2026-11-11. La respuesta informa de `history.available_from`, de `n_hours` frente a `expected_hours` y de `complete`; las horas sin datos están ausentes, no se interpolan.

Solicitud

Parámetros de consulta

NombreTipoObligatorioValor por defectoValores admitidosDescripción
coinstringObligatorio——Símbolo de la moneda, sin distinción entre mayúsculas y minúsculas (por ejemplo `BTC`). Los valores ausentes o mal formados devuelven 400. Ejemplo: BTC
kindstringOpcionalperpperp, spot_perp`perp`: precio de marca frente al precio del índice del mismo exchange. `spot_perp`: precio del perpetuo frente al precio spot del mismo exchange.
rangestringOpcional24h24h, 7d, 30dRango retrospectivo, un punto por hora.
exchangestringOpcional——Un id de exchange. Por defecto: todos los exchanges. Un id desconocido devuelve 400.

Solicitud de ejemplo

curl -s "https://www.coinboss.com/api/sd/basis/history?coin=BTC"

Campos de la respuesta

La tabla de campos se genera a partir de respuestas reales, por lo que recoge exactamente lo que devuelve el endpoint. Las rutas usan a[] para los elementos de un array y {*} para los objetos cuya clave es un nombre dinámico, como una moneda o un exchange.

CampoTipoUnidadDescripción
successboolean—true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`.
schemastring—Id de esquema de esta respuesta. Solo cambia cuando un campo existente cambia de significado o de tipo.
nownumbermsHora del servidor en el momento de generar la respuesta.
coinstring—Símbolo de la moneda (en mayúsculas).
kindstring—`perp` o `spot_perp`.
rangestring—Rango retrospectivo aplicado.
intervalstring—Separación entre los puntos de la serie.
exchangestring|null—Id del exchange (en minúsculas).
aggregatearray—Agregado entre exchanges de la sección.
aggregate[]object—Agregado entre exchanges de la sección.
aggregate[].tnumbermsInicio del tramo temporal.
aggregate[].median_pctnumber%Mediana de la base sobre un contrato principal por exchange.
aggregate[].mean_pctnumber%Media simple sobre el mismo conjunto que la mediana.
aggregate[].oi_weighted_pctnumber%Base ponderada por interés abierto; las filas sin ponderación por OI quedan fuera.
aggregate[].n_exchangesnumber—Exchanges incluidos en el agregado.
seriesarray—Una serie por exchange.
series[]object—Una serie por exchange.
series[].exchangestring—Id del exchange (en minúsculas).
series[].symbolstring—Símbolo del contrato en el formato de almacenamiento de CoinBoss.
series[].primaryboolean—True para el contrato que representa a su exchange en la mediana y la media.
series[].in_aggregateboolean—True cuando la fila cumple las reglas de inclusión.
series[].pointsarray—Pares `[hour start in ms, basis in %]`, del más antiguo al más reciente.
series[].points[]array—Pares `[hour start in ms, basis in %]`, del más antiguo al más reciente.
series[].points[][]number—Pares `[hour start in ms, basis in %]`, del más antiguo al más reciente.
historyobject—Qué parte del rango solicitado está disponible.
history.requested_fromnumbermsInicio del rango solicitado.
history.available_fromnumbermsPrimera hora almacenada.
history.available_tonumbermsÚltima hora almacenada.
history.n_hoursnumber—Horas disponibles en el rango.
history.expected_hoursnumber—Horas que contiene el rango cuando está completo.
history.completeboolean—True cuando están almacenadas todas las horas del rango solicitado.
coverageobject—Qué se incluye y qué no en las cifras. Conviene revisarlo antes de comparar totales con otra fuente.
coverage.included_exchangesarray—Fuentes cuyos datos frescos se incluyen.
coverage.included_exchanges[]string—Fuentes cuyos datos frescos se incluyen.
coverage.unavailablearray—Fuentes que no pudieron incluirse, cada una con su motivo. Nunca se cuentan como 0.
coverage.unavailable[]object—Fuentes que no pudieron incluirse, cada una con su motivo. Nunca se cuentan como 0.
coverage.unavailable[].exchangestring—Id del exchange (en minúsculas).
coverage.unavailable[].reasonstring—Código de motivo legible por máquina.
coverage.unavailable[].detailstring—Explicación del motivo legible por personas.
coverage.stale_excludedarray—Filas excluidas porque su última actualización está fuera de la ventana de frescura. vacío en las muestras usadas para generar esta tabla
methodobject—Enunciado en texto plano de las fórmulas utilizadas en esta respuesta, con una entrada por campo.
method.series.pointsstring—Nota de fórmula de `series.points`, en texto plano.
method.aggregate.median_pctstring—Nota de fórmula de `aggregate.median_pct`, en texto plano.
method.aggregate.oi_weighted_pctstring—Nota de fórmula de `aggregate.oi_weighted_pct`, en texto plano.
method.intervalstring—Nota de fórmula de `interval`, en texto plano.
metaobject—Linaje y frescura de esta respuesta.
meta.schemastring—Id de esquema de esta respuesta. Solo cambia cuando un campo existente cambia de significado o de tipo.
meta.sourcearray—Endpoints públicos de origen de los que se recopilaron los datos.
meta.source[]object—Endpoints públicos de origen de los que se recopilaron los datos.
meta.source[].exchangestring—Id del exchange (en minúsculas).
meta.source[].endpointstring—Endpoint público de la fuente que lee el recolector (se muestra por linaje; los clientes nunca lo llaman).
meta.observed_atnull—Marca de tiempo que la fuente asigna a los datos.
meta.received_atnumbermsHora en que el recolector de CoinBoss recibió los datos.
meta.fetched_atnumbermsHora en que se compuso esta respuesta.
meta.windowstring—Ventana temporal que cubren las cifras.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN o UNAVAILABLE, según las marcas de tiempo de los datos y la cobertura.
meta.is_staleboolean—True cuando los datos son más antiguos que su ventana de frescura.
meta.cache_ttl_snumbersTiempo de vida en caché de esta respuesta.
meta.fallbackstring—Qué devuelve el endpoint cuando falla el recolector o una fuente.

Generada 2026-11-11 23:00 UTC a partir de 3 respuestas reales.

Respuesta de ejemplo

/api/sd/basis/history?coin=BTC · Respuesta real capturada 2026-11-13 03:58:08 UTC. Los arrays y mapas largos se abrevian para su visualización: series tenía 20 elementos; aggregate tenía 25 elementos; meta.source tenía 20 elementos; series[].points tenía 25 elementos; coverage.included_exchanges tenía 20 elementos.

  • {
    • "success": true,
    • "schema": "coinboss.sd.basis/1",
    • "now": 1794542288014,
    • "coin": "BTC",
    • "kind": "perp",
    • "range": "24h",
    • "interval": "1h",
    • "exchange": null,
    • "aggregate": [
      • { … 5 },
      • { … 5 }
      ],
    • "series": [
      • { … 5 },
      • { … 5 }
      ],
    • "history": {
      • "requested_from": 1794452400000,
      • "available_from": 1794452400000,
      • "available_to": 1794538800000,
      • "n_hours": 25,
      • "expected_hours": 24,
      • "complete": true
      },
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "unavailable": [ … 2 ],
      • "stale_excluded": []
      },
    • "method": {
      • "series.points": "[hour_ts, (mark_price - index_price) / index_price * 100] from the first collector round after each full hour; hours where the two timestamps were more than 60 …",
      • "aggregate.median_pct": "median over one primary contract per exchange in that hour; excluded: |value| > 10, contracts with no trade in 24 h, exchanges whose index is not a comparable i…",
      • "aggregate.oi_weighted_pct": "sum(value * oi_usd) / sum(oi_usd) over all included contracts that have an OI snapshot for the same hour (oi_history / sd_contract_hourly, single-sided); null w…",
      • "interval": "fixed 1 h buckets, no interpolation; missing hours are simply absent"
      },
    • "meta": {
      • "schema": "coinboss.sd.basis/1",
      • "source": [ … 2 ],
      • "observed_at": null,
      • "received_at": 1794538827406,
      • "fetched_at": 1794542288014,
      • "window": "24h",
      • "quality": "FRESH",
      • "is_stale": false,
      • "cache_ttl_s": 300,
      • "fallback": "history is served as stored; hours without a snapshot are absent, never interpolated"
      }
    }

Muestras verificadas

Además del ejemplo anterior, la sonda llama a este endpoint con estos parámetros y comprueba el esquema en cada ocasión.

ParámetrosHTTPLatenciaResultado
coin=ETH&kind=spot_perp20041 msCorrecto FRESH
coin=BTC&exchange=binance20032 msCorrecto FRESH
coin=BTC&range=1y4001 msCorrecto devuelve el error esperado

Comprobado 2026-11-13 03:58:08 UTC

Detalles

Autenticación
Ninguna. Endpoint público.
Límite de solicitudes
1200 solicitudes por minuto por IP
Caché del servidor
5m
Microcaché de borde
10s
Frecuencia de actualización
Ronda del recolector cada 60 segundos; una fila es fresca durante 180 segundos. Las instantáneas horarias alimentan el historial.
Ventana
24h / 7d / 30d, tramos horarios.
Fuentes de datos
Precio de marca, precio del índice y último precio publicados por 21 exchanges de derivados, más el precio spot del mismo exchange, recopilados y almacenados por CoinBoss (sd_px_latest, sd_px_hourly).
Cobertura de exchanges
21 exchanges. Los exchanges que no publican un precio del índice o un precio de marca se listan en `coverage.unavailable`; las filas cuyos dos componentes de precio distan más de 60 segundos devuelven `null`. Las filas que quedan fuera del agregado se listan en `coverage.excluded_from_aggregate` con el motivo.
Paginación
Sin paginación; `range` limita el número de puntos.
Ordenación
Tiempo ascendente.
Unidades
All basis values in percent. Prices in the quote currency of the contract (USDT / USDC / USD). `oi_usd` single-sided.
Método
Each point is the snapshot taken in the first ten minutes of the hour. The OI weight of a historical hour is the open interest recorded in that hour; without it `oi_weighted_pct` is `null`.
Marcas de tiempo
Milisegundos de época Unix (UTC), salvo que la descripción del campo indique otra cosa
Formato de respuesta
json
Estabilidad
Estable
Disponible desde
2026-11-11

Estado en vivo

ParcialComprobado 2026-11-13 03:58:08 UTCHTTP 20045 msEl esquema coincideAntigüedad del dato más reciente: 58m

La recopilación comenzó el 2026-11-11. La respuesta informa de `history.available_from`, de `n_hours` frente a `expected_hours` y de `complete`; las horas sin datos están ausentes, no se interpolan.

Disponibilidad, últimos 30 días

100% de 407 comprobaciones superadas

Errores

Las llamadas fallidas tienen la misma estructura en todos los endpoints. La lista completa está en la página de errores. Errores y límites de solicitudes →

CódigoHTTPSignificadoQué hacer
INVALID_PARAM400Falta un parámetro obligatorio o un valor no se acepta. `param` indica el nombre del parámetro cuando se conoce.No reintente sin cambios; corrija la solicitud.
UNAUTHORIZED401Se envió la cabecera `CB-API-KEY`, pero la clave es desconocida o está revocada. Los datos públicos no necesitan clave: elimine la cabecera o use una clave válida.No reintente sin cambios.
FORBIDDEN403La ruta no forma parte de la API pública (interna o solo para cuentas).No reintente.
NOT_FOUND404Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe.No reintente; compruebe la ruta y los identificadores en el catálogo.
RATE_LIMITED429Más solicitudes que el límite por minuto. `Retry-After` indica los segundos de espera.Espere el tiempo de `Retry-After` y después reintente con espera progresiva.
INTERNAL500Error inesperado del servidor. El mensaje es genérico por diseño; cite `request_id` al informar del error.Reintente una vez tras unos segundos; si persiste, infórmelo con el ID de solicitud.
UPSTREAM_FAILED503La fuente de datos de este endpoint no respondió a tiempo. No se devuelven cifras desactualizadas ni sustitutas en su lugar.Reintente con espera progresiva; consulte la página de estado.
UNAVAILABLE501 / 503El conjunto de datos no está listo temporalmente (calentamiento de la caché) o el endpoint aún no tiene una fuente pública lícita.Reintente más tarde; el catálogo marca los endpoints que no están disponibles por diseño.
REQUEST_FAILED200Algunos endpoints antiguos responden HTTP 200 con `success: false`. Compruebe siempre `success`, no solo el estado HTTP.Depende del mensaje; trátelo como una solicitud fallida.

Pruébelo

GET/api/sd/basis/historyParcial
Parámetros

string — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.

string · por defecto perp — `perp`: mark price against the index price of the same exchange. `spot_perp`: perpetual price against the spot price of the same exchange.

string · por defecto 24h — Look-back range, one point per hour.

string — One exchange id. Default: all exchanges. An unknown id returns 400.

URL de la solicitudhttps://www.coinboss.com/api/sd/basis/history?coin=BTC
Elija un endpoint y pulse «Enviar solicitud». Aquí aparecerán la respuesta, las cabeceras y los tiempos.