/api/sd/oi
GETDisponible

Positions ouvertes d'une crypto

Couche de données interne : positions ouvertes d'une crypto (par plateforme / contrat, avec indicateurs de qualité)

GET/api/sd/oi

Requête

Paramètres de requête

NomTypeRequisPar défautValeurs autoriséesDescription
coinstringRequis——Symbole de la crypto ; 400 s'il est absent. Alias : `base`. Exemple: BTC

Exemple de requête

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

Champs de la réponse

Le tableau des champs est généré à partir de réponses réelles : il liste donc exactement ce que renvoie l'endpoint. Les chemins utilisent a[] pour les éléments d'un tableau et {*} pour les objets indexés par un nom dynamique, comme une crypto ou une plateforme.

ChampTypeUnitéDescription
successboolean—true lorsque la requête a abouti. En cas d'échec, le corps est `{ success: false, code, error, request_id }`.
coinstring—Symbole de la crypto, en majuscules (par exemple BTC).
nownumbermsHeure du serveur au moment où la réponse a été construite.
total_usdnumberUSDPositions ouvertes sur l'ensemble des plateformes et des contrats inclus, telles que chaque plateforme les déclare (notionnel USD).
n_exchangesnumber—Nombre de plateformes dans le total.
n_contractsnumber—Nombre de contrats dans le total.
asofnumbermsHeure de mise à jour la plus récente parmi les lignes incluses.
total_usd_single_adjustednumberUSD`total_usd` après division par deux des chiffres des plateformes qui déclarent les deux faces (`double_sided.exchanges`), afin que chaque plateforme compte une seule face.
double_sidedobject—Plateformes connues pour publier les positions ouvertes long + short en un seul chiffre.
double_sided.exchangesarray—Plateformes.
double_sided.exchanges[]string—Plateformes.
double_sided.oi_usdnumberUSDPositions ouvertes déclarées par ces plateformes avant division par deux.
by_kindobject—Répartition linéaire / inverse.
by_kind.linear_usdnumberUSDPositions ouvertes des contrats linéaires (marge et règlement en stablecoin ou en USD).
by_kind.inverse_usdnumberUSDPositions ouvertes des contrats inverses (à marge en crypto), converties en USD au prix du contrat.
by_marginobject—Répartition par devise de marge.
by_margin.othernumberUSDAutres devises de marge (par exemple les plateformes à règlement en USD telles que le CME).
by_margin.usdtnumberUSDContrats à marge USDT.
by_margin.usdcnumberUSDContrats à marge USDC. peut être absent
by_margin.coinnumberUSDContrats à marge en crypto. peut être absent
by_contract_typeobject—Répartition perpétuel / à échéance.
by_contract_type.perpetual_usdnumberUSDContrats perpétuels.
by_contract_type.delivery_usdnumberUSDFutures à échéance (contrats à échéance).
changeobject—Variation des positions ouvertes sur 1h / 4h / 24h, calculée sur le même ensemble de contrats aux deux extrémités. clés dynamiques: h1,h4,h24
change.{*}object—Variation sur la période indiquée.
change.{*}.pctnumber%Variation en pourcentage entre `prev` et `cur`.
change.{*}.curnumberUSDSomme actuelle sur les contrats appariés.
change.{*}.prevnumberUSDSomme sur les mêmes contrats à `prev_ts`.
change.{*}.n_matchednumber—Contrats (ou plateformes) présents aux deux extrémités.
change.{*}.n_totalnumber—Contrats (ou plateformes) présents actuellement.
change.{*}.matched_share_pctnumber%Part des positions ouvertes actuelles couverte par l'ensemble apparié. peut être absent
change.{*}.prev_tsnumbermsHeure de l'instantané de référence.
change.{*}.span_minnumberminÉcart réel entre la référence et maintenant.
change.{*}.basisstring—Série d'instantanés dont provient la référence.
change.{*}.frozen_excludedobject—Lignes exclues de la variation parce que leur valeur n'a pas bougé entre les deux instantanés (source non mise à jour). peut être absent
change.{*}.frozen_excluded.n_baselinenumber—Éléments dans l'instantané de référence. peut être absent
change.{*}.frozen_excluded.n_currentnumber—Éléments dans l'instantané actuel. peut être absent
change.{*}.frozen_excluded.cur_usdnumberUSDValeur actuelle. peut être absent
change.{*}.frozen_excluded.prev_usdnumberUSDValeur de référence. peut être absent
by_exchangearray—Détail par plateforme.
by_exchange[]object—Détail par plateforme.
by_exchange[].exchangestring—Identifiant de la plateforme, en minuscules (par exemple `binance`).
by_exchange[].oi_usdnumberUSDPositions ouvertes en notionnel USD.
by_exchange[].share_pctnumber%Part du total.
by_exchange[].n_contractsnumber—Nombre de contrats.
by_exchange[].linear_usdnumberUSDContrats linéaires.
by_exchange[].inverse_usdnumberUSDContrats inverses (à marge en crypto).
by_exchange[].perpetual_usdnumberUSDContrats perpétuels.
by_exchange[].delivery_usdnumberUSDContrats à échéance.
by_exchange[].oi_sidestring—`double` lorsque la plateforme déclare les deux faces en un seul chiffre, `single` lorsqu'elle déclare une seule face, `unstated` lorsque la plateforme ne le documente pas.
by_exchange[].oi_usd_single_adjustednumber|nullUSDÉquivalent simple face ; null lorsque la convention de face n'est pas précisée.
by_exchange[].updated_atnumbermsDate de dernière mise à jour de cette ligne.
by_exchange[].age_snumbersSecondes écoulées depuis la dernière mise à jour de cette ligne.
by_exchange[].is_staleboolean—true lorsque la ligne est plus ancienne que la fenêtre de fraîcheur ; les lignes périmées ne sont pas utilisées dans les totaux.
contractsarray—Lignes par contrat.
contracts[]object—Lignes par contrat.
contracts[].exchangestring—Identifiant de la plateforme, en minuscules (par exemple `binance`).
contracts[].symbolstring—Symbole de l'instrument tel que normalisé par CoinBoss (par exemple BTCUSDT).
contracts[].native_symbolstring|null—Symbole exactement tel que la plateforme l'écrit.
contracts[].oi_usdnumberUSDPositions ouvertes en notionnel USD.
contracts[].oi_sidestring—`double`, `single` ou `unstated` : indique si la plateforme déclare les deux faces des positions ouvertes en un seul chiffre.
contracts[].oi_usd_singlenumber|nullUSDÉquivalent simple face de `oi_usd` ; null lorsque la convention de face n'est pas précisée.
contracts[].marginstring—Classe de devise de marge : `usdt`, `usdc`, `coin` ou `other`.
contracts[].kindstring—`linear` ou `inverse`.
contracts[].contract_typestring—`perpetual` ou `delivery`.
contracts[].expiry_tsnumber|nullmsÉchéance d'un contrat à échéance ; null pour les perpétuels ou lorsqu'elle n'est pas publiée.
contracts[].margin_basisstring—Manière dont la classe de marge a été déterminée (d'après la spécification du contrat ou la valeur par défaut de la plateforme).
contracts[].updated_atnumbermsDate de dernière mise à jour de cette ligne.
contracts[].age_snumbersSecondes écoulées depuis la dernière mise à jour de cette ligne.
contracts[].is_staleboolean—true lorsque la ligne est plus ancienne que la fenêtre de fraîcheur ; les lignes périmées ne sont pas utilisées dans les totaux.
contracts[].collectorstring—Collecteur interne ayant produit la ligne.
contracts[].included_sincenumber|nullmsDate d'entrée de ce contrat dans les totaux ; null pour l'ensemble de base.
coverageobject—Ce qui est inclus ou non dans les chiffres ci-dessus. Comparez ces éléments avant de comparer les totaux avec une autre source.
coverage.included_exchangesarray—Plateformes dont les données sont incluses dans les totaux.
coverage.included_exchanges[]string—Plateformes incluses dans les totaux.
coverage.pendingarray—Contrats collectés mais pas encore inclus dans les totaux (par exemple tant que leur propre historique de 25 heures est en cours de constitution). Ils sont listés avec leur valeur actuelle afin que l'écart soit visible.
coverage.pending[]object—Éléments collectés mais pas encore inclus.
coverage.pending[].exchangestring—Identifiant de la plateforme, en minuscules (par exemple `binance`).
coverage.pending[].symbolstring—Symbole de l'instrument tel que normalisé par CoinBoss (par exemple BTCUSDT).
coverage.pending[].native_symbolstring—Symbole exactement tel que la plateforme l'écrit.
coverage.pending[].marginstring—Classe de devise de marge.
coverage.pending[].contract_typestring—`perpetual` ou `delivery`.
coverage.pending[].oi_usdnumberUSDPositions ouvertes en notionnel USD.
coverage.pending[].age_snumbersSecondes écoulées depuis la dernière mise à jour de cette ligne.
coverage.pending[].reasonstring—Code de raison.
coverage.pending[].detailstring|null—Détail.
coverage.pending_usdnumber|nullUSDSomme des contrats en attente, non comprise dans `total_usd`.
coverage.stale_excludedarray—Lignes exclues parce que leur dernière mise à jour est hors de la fenêtre exploitable. vide dans les échantillons ayant servi à générer ce tableau
coverage.unavailablearray—Paires plateforme / contrat qui n'ont pas pu être incluses, chacune avec sa raison. Elles ne sont jamais comptées comme 0.
coverage.unavailable[]object—Éléments pour lesquels aucune donnée n'est disponible, avec les raisons. Jamais déclarés comme 0.
coverage.unavailable[].exchangestring—Identifiant de la plateforme, en minuscules (par exemple `binance`).
coverage.unavailable[].symbolstring—Symbole de l'instrument tel que normalisé par CoinBoss (par exemple BTCUSDT).
coverage.unavailable[].native_symbolstring—Symbole exactement tel que la plateforme l'écrit.
coverage.unavailable[].marginstring—Classe de devise de marge.
coverage.unavailable[].contract_typestring—`perpetual` ou `delivery`.
coverage.unavailable[].reasonstring—Code de raison.
coverage.unavailable[].detailstring—Détail.
methodobject—Énoncé en texte brut des formules utilisées pour cette réponse.
method.totalstring—Total.
method.usdstringUSDValeur.
method.change_h1_h4string—Définition en texte brut des variations des positions ouvertes sur 1h et 4h : chaque contrat est comparé à son propre instantané le plus proche du début de la fenêtre.
method.change_h24string—Définition en texte brut de la variation des positions ouvertes sur 24h : appariement au sein de la même plateforme avec l'instantané horaire le plus proche d'il y a 24 heures, références figées exclues.
method.oi_sidestring—`double`, `single` ou `unstated` : indique si la plateforme déclare les deux faces des positions ouvertes en un seul chiffre.

Généré à partir de 4 réponses réelles (2026-11-11 23:00 UTC).

Exemple de réponse

/api/sd/oi?coin=BTC · Réponse réelle (capture : 2026-11-13 03:57:39 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : change comptait 3 éléments; contracts comptait 95 éléments; by_exchange comptait 22 éléments; coverage.included_exchanges comptait 22 éléments.

  • {
    • "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": [ … 2 ],
      • "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": { … 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"
      }
    }

Échantillons vérifiés

Outre l'exemple ci-dessus, la sonde appelle cet endpoint avec les paramètres suivants et vérifie le schéma à chaque fois.

ParamètresHTTPLatenceRésultat
coin=ETH20024 msRéussi
coin=SOL20021 msRéussi
coin=ARKM20020 msRéussi
—4001 msRéussi renvoie l'erreur attendue

Vérifié : 2026-11-13 03:57:39 UTC

Détails

Authentification
Aucune. Endpoint public.
Limite de requêtes
1200 requêtes par minute et par IP
Cache serveur
20s
Micro-cache en périphérie
10s
Fréquence de mise à jour
toutes les 60 s pour la plupart des plateformes (écriture en même temps que les tickers ; tâches dédiées de 60 s pour le top 50 de binance et pour okx) ; balayages complets binance / bingx / aster / gate / htx toutes les 5 min ; contrats à marge en crypto / USDC / à échéance toutes les 120 s (promus dans la table partagée toutes les 5 min) ; cme une fois par jour de bourse (04:10 UTC) ; instantanés par contrat toutes les 15 minutes pour les variations sur fenêtres courtes
Fenêtre
dernier instantané (lignes de moins de 3 h, cme 120 h ; indicateur is_stale après 15 min, cme 36 h) ; variations sur 1 h / 4 h (instantanés toutes les 15 minutes) et 24 h (archive horaire)
Sources de données
Positions ouvertes interrogées par des collecteurs internes auprès des API REST publiques de 22 plateformes de dérivés (p. ex. binance, okx, bybit, gate, bitget, hyperliquid), complétées par le rapport quotidien officiel de volume et de positions ouvertes du CME.
Couverture des plateformes
23 sources avec des lignes à jour (22 plateformes + cme) ; tous les types de contrats (linéaires USDT / USDC / USD, inverses à marge en crypto, perpétuels et à échéance) ; bybit et gate déclarent des positions ouvertes double face, comme l'indique la plateforme ; les lignes de plus de 3 h (cme : 120 h) sont exclues ; le bloc coverage liste les plateformes incluses, en attente (dans l'attente de 25 h d'historique propre), exclues car périmées et indisponibles
Unités
open interest in USD notional; total_usd_single_adjusted halves venues that report double-sided OI; changes in percent
Méthode
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
Horodatages
Millisecondes depuis l'epoch Unix (UTC), sauf indication contraire dans la description du champ
Format de réponse
json
Stabilité
Stable
Disponible depuis
2026-11-11

Statut en direct

DisponibleVérifié : 2026-11-13 03:57:39 UTCHTTP 20032 msSchéma conformePoint de données le plus récent : il y a 2s

Disponibilité, 30 derniers jours

100 % des 411 contrôles réussis

Dérive de schéma détectée par la dernière sonde
  • Renvoyé mais non documenté: 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

Erreurs

Les appels en échec ont la même structure sur tous les endpoints. La liste complète figure sur la page des erreurs. Erreurs et limites de requêtes →

CodeHTTPSignificationQue faire
INVALID_PARAM400Un paramètre requis est manquant ou une valeur n'est pas acceptée. `param` indique le nom du paramètre lorsqu'il est connu.Ne réessayez pas à l'identique ; corrigez la requête.
UNAUTHORIZED401L'en-tête `CB-API-KEY` a été envoyé, mais la clé est inconnue ou révoquée. Les données publiques ne nécessitent aucune clé — supprimez l'en-tête ou utilisez une clé valide.Ne réessayez pas à l'identique.
FORBIDDEN403La route ne fait pas partie de l'API publique (interne ou réservée aux comptes).Ne réessayez pas.
NOT_FOUND404Route inconnue, ou la crypto / la plateforme / le fonds demandé n'existe pas.Ne réessayez pas ; vérifiez le chemin et les identifiants dans le catalogue.
RATE_LIMITED429Plus de requêtes que la limite par minute. `Retry-After` indique le nombre de secondes à attendre.Attendez la durée indiquée par `Retry-After`, puis réessayez avec backoff.
INTERNAL500Erreur serveur inattendue. Le message est volontairement générique ; citez `request_id` lorsque vous la signalez.Réessayez une fois après quelques secondes ; si l'erreur persiste, signalez-la avec l'ID de requête.
UPSTREAM_FAILED503La source de données derrière cet endpoint n'a pas répondu à temps. Aucun chiffre périmé ni de substitution n'est renvoyé à sa place.Réessayez avec backoff ; consultez la page de statut.
UNAVAILABLE501 / 503Le jeu de données n'est temporairement pas prêt (préchauffage du cache) ou l'endpoint n'a pas encore de source publique licite.Réessayez plus tard ; le catalogue signale les endpoints indisponibles par conception.
REQUEST_FAILED200Certains endpoints plus anciens répondent HTTP 200 avec `success: false`. Vérifiez toujours `success`, et pas seulement le statut HTTP.Dépend du message ; à traiter comme une requête en échec.

Essayer

GET/api/sd/oiDisponible
Paramètres

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

URL de la requêtehttps://www.coinboss.com/api/sd/oi?coin=BTC
Choisissez un endpoint et cliquez sur « Envoyer la requête ». La réponse, les en-têtes et le temps de réponse s'afficheront ici.