Interés abierto de una moneda
Capa de datos propia: interés abierto de una moneda (por exchange / contrato, con indicadores de calidad)
/api/sd/oiSolicitud
Parámetros de consulta
| Nombre | Tipo | Obligatorio | Valor por defecto | Valores admitidos | Descripción |
|---|---|---|---|---|---|
| coin | string | Obligatorio | — | — | Símbolo de la moneda; 400 cuando falta. Alias: `base`. Ejemplo: BTC |
Solicitud de ejemplo
curl -s "https://www.coinboss.com/api/sd/oi?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.
| Campo | Tipo | Unidad | Descripción |
|---|---|---|---|
| success | boolean | — | true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`. |
| coin | string | — | Símbolo de la moneda, en mayúsculas (por ejemplo BTC). |
| now | number | ms | Hora del servidor en el momento de generar la respuesta. |
| total_usd | number | USD | Interés abierto de todos los exchanges y contratos incluidos, tal como lo informa cada exchange (nocional USD). |
| n_exchanges | number | — | Número de exchanges incluidos en el total. |
| n_contracts | number | — | Número de contratos incluidos en el total. |
| asof | number | ms | Hora de actualización más reciente entre las filas incluidas. |
| total_usd_single_adjusted | number | USD | `total_usd` con las cifras de los exchanges que informan ambos lados (`double_sided.exchanges`) divididas entre dos, de modo que cada plataforma cuente un solo lado. |
| double_sided | object | — | Exchanges de los que se sabe que publican el interés abierto largo + corto como una única cifra. |
| double_sided.exchanges | array | — | Exchanges. |
| double_sided.exchanges[] | string | — | Exchanges. |
| double_sided.oi_usd | number | USD | Interés abierto informado por esos exchanges antes de dividirlo entre dos. |
| by_kind | object | — | Reparto entre lineales e inversos. |
| by_kind.linear_usd | number | USD | Interés abierto de los contratos lineales (con margen y liquidación en una stablecoin o en USD). |
| by_kind.inverse_usd | number | USD | Interés abierto de los contratos inversos (con margen en moneda), convertido a USD al precio del contrato. |
| by_margin | object | — | Reparto por moneda de margen. |
| by_margin.other | number | USD | Otras monedas de margen (por ejemplo, plataformas con liquidación en USD como CME). |
| by_margin.usdt | number | USD | Contratos con margen en USDT. |
| by_margin.usdc | number | USD | Contratos con margen en USDC. puede faltar |
| by_margin.coin | number | USD | Contratos con margen en moneda. puede faltar |
| by_contract_type | object | — | Reparto entre perpetuos y futuros con vencimiento. |
| by_contract_type.perpetual_usd | number | USD | Contratos perpetuos. |
| by_contract_type.delivery_usd | number | USD | Futuros con fecha (contratos con vencimiento). |
| change | object | — | Variación del interés abierto en 1h / 4h / 24h, calculada sobre el mismo conjunto de contratos en ambos extremos. claves dinámicas: h1,h4,h24 |
| change.{*} | object | — | Variación en el periodo indicado. |
| change.{*}.pct | number | % | Variación porcentual entre `prev` y `cur`. |
| change.{*}.cur | number | USD | Suma actual de los contratos emparejados. |
| change.{*}.prev | number | USD | Suma de los mismos contratos en `prev_ts`. |
| change.{*}.n_matched | number | — | Contratos (o exchanges) presentes en ambos extremos. |
| change.{*}.n_total | number | — | Contratos (o exchanges) presentes ahora. |
| change.{*}.matched_share_pct | number | % | Proporción del interés abierto actual cubierta por el conjunto emparejado. puede faltar |
| change.{*}.prev_ts | number | ms | Hora de la instantánea de referencia. |
| change.{*}.span_min | number | min | Distancia real entre la referencia y el momento actual. |
| change.{*}.basis | string | — | Serie de instantáneas de la que procede la referencia. |
| change.{*}.frozen_excluded | object | — | Filas excluidas de la variación porque su valor no cambió entre las dos instantáneas (el origen no se actualiza). puede faltar |
| change.{*}.frozen_excluded.n_baseline | number | — | Elementos de la instantánea de referencia. puede faltar |
| change.{*}.frozen_excluded.n_current | number | — | Elementos de la instantánea actual. puede faltar |
| change.{*}.frozen_excluded.cur_usd | number | USD | Valor actual. puede faltar |
| change.{*}.frozen_excluded.prev_usd | number | USD | Valor de referencia. puede faltar |
| by_exchange | array | — | Desglose por exchange. |
| by_exchange[] | object | — | Desglose por exchange. |
| by_exchange[].exchange | string | — | Id del exchange, en minúsculas (por ejemplo `binance`). |
| by_exchange[].oi_usd | number | USD | Interés abierto en nocional USD. |
| by_exchange[].share_pct | number | % | Cuota sobre el total. |
| by_exchange[].n_contracts | number | — | Número de contratos. |
| by_exchange[].linear_usd | number | USD | Contratos lineales. |
| by_exchange[].inverse_usd | number | USD | Contratos inversos (con margen en moneda). |
| by_exchange[].perpetual_usd | number | USD | Contratos perpetuos. |
| by_exchange[].delivery_usd | number | USD | Contratos con vencimiento. |
| by_exchange[].oi_side | string | — | `double` cuando el exchange informa ambos lados en una sola cifra, `single` cuando informa un lado, `unstated` cuando el exchange no lo documenta. |
| by_exchange[].oi_usd_single_adjusted | number|null | USD | Equivalente a un solo lado; null cuando la convención de lados no está declarada. |
| by_exchange[].updated_at | number | ms | Momento de la última actualización de esta fila. |
| by_exchange[].age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. |
| by_exchange[].is_stale | boolean | — | true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales. |
| contracts | array | — | Filas por contrato. |
| contracts[] | object | — | Filas por contrato. |
| contracts[].exchange | string | — | Id del exchange, en minúsculas (por ejemplo `binance`). |
| contracts[].symbol | string | — | Símbolo del instrumento tal como lo normaliza CoinBoss (por ejemplo BTCUSDT). |
| contracts[].native_symbol | string|null | — | Símbolo exactamente como lo escribe el exchange. |
| contracts[].oi_usd | number | USD | Interés abierto en nocional USD. |
| contracts[].oi_side | string | — | `double`, `single` o `unstated`: indica si el exchange informa ambos lados del interés abierto en una sola cifra. |
| contracts[].oi_usd_single | number|null | USD | Equivalente a un solo lado de `oi_usd`; null cuando la convención de lados no está declarada. |
| contracts[].margin | string | — | Clase de moneda de margen: `usdt`, `usdc`, `coin` u `other`. |
| contracts[].kind | string | — | `linear` o `inverse`. |
| contracts[].contract_type | string | — | `perpetual` o `delivery`. |
| contracts[].expiry_ts | number|null | ms | Vencimiento de un contrato con vencimiento; null en los perpetuos o cuando no se publica. |
| contracts[].margin_basis | string | — | Cómo se determinó la clase de margen (a partir de la especificación del contrato o del valor por defecto de la plataforma). |
| contracts[].updated_at | number | ms | Momento de la última actualización de esta fila. |
| contracts[].age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. |
| contracts[].is_stale | boolean | — | true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales. |
| contracts[].collector | string | — | Recolector interno que generó la fila. |
| contracts[].included_since | number|null | ms | Momento en que este contrato entró en los totales; null para el conjunto base. |
| coverage | object | — | Qué se incluye y qué no en las cifras anteriores. Conviene revisarlo antes de comparar totales con otra fuente. |
| coverage.included_exchanges | array | — | Exchanges cuyos datos se incluyen en los totales. |
| coverage.included_exchanges[] | string | — | Exchanges incluidos en los totales. |
| coverage.pending | array | — | Contratos que se recopilan pero aún no se incluyen en los totales (por ejemplo, mientras se sigue formando su propio historial de 25 horas). Se listan con su valor actual para que la diferencia sea visible. |
| coverage.pending[] | object | — | Elementos recopilados pero aún no incluidos. |
| coverage.pending[].exchange | string | — | Id del exchange, en minúsculas (por ejemplo `binance`). |
| coverage.pending[].symbol | string | — | Símbolo del instrumento tal como lo normaliza CoinBoss (por ejemplo BTCUSDT). |
| coverage.pending[].native_symbol | string | — | Símbolo exactamente como lo escribe el exchange. |
| coverage.pending[].margin | string | — | Clase de moneda de margen. |
| coverage.pending[].contract_type | string | — | `perpetual` o `delivery`. |
| coverage.pending[].oi_usd | number | USD | Interés abierto en nocional USD. |
| coverage.pending[].age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. |
| coverage.pending[].reason | string | — | Código de motivo. |
| coverage.pending[].detail | string|null | — | Detalle. |
| coverage.pending_usd | number|null | USD | Suma de los contratos pendientes; no forma parte de `total_usd`. |
| coverage.stale_excluded | array | — | Filas excluidas porque su última actualización está fuera de la ventana de uso. vacío en las muestras usadas para generar esta tabla |
| coverage.unavailable | array | — | Pares exchange / contrato que no pudieron incluirse, cada uno con su motivo. Nunca se cuentan como 0. |
| coverage.unavailable[] | object | — | Elementos para los que no hay datos disponibles, con sus motivos. Nunca se informan como 0. |
| coverage.unavailable[].exchange | string | — | Id del exchange, en minúsculas (por ejemplo `binance`). |
| coverage.unavailable[].symbol | string | — | Símbolo del instrumento tal como lo normaliza CoinBoss (por ejemplo BTCUSDT). |
| coverage.unavailable[].native_symbol | string | — | Símbolo exactamente como lo escribe el exchange. |
| coverage.unavailable[].margin | string | — | Clase de moneda de margen. |
| coverage.unavailable[].contract_type | string | — | `perpetual` o `delivery`. |
| coverage.unavailable[].reason | string | — | Código de motivo. |
| coverage.unavailable[].detail | string | — | Detalle. |
| method | object | — | Enunciado en texto plano de las fórmulas utilizadas en esta respuesta. |
| method.total | string | — | Total. |
| method.usd | string | USD | Valor. |
| method.change_h1_h4 | string | — | Definición en texto plano de las variaciones de 1h y 4h del interés abierto: cada contrato se compara con su propia instantánea más cercana al inicio de la ventana. |
| method.change_h24 | string | — | Definición en texto plano de la variación de 24h del interés abierto: emparejamiento dentro del mismo exchange frente a la instantánea horaria más cercana a hace 24 horas, excluidas las referencias congeladas. |
| method.oi_side | string | — | `double`, `single` o `unstated`: indica si el exchange informa ambos lados del interés abierto en una sola cifra. |
Generada 2026-11-11 23:00 UTC a partir de 4 respuestas reales.
Respuesta de ejemplo
/api/sd/oi?coin=BTC · Respuesta real capturada 2026-11-13 03:57:39 UTC. Los arrays y mapas largos se abrevian para su visualización: change tenía 3 elementos; contracts tenía 95 elementos; by_exchange tenía 22 elementos; coverage.included_exchanges tenía 22 elementos.
- "success"true
- "coin""BTC"
- "now"1794542259643
- "total_usd"49005713133.94
- "n_exchanges"22
- "n_contracts"95
- "asof"1794542258000
- "total_usd_single_adjusted"43766392634.71
- "double_sided"
- "exchanges"
- "oi_usd"10478640998.46
- "by_kind"
- "linear_usd"44169662162.94
- "inverse_usd"4836050971
- "by_margin"
- "other"8250815931.650002
- "usdt"30919742583.03
- "usdc"4999103648.259998
- "coin"4836050971
- "by_contract_type"
- "perpetual_usd"40820877874.21
- "delivery_usd"8184835259.73
- "change"
- "h1"
- "h4"
- "by_exchange"
- "contracts"
- "coverage"
- "included_exchanges"
- "pending"
- "pending_usd"null
- "stale_excluded"
- "unavailable"
- "method"
- "total""SUM(oi_usd) over fresh contracts (non-CME updated within 3h; CME within 120h)"
- "usd""linear: contracts × contract_size × mark/last price; inverse: contracts × contract_face_value_usd (or coin amount × price)"
- "change_h1_h4""same-contract pairing vs own snapshot nearest to now−W (15-minute snapshots, hourly fallback)"
- "change_h24""same-exchange pairing vs hourly snapshot nearest to now−24h (site-wide convention); contracts whose baseline snapshot is a frozen carry-over (identical to the c…"
- "oi_side""as disclosed by each exchange; double = exchange API itself reports open interest as twice the single-sided figure"
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ámetros | HTTP | Latencia | Resultado |
|---|---|---|---|
| coin=ETH | 200 | 24 ms | Correcto |
| coin=SOL | 200 | 21 ms | Correcto |
| coin=ARKM | 200 | 20 ms | Correcto |
| — | 400 | 1 ms | Correcto devuelve el error esperado |
Comprobado 2026-11-13 03:57:39 UTC
Detalles
- Autenticación
- Ninguna. Endpoint público.
- Límite de solicitudes
- 1200 solicitudes por minuto por IP
- Caché del servidor
- 20s
- Microcaché de borde
- 10s
- Frecuencia de actualización
- cada 60 s en la mayoría de las plataformas (se escribe junto con los tickers; tareas dedicadas de 60 s para las 50 primeras de binance y para okx); barridos completos de binance / bingx / aster / gate / htx cada 5 min; contratos con margen en moneda / USDC / con vencimiento cada 120 s (se promueven a la tabla compartida cada 5 min); cme una vez por día de negociación (04:10 UTC); instantáneas de 15 minutos a nivel de contrato para las variaciones de ventana corta
- Ventana
- última instantánea (filas de las últimas 3 h, cme 120 h; indicador is_stale a partir de 15 min, cme 36 h); variaciones en 1 h / 4 h (instantáneas de 15 minutos) y 24 h (archivo horario)
- Fuentes de datos
- Interés abierto consultado por los recolectores internos en las API REST públicas de 22 plataformas de derivados (p. ej. binance, okx, bybit, gate, bitget, hyperliquid), más el informe diario oficial de volumen e interés abierto de CME.
- Cobertura de exchanges
- 23 fuentes con filas frescas (22 plataformas + cme); todos los tipos de contrato (lineales en USDT / USDC / USD, inversos con margen en moneda, perpetuos y con vencimiento); bybit y gate informan el interés abierto por ambos lados, según declara la propia plataforma; se excluyen las filas con más de 3 h de antigüedad (cme: 120 h); el bloque coverage lista las plataformas incluidas, pendientes (a la espera de 25 h de historial propio), excluidas por desactualizadas y no disponibles
- Unidades
- open interest in USD notional; total_usd_single_adjusted halves venues that report double-sided OI; changes in percent
- Método
- total_usd = SUM(oi_usd) over fresh contracts (multiplier contracts folded); breakdowns by kind / margin / contract type; h1 / h4 change by same-contract pairing against 15-minute snapshots (+/- 10 min, fallback hourly archive) and only when >= 50% of OI is matched; h24 change by same-exchange pairing against the hourly bucket nearest now - 24 h
- 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
Disponibilidad, últimos 30 días
100% de 411 comprobaciones superadas
- Devuelto pero no documentado: coverage.stale_excluded[], coverage.stale_excluded[].exchange, coverage.stale_excluded[].symbol, coverage.stale_excluded[].oi_usd, coverage.stale_excluded[].age_s, coverage.stale_excluded[].reason
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ódigo | HTTP | Significado | Qué hacer |
|---|---|---|---|
| INVALID_PARAM | 400 | Falta 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. |
| UNAUTHORIZED | 401 | Se 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. |
| FORBIDDEN | 403 | La ruta no forma parte de la API pública (interna o solo para cuentas). | No reintente. |
| NOT_FOUND | 404 | Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe. | No reintente; compruebe la ruta y los identificadores en el catálogo. |
| RATE_LIMITED | 429 | Má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. |
| INTERNAL | 500 | Error 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_FAILED | 503 | La 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. |
| UNAVAILABLE | 501 / 503 | El 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_FAILED | 200 | Algunos 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
/api/sd/oiDisponiblestring — Coin symbol; 400 when missing. Alias: `base`.
https://www.coinboss.com/api/sd/oi?coin=BTCMás en esta categoría
- Interés abierto de una moneda /api/sd/oi
- Ranking de interés abierto por moneda entre exchanges /api/market/open-interest
- Series del gráfico apilado de OI de una moneda /api/oi/chart
- Historial de interés abierto agregado de una moneda /api/oi/history
- Matriz de interés abierto /api/oi/matrix
- Resumen de interés abierto de una moneda /api/oi/summary