Open interest di una moneta
Livello dati proprio: open interest di una moneta (per exchange / contratto, con flag di qualità)
/api/sd/oiRichiesta
Parametri di query
| Nome | Tipo | Obbligatorio | Predefinito | Valori ammessi | Descrizione |
|---|---|---|---|---|---|
| coin | string | Obbligatorio | — | — | 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.
| Campo | Tipo | Unità | Descrizione |
|---|---|---|---|
| success | boolean | — | true quando la richiesta è riuscita. In caso di errore il corpo è `{ success: false, code, error, request_id }`. |
| coin | string | — | Simbolo della moneta, in maiuscolo (per esempio BTC). |
| now | number | ms | Ora del server al momento della composizione della risposta. |
| total_usd | number | USD | Open interest su tutti gli exchange e i contratti inclusi, così come lo dichiara ciascun exchange (nozionale USD). |
| n_exchanges | number | — | Numero di exchange nel totale. |
| n_contracts | number | — | Numero di contratti nel totale. |
| asof | number | ms | Ora di aggiornamento più recente tra le righe incluse. |
| total_usd_single_adjusted | number | USD | `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_sided | object | — | Exchange che notoriamente pubblicano l'open interest long + short come un unico numero. |
| double_sided.exchanges | array | — | Exchange. |
| double_sided.exchanges[] | string | — | Exchange. |
| double_sided.oi_usd | number | USD | Open interest dichiarato da quegli exchange prima del dimezzamento. |
| by_kind | object | — | Ripartizione tra lineari / inversi. |
| by_kind.linear_usd | number | USD | Open interest dei contratti lineari (con margine e regolamento in una stablecoin o in USD). |
| by_kind.inverse_usd | number | USD | Open interest dei contratti inversi (con margine in coin), convertito in USD al prezzo del contratto. |
| by_margin | object | — | Ripartizione per valuta di margine. |
| by_margin.other | number | USD | Altre valute di margine (per esempio exchange con regolamento in USD come CME). |
| by_margin.usdt | number | USD | Contratti con margine in USDT. |
| by_margin.usdc | number | USD | Contratti con margine in USDC. può essere assente |
| by_margin.coin | number | USD | Contratti con margine in coin. può essere assente |
| by_contract_type | object | — | Ripartizione tra perpetui / a scadenza. |
| by_contract_type.perpetual_usd | number | USD | Contratti perpetui. |
| by_contract_type.delivery_usd | number | USD | Futures a scadenza (contratti a scadenza). |
| change | object | — | 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.{*}.pct | number | % | Variazione percentuale tra `prev` e `cur`. |
| change.{*}.cur | number | USD | Somma attuale sui contratti abbinati. |
| change.{*}.prev | number | USD | Somma sugli stessi contratti a `prev_ts`. |
| change.{*}.n_matched | number | — | Contratti (o exchange) presenti a entrambi gli estremi. |
| change.{*}.n_total | number | — | Contratti (o exchange) presenti ora. |
| change.{*}.matched_share_pct | number | % | Quota dell'open interest attuale coperta dall'insieme abbinato. può essere assente |
| change.{*}.prev_ts | number | ms | Ora dell'istantanea di confronto. |
| change.{*}.span_min | number | min | Distanza effettiva tra l'istantanea di confronto e il momento attuale. |
| change.{*}.basis | string | — | Serie di istantanee da cui proviene il valore di confronto. |
| change.{*}.frozen_excluded | object | — | 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_baseline | number | — | Elementi nell'istantanea di confronto. può essere assente |
| change.{*}.frozen_excluded.n_current | number | — | Elementi nell'istantanea attuale. può essere assente |
| change.{*}.frozen_excluded.cur_usd | number | USD | Valore attuale. può essere assente |
| change.{*}.frozen_excluded.prev_usd | number | USD | Valore di confronto. può essere assente |
| by_exchange | array | — | Ripartizione per exchange. |
| by_exchange[] | object | — | Ripartizione per exchange. |
| by_exchange[].exchange | string | — | ID dell'exchange, in minuscolo (per esempio `binance`). |
| by_exchange[].oi_usd | number | USD | Open interest in nozionale USD. |
| by_exchange[].share_pct | number | % | Quota sul totale. |
| by_exchange[].n_contracts | number | — | Numero di contratti. |
| by_exchange[].linear_usd | number | USD | Contratti lineari. |
| by_exchange[].inverse_usd | number | USD | Contratti inversi (con margine in coin). |
| by_exchange[].perpetual_usd | number | USD | Contratti perpetui. |
| by_exchange[].delivery_usd | number | USD | Contratti a scadenza. |
| by_exchange[].oi_side | string | — | `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_adjusted | number|null | USD | Equivalente unilaterale; null quando la convenzione sul lato non è dichiarata. |
| by_exchange[].updated_at | number | ms | Momento dell'ultimo aggiornamento di questa riga. |
| by_exchange[].age_s | number | s | Secondi trascorsi dall'ultimo aggiornamento di questa riga. |
| by_exchange[].is_stale | boolean | — | true quando la riga è più vecchia della finestra di freschezza; le righe obsolete non vengono usate nei totali. |
| contracts | array | — | Righe per contratto. |
| contracts[] | object | — | Righe per contratto. |
| contracts[].exchange | string | — | ID dell'exchange, in minuscolo (per esempio `binance`). |
| contracts[].symbol | string | — | Simbolo dello strumento normalizzato da CoinBoss (per esempio BTCUSDT). |
| contracts[].native_symbol | string|null | — | Simbolo esattamente come lo scrive l'exchange. |
| contracts[].oi_usd | number | USD | Open interest in nozionale USD. |
| contracts[].oi_side | string | — | `double`, `single` o `unstated`: indica se l'exchange dichiara entrambi i lati dell'open interest in un unico numero. |
| contracts[].oi_usd_single | number|null | USD | Equivalente unilaterale di `oi_usd`; null quando la convenzione sul lato non è dichiarata. |
| contracts[].margin | string | — | Classe della valuta di margine: `usdt`, `usdc`, `coin` o `other`. |
| contracts[].kind | string | — | `linear` o `inverse`. |
| contracts[].contract_type | string | — | `perpetual` o `delivery`. |
| contracts[].expiry_ts | number|null | ms | Scadenza di un contratto a scadenza; null per i perpetui o quando non è pubblicata. |
| contracts[].margin_basis | string | — | Come è stata determinata la classe di margine (dalla specifica del contratto o dal valore predefinito dell'exchange). |
| contracts[].updated_at | number | ms | Momento dell'ultimo aggiornamento di questa riga. |
| contracts[].age_s | number | s | Secondi trascorsi dall'ultimo aggiornamento di questa riga. |
| contracts[].is_stale | boolean | — | true quando la riga è più vecchia della finestra di freschezza; le righe obsolete non vengono usate nei totali. |
| contracts[].collector | string | — | Collector interno che ha prodotto la riga. |
| contracts[].included_since | number|null | ms | Momento in cui questo contratto è entrato nei totali; null per l'insieme di base. |
| coverage | object | — | 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_exchanges | array | — | Exchange i cui dati sono inclusi nei totali. |
| coverage.included_exchanges[] | string | — | Exchange inclusi nei totali. |
| coverage.pending | array | — | 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[].exchange | string | — | ID dell'exchange, in minuscolo (per esempio `binance`). |
| coverage.pending[].symbol | string | — | Simbolo dello strumento normalizzato da CoinBoss (per esempio BTCUSDT). |
| coverage.pending[].native_symbol | string | — | Simbolo esattamente come lo scrive l'exchange. |
| coverage.pending[].margin | string | — | Classe della valuta di margine. |
| coverage.pending[].contract_type | string | — | `perpetual` o `delivery`. |
| coverage.pending[].oi_usd | number | USD | Open interest in nozionale USD. |
| coverage.pending[].age_s | number | s | Secondi trascorsi dall'ultimo aggiornamento di questa riga. |
| coverage.pending[].reason | string | — | Codice del motivo. |
| coverage.pending[].detail | string|null | — | Dettaglio. |
| coverage.pending_usd | number|null | USD | Somma dei contratti in attesa, non compresa in `total_usd`. |
| coverage.stale_excluded | array | — | Righe escluse perché il loro ultimo aggiornamento è fuori dalla finestra di utilizzabilità. vuoto nei campioni usati per generare questa tabella |
| coverage.unavailable | array | — | 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[].exchange | string | — | ID dell'exchange, in minuscolo (per esempio `binance`). |
| coverage.unavailable[].symbol | string | — | Simbolo dello strumento normalizzato da CoinBoss (per esempio BTCUSDT). |
| coverage.unavailable[].native_symbol | string | — | Simbolo esattamente come lo scrive l'exchange. |
| coverage.unavailable[].margin | string | — | Classe della valuta di margine. |
| coverage.unavailable[].contract_type | string | — | `perpetual` o `delivery`. |
| coverage.unavailable[].reason | string | — | Codice del motivo. |
| coverage.unavailable[].detail | string | — | Dettaglio. |
| method | object | — | Enunciato in testo semplice delle formule usate per questa risposta. |
| method.total | string | — | Totale. |
| method.usd | string | USD | Valore. |
| method.change_h1_h4 | string | — | 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_h24 | string | — | 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_side | string | — | `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"
- "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"
- "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"
Campioni verificati
Oltre all'esempio qui sopra, la sonda chiama questo endpoint con i parametri seguenti e ogni volta ne verifica lo schema.
| Parametri | HTTP | Latenza | Risultato |
|---|---|---|---|
| coin=ETH | 200 | 32 ms | Superato |
| coin=SOL | 200 | 33 ms | Superato |
| coin=ARKM | 200 | 21 ms | Superato |
| — | 400 | 1 ms | Superato 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
Disponibilità, ultimi 30 giorni
100% di 404 verifiche superate
- 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 →
| Codice | HTTP | Significato | Che cosa fare |
|---|---|---|---|
| INVALID_PARAM | 400 | Manca un parametro obbligatorio oppure un valore non è accettato. `param` indica il nome del parametro quando è noto. | Non riprovare senza modifiche; correggere la richiesta. |
| UNAUTHORIZED | 401 | L'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. |
| FORBIDDEN | 403 | La route non fa parte dell'API pubblica (interna o riservata agli account). | Non riprovare. |
| NOT_FOUND | 404 | Route sconosciuta, oppure la moneta / l'exchange / il fondo richiesto non esiste. | Non riprovare; verificare il percorso e gli identificatori nel catalogo. |
| RATE_LIMITED | 429 | Più richieste del limite al minuto. `Retry-After` indica i secondi da attendere. | Attendere `Retry-After`, poi riprovare con backoff. |
| INTERNAL | 500 | Errore 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_FAILED | 503 | La 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. |
| UNAVAILABLE | 501 / 503 | Il 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_FAILED | 200 | Alcuni 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
/api/sd/oiDisponibilestring — Coin symbol; 400 when missing. Alias: `base`.
https://www.coinboss.com/api/sd/oi?coin=BTCAltro in questa categoria
- Open interest di una moneta /api/sd/oi
- Classifica dell'open interest per moneta tra gli exchange /api/market/open-interest
- Serie per il grafico impilato dell'OI di una moneta /api/oi/chart
- Storico dell'open interest aggregato di una moneta /api/oi/history
- Matrice dell'open interest /api/oi/matrix
- Sintesi dell'open interest di una moneta /api/oi/summary