/api/sd/oi
GETDisponibile

Open interest di una moneta

Livello dati proprio: open interest di una moneta (per exchange / contratto, con flag di qualità)

GET/api/sd/oi

Richiesta

Parametri di query

NomeTipoObbligatorioPredefinitoValori ammessiDescrizione
coinstringObbligatorio——Simbolo della moneta; 400 se mancante. Alias: `base`. Esempio: BTC

Richiesta di esempio

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

Campi della risposta

La tabella dei campi è generata da risposte reali, quindi elenca esattamente ciò che l'endpoint restituisce. I percorsi usano a[] per gli elementi di un array e {*} per gli oggetti indicizzati da un nome dinamico, come una moneta o un exchange.

CampoTipoUnitàDescrizione
successboolean—true quando la richiesta è riuscita. In caso di errore il corpo è `{ success: false, code, error, request_id }`.
coinstring—Simbolo della moneta, in maiuscolo (per esempio BTC).
nownumbermsOra del server al momento della composizione della risposta.
total_usdnumberUSDOpen interest su tutti gli exchange e i contratti inclusi, così come lo dichiara ciascun exchange (nozionale USD).
n_exchangesnumber—Numero di exchange nel totale.
n_contractsnumber—Numero di contratti nel totale.
asofnumbermsOra di aggiornamento più recente tra le righe incluse.
total_usd_single_adjustednumberUSD`total_usd` con i valori degli exchange che dichiarano entrambi i lati (`double_sided.exchanges`) dimezzati, in modo che ogni exchange conti un solo lato.
double_sidedobject—Exchange che notoriamente pubblicano l'open interest long + short come un unico numero.
double_sided.exchangesarray—Exchange.
double_sided.exchanges[]string—Exchange.
double_sided.oi_usdnumberUSDOpen interest dichiarato da quegli exchange prima del dimezzamento.
by_kindobject—Ripartizione tra lineari / inversi.
by_kind.linear_usdnumberUSDOpen interest dei contratti lineari (con margine e regolamento in una stablecoin o in USD).
by_kind.inverse_usdnumberUSDOpen interest dei contratti inversi (con margine in coin), convertito in USD al prezzo del contratto.
by_marginobject—Ripartizione per valuta di margine.
by_margin.othernumberUSDAltre valute di margine (per esempio exchange con regolamento in USD come CME).
by_margin.usdtnumberUSDContratti con margine in USDT.
by_margin.usdcnumberUSDContratti con margine in USDC. può essere assente
by_margin.coinnumberUSDContratti con margine in coin. può essere assente
by_contract_typeobject—Ripartizione tra perpetui / a scadenza.
by_contract_type.perpetual_usdnumberUSDContratti perpetui.
by_contract_type.delivery_usdnumberUSDFutures a scadenza (contratti a scadenza).
changeobject—Variazione dell'open interest su 1h / 4h / 24h, calcolata sullo stesso insieme di contratti a entrambi gli estremi. chiavi dinamiche: h1,h4,h24
change.{*}object—Variazione nel periodo indicato.
change.{*}.pctnumber%Variazione percentuale tra `prev` e `cur`.
change.{*}.curnumberUSDSomma attuale sui contratti abbinati.
change.{*}.prevnumberUSDSomma sugli stessi contratti a `prev_ts`.
change.{*}.n_matchednumber—Contratti (o exchange) presenti a entrambi gli estremi.
change.{*}.n_totalnumber—Contratti (o exchange) presenti ora.
change.{*}.matched_share_pctnumber%Quota dell'open interest attuale coperta dall'insieme abbinato. può essere assente
change.{*}.prev_tsnumbermsOra dell'istantanea di confronto.
change.{*}.span_minnumberminDistanza effettiva tra l'istantanea di confronto e il momento attuale.
change.{*}.basisstring—Serie di istantanee da cui proviene il valore di confronto.
change.{*}.frozen_excludedobject—Righe escluse dalla variazione perché il loro valore non è variato tra le due istantanee (fonte non in aggiornamento). può essere assente
change.{*}.frozen_excluded.n_baselinenumber—Elementi nell'istantanea di confronto. può essere assente
change.{*}.frozen_excluded.n_currentnumber—Elementi nell'istantanea attuale. può essere assente
change.{*}.frozen_excluded.cur_usdnumberUSDValore attuale. può essere assente
change.{*}.frozen_excluded.prev_usdnumberUSDValore di confronto. può essere assente
by_exchangearray—Ripartizione per exchange.
by_exchange[]object—Ripartizione per exchange.
by_exchange[].exchangestring—ID dell'exchange, in minuscolo (per esempio `binance`).
by_exchange[].oi_usdnumberUSDOpen interest in nozionale USD.
by_exchange[].share_pctnumber%Quota sul totale.
by_exchange[].n_contractsnumber—Numero di contratti.
by_exchange[].linear_usdnumberUSDContratti lineari.
by_exchange[].inverse_usdnumberUSDContratti inversi (con margine in coin).
by_exchange[].perpetual_usdnumberUSDContratti perpetui.
by_exchange[].delivery_usdnumberUSDContratti a scadenza.
by_exchange[].oi_sidestring—`double` quando l'exchange dichiara entrambi i lati in un unico numero, `single` quando ne dichiara uno solo, `unstated` quando l'exchange non lo documenta.
by_exchange[].oi_usd_single_adjustednumber|nullUSDEquivalente unilaterale; null quando la convenzione sul lato non è dichiarata.
by_exchange[].updated_atnumbermsMomento dell'ultimo aggiornamento di questa riga.
by_exchange[].age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga.
by_exchange[].is_staleboolean—true quando la riga è più vecchia della finestra di freschezza; le righe obsolete non vengono usate nei totali.
contractsarray—Righe per contratto.
contracts[]object—Righe per contratto.
contracts[].exchangestring—ID dell'exchange, in minuscolo (per esempio `binance`).
contracts[].symbolstring—Simbolo dello strumento normalizzato da CoinBoss (per esempio BTCUSDT).
contracts[].native_symbolstring|null—Simbolo esattamente come lo scrive l'exchange.
contracts[].oi_usdnumberUSDOpen interest in nozionale USD.
contracts[].oi_sidestring—`double`, `single` o `unstated`: indica se l'exchange dichiara entrambi i lati dell'open interest in un unico numero.
contracts[].oi_usd_singlenumber|nullUSDEquivalente unilaterale di `oi_usd`; null quando la convenzione sul lato non è dichiarata.
contracts[].marginstring—Classe della valuta di margine: `usdt`, `usdc`, `coin` o `other`.
contracts[].kindstring—`linear` o `inverse`.
contracts[].contract_typestring—`perpetual` o `delivery`.
contracts[].expiry_tsnumber|nullmsScadenza di un contratto a scadenza; null per i perpetui o quando non è pubblicata.
contracts[].margin_basisstring—Come è stata determinata la classe di margine (dalla specifica del contratto o dal valore predefinito dell'exchange).
contracts[].updated_atnumbermsMomento dell'ultimo aggiornamento di questa riga.
contracts[].age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga.
contracts[].is_staleboolean—true quando la riga è più vecchia della finestra di freschezza; le righe obsolete non vengono usate nei totali.
contracts[].collectorstring—Collector interno che ha prodotto la riga.
contracts[].included_sincenumber|nullmsMomento in cui questo contratto è entrato nei totali; null per l'insieme di base.
coverageobject—Che cosa è incluso e che cosa non lo è nei numeri qui sopra. Va confrontato prima di confrontare i totali con un'altra fonte.
coverage.included_exchangesarray—Exchange i cui dati sono inclusi nei totali.
coverage.included_exchanges[]string—Exchange inclusi nei totali.
coverage.pendingarray—Contratti raccolti ma non ancora inclusi nei totali (per esempio mentre il loro storico di 25 ore è ancora in costruzione). Sono elencati con il valore attuale, così che la lacuna sia visibile.
coverage.pending[]object—Elementi raccolti ma non ancora inclusi.
coverage.pending[].exchangestring—ID dell'exchange, in minuscolo (per esempio `binance`).
coverage.pending[].symbolstring—Simbolo dello strumento normalizzato da CoinBoss (per esempio BTCUSDT).
coverage.pending[].native_symbolstring—Simbolo esattamente come lo scrive l'exchange.
coverage.pending[].marginstring—Classe della valuta di margine.
coverage.pending[].contract_typestring—`perpetual` o `delivery`.
coverage.pending[].oi_usdnumberUSDOpen interest in nozionale USD.
coverage.pending[].age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga.
coverage.pending[].reasonstring—Codice del motivo.
coverage.pending[].detailstring|null—Dettaglio.
coverage.pending_usdnumber|nullUSDSomma dei contratti in attesa, non compresa in `total_usd`.
coverage.stale_excludedarray—Righe escluse perché il loro ultimo aggiornamento è fuori dalla finestra di utilizzabilità. vuoto nei campioni usati per generare questa tabella
coverage.unavailablearray—Coppie exchange / contratto che non è stato possibile includere, ciascuna con un motivo. Non vengono mai conteggiate come 0.
coverage.unavailable[]object—Elementi per i quali non sono disponibili dati, con i motivi. Mai riportati come 0.
coverage.unavailable[].exchangestring—ID dell'exchange, in minuscolo (per esempio `binance`).
coverage.unavailable[].symbolstring—Simbolo dello strumento normalizzato da CoinBoss (per esempio BTCUSDT).
coverage.unavailable[].native_symbolstring—Simbolo esattamente come lo scrive l'exchange.
coverage.unavailable[].marginstring—Classe della valuta di margine.
coverage.unavailable[].contract_typestring—`perpetual` o `delivery`.
coverage.unavailable[].reasonstring—Codice del motivo.
coverage.unavailable[].detailstring—Dettaglio.
methodobject—Enunciato in testo semplice delle formule usate per questa risposta.
method.totalstring—Totale.
method.usdstringUSDValore.
method.change_h1_h4string—Definizione in testo semplice delle variazioni dell'open interest a 1h e a 4h: ogni contratto è confrontato con la propria istantanea più vicina all'inizio della finestra.
method.change_h24string—Definizione in testo semplice della variazione dell'open interest a 24h: abbinamento sullo stesso exchange con l'istantanea oraria più vicina a 24 ore fa, escluse le basi di confronto congelate.
method.oi_sidestring—`double`, `single` o `unstated`: indica se l'exchange dichiara entrambi i lati dell'open interest in un unico numero.

Generata 2026-11-11 23:00 UTC da 4 risposte reali.

Risposta di esempio

/api/sd/oi?coin=BTC · Risposta reale acquisita 2026-11-13 03:22:34 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: change conteneva 3 elementi; contracts conteneva 95 elementi; by_exchange conteneva 22 elementi; coverage.included_exchanges conteneva 22 elementi.

  • {
    • "success": true,
    • "coin": "BTC",
    • "now": 1794540154217,
    • "total_usd": 49728190378.8,
    • "n_exchanges": 22,
    • "n_contracts": 95,
    • "asof": 1794540120000,
    • "total_usd_single_adjusted": 44367079767.01499,
    • "double_sided": {
      • "exchanges": [ … 2 ],
      • "oi_usd": 10722221223.57
      },
    • "by_kind": {
      • "linear_usd": 44849564384.8,
      • "inverse_usd": 4878625994
      },
    • "by_margin": {
      • "other": 8282762566.289999,
      • "usdt": 31499963069.84,
      • "usdc": 5066838748.670001,
      • "coin": 4878625994
      },
    • "by_contract_type": {
      • "perpetual_usd": 41543494310.08,
      • "delivery_usd": 8184696068.72
      },
    • "change": {
      • "h1": { … 9 },
      • "h4": { … 9 }
      },
    • "by_exchange": [
      • { … 13 },
      • { … 13 }
      ],
    • "contracts": [
      • { … 16 },
      • { … 16 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "pending": [],
      • "pending_usd": null,
      • "stale_excluded": [ … 2 ],
      • "unavailable": [ … 1 ]
      },
    • "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"
      }
    }

Campioni verificati

Oltre all'esempio qui sopra, la sonda chiama questo endpoint con i parametri seguenti e ogni volta ne verifica lo schema.

ParametriHTTPLatenzaRisultato
coin=ETH20032 msSuperato
coin=SOL20033 msSuperato
coin=ARKM20021 msSuperato
—4001 msSuperato restituisce l'errore previsto

Verificato 2026-11-13 02:57:39 UTC

Dettagli

Autenticazione
Nessuna. Endpoint pubblico.
Limite di richieste
1200 richieste al minuto per IP
Cache del server
20s
Micro-cache edge
10s
Frequenza di aggiornamento
ogni 60 s per la maggior parte degli exchange (scritto insieme ai ticker; job dedicati a 60 s per le prime 50 di binance e per okx); scansioni complete di binance / bingx / aster / gate / htx ogni 5 min; contratti con margine in coin / USDC / a scadenza ogni 120 s (promossi nella tabella condivisa ogni 5 min); cme una volta per giornata di negoziazione (04:10 UTC); istantanee a livello di contratto ogni 15 minuti per le variazioni su finestre brevi
Finestra
ultima istantanea (righe entro 3 h, cme 120 h; flag is_stale dopo 15 min, cme 36 h); variazioni su 1 h / 4 h (istantanee ogni 15 minuti) e 24 h (archivio orario)
Fonti dei dati
Open interest interrogato dai collector interni sulle API REST pubbliche di 22 exchange di derivati (ad es. binance, okx, bybit, gate, bitget, hyperliquid), più il report giornaliero ufficiale di CME su volume e open interest.
Copertura degli exchange
23 fonti con righe aggiornate (22 exchange + cme); tutti i tipi di contratto (lineari USDT / USDC / USD, inversi con margine in coin, perpetui e a scadenza); bybit e gate dichiarano un open interest bilaterale, come comunicato dall'exchange; le righe più vecchie di 3 h (cme: 120 h) sono escluse; il blocco coverage elenca gli exchange inclusi, in attesa (finché non dispongono di 25 h di storico proprio), esclusi perché obsoleti e non disponibili
Unità
open interest in USD notional; total_usd_single_adjusted halves venues that report double-sided OI; changes in percent
Metodo
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
Timestamp
Millisecondi dall'epoca Unix (UTC), salvo diversa indicazione nella descrizione del campo
Formato della risposta
json
Stabilità
Stabile
Disponibile dal
2026-11-11

Stato in tempo reale

DisponibileVerificato 2026-11-13 03:22:34 UTCHTTP 20032 msSchema conformeDato più recente risalente a 34s fa

Disponibilità, ultimi 30 giorni

100% di 404 verifiche superate

Deriva dello schema rilevata dall'ultima verifica della sonda
  • Restituito ma non documentato: 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

Errori

Le chiamate non riuscite hanno la stessa struttura su tutti gli endpoint. L'elenco completo è nella pagina degli errori. Errori e limiti di richieste →

CodiceHTTPSignificatoChe cosa fare
INVALID_PARAM400Manca un parametro obbligatorio oppure un valore non è accettato. `param` indica il nome del parametro quando è noto.Non riprovare senza modifiche; correggere la richiesta.
UNAUTHORIZED401L'header `CB-API-KEY` è stato inviato ma la chiave è sconosciuta o revocata. I dati pubblici non richiedono alcuna chiave: rimuovere l'header o usare una chiave valida.Non riprovare senza modifiche.
FORBIDDEN403La route non fa parte dell'API pubblica (interna o riservata agli account).Non riprovare.
NOT_FOUND404Route sconosciuta, oppure la moneta / l'exchange / il fondo richiesto non esiste.Non riprovare; verificare il percorso e gli identificatori nel catalogo.
RATE_LIMITED429Più richieste del limite al minuto. `Retry-After` indica i secondi da attendere.Attendere `Retry-After`, poi riprovare con backoff.
INTERNAL500Errore imprevisto del server. Il messaggio è volutamente generico; citare `request_id` quando lo si segnala.Riprovare una volta dopo qualche secondo; se persiste, segnalarlo con l'ID della richiesta.
UPSTREAM_FAILED503La fonte di dati alla base di questo endpoint non ha risposto in tempo. Al suo posto non vengono restituiti numeri obsoleti o sostitutivi.Riprovare con backoff; controllare la pagina di stato.
UNAVAILABLE501 / 503Il dataset è temporaneamente non pronto (riscaldamento della cache) oppure l'endpoint non ha ancora una fonte pubblica lecita.Riprovare più tardi; il catalogo contrassegna gli endpoint non disponibili per scelta progettuale.
REQUEST_FAILED200Alcuni endpoint meno recenti rispondono HTTP 200 con `success: false`. Controllare sempre `success`, non solo lo stato HTTP.Dipende dal messaggio; trattare come una richiesta non riuscita.

Prova

GET/api/sd/oiDisponibile
Parametri

string — Coin symbol; 400 when missing. Alias: `base`.

URL della richiestahttps://www.coinboss.com/api/sd/oi?coin=BTC
Scegliere un endpoint e premere «Invia richiesta». La risposta, gli header e i tempi compariranno qui.