Positions ouvertes d'une crypto
Couche de données interne : positions ouvertes d'une crypto (par plateforme / contrat, avec indicateurs de qualité)
/api/sd/oiRequête
Paramètres de requête
| Nom | Type | Requis | Par défaut | Valeurs autorisées | Description |
|---|---|---|---|---|---|
| coin | string | Requis | — | — | 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.
| Champ | Type | Unité | Description |
|---|---|---|---|
| success | boolean | — | true lorsque la requête a abouti. En cas d'échec, le corps est `{ success: false, code, error, request_id }`. |
| coin | string | — | Symbole de la crypto, en majuscules (par exemple BTC). |
| now | number | ms | Heure du serveur au moment où la réponse a été construite. |
| total_usd | number | USD | Positions ouvertes sur l'ensemble des plateformes et des contrats inclus, telles que chaque plateforme les déclare (notionnel USD). |
| n_exchanges | number | — | Nombre de plateformes dans le total. |
| n_contracts | number | — | Nombre de contrats dans le total. |
| asof | number | ms | Heure de mise à jour la plus récente parmi les lignes incluses. |
| total_usd_single_adjusted | number | USD | `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_sided | object | — | Plateformes connues pour publier les positions ouvertes long + short en un seul chiffre. |
| double_sided.exchanges | array | — | Plateformes. |
| double_sided.exchanges[] | string | — | Plateformes. |
| double_sided.oi_usd | number | USD | Positions ouvertes déclarées par ces plateformes avant division par deux. |
| by_kind | object | — | Répartition linéaire / inverse. |
| by_kind.linear_usd | number | USD | Positions ouvertes des contrats linéaires (marge et règlement en stablecoin ou en USD). |
| by_kind.inverse_usd | number | USD | Positions ouvertes des contrats inverses (à marge en crypto), converties en USD au prix du contrat. |
| by_margin | object | — | Répartition par devise de marge. |
| by_margin.other | number | USD | Autres devises de marge (par exemple les plateformes à règlement en USD telles que le CME). |
| by_margin.usdt | number | USD | Contrats à marge USDT. |
| by_margin.usdc | number | USD | Contrats à marge USDC. peut être absent |
| by_margin.coin | number | USD | Contrats à marge en crypto. peut être absent |
| by_contract_type | object | — | Répartition perpétuel / à échéance. |
| by_contract_type.perpetual_usd | number | USD | Contrats perpétuels. |
| by_contract_type.delivery_usd | number | USD | Futures à échéance (contrats à échéance). |
| change | object | — | 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.{*}.pct | number | % | Variation en pourcentage entre `prev` et `cur`. |
| change.{*}.cur | number | USD | Somme actuelle sur les contrats appariés. |
| change.{*}.prev | number | USD | Somme sur les mêmes contrats à `prev_ts`. |
| change.{*}.n_matched | number | — | Contrats (ou plateformes) présents aux deux extrémités. |
| change.{*}.n_total | number | — | Contrats (ou plateformes) présents actuellement. |
| change.{*}.matched_share_pct | number | % | Part des positions ouvertes actuelles couverte par l'ensemble apparié. peut être absent |
| change.{*}.prev_ts | number | ms | Heure de l'instantané de référence. |
| change.{*}.span_min | number | min | Écart réel entre la référence et maintenant. |
| change.{*}.basis | string | — | Série d'instantanés dont provient la référence. |
| change.{*}.frozen_excluded | object | — | 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_baseline | number | — | Éléments dans l'instantané de référence. peut être absent |
| change.{*}.frozen_excluded.n_current | number | — | Éléments dans l'instantané actuel. peut être absent |
| change.{*}.frozen_excluded.cur_usd | number | USD | Valeur actuelle. peut être absent |
| change.{*}.frozen_excluded.prev_usd | number | USD | Valeur de référence. peut être absent |
| by_exchange | array | — | Détail par plateforme. |
| by_exchange[] | object | — | Détail par plateforme. |
| by_exchange[].exchange | string | — | Identifiant de la plateforme, en minuscules (par exemple `binance`). |
| by_exchange[].oi_usd | number | USD | Positions ouvertes en notionnel USD. |
| by_exchange[].share_pct | number | % | Part du total. |
| by_exchange[].n_contracts | number | — | Nombre de contrats. |
| by_exchange[].linear_usd | number | USD | Contrats linéaires. |
| by_exchange[].inverse_usd | number | USD | Contrats inverses (à marge en crypto). |
| by_exchange[].perpetual_usd | number | USD | Contrats perpétuels. |
| by_exchange[].delivery_usd | number | USD | Contrats à échéance. |
| by_exchange[].oi_side | string | — | `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_adjusted | number|null | USD | Équivalent simple face ; null lorsque la convention de face n'est pas précisée. |
| by_exchange[].updated_at | number | ms | Date de dernière mise à jour de cette ligne. |
| by_exchange[].age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. |
| by_exchange[].is_stale | boolean | — | 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 | array | — | Lignes par contrat. |
| contracts[] | object | — | Lignes par contrat. |
| contracts[].exchange | string | — | Identifiant de la plateforme, en minuscules (par exemple `binance`). |
| contracts[].symbol | string | — | Symbole de l'instrument tel que normalisé par CoinBoss (par exemple BTCUSDT). |
| contracts[].native_symbol | string|null | — | Symbole exactement tel que la plateforme l'écrit. |
| contracts[].oi_usd | number | USD | Positions ouvertes en notionnel USD. |
| contracts[].oi_side | string | — | `double`, `single` ou `unstated` : indique si la plateforme déclare les deux faces des positions ouvertes en un seul chiffre. |
| contracts[].oi_usd_single | number|null | USD | Équivalent simple face de `oi_usd` ; null lorsque la convention de face n'est pas précisée. |
| contracts[].margin | string | — | Classe de devise de marge : `usdt`, `usdc`, `coin` ou `other`. |
| contracts[].kind | string | — | `linear` ou `inverse`. |
| contracts[].contract_type | string | — | `perpetual` ou `delivery`. |
| contracts[].expiry_ts | number|null | ms | Échéance d'un contrat à échéance ; null pour les perpétuels ou lorsqu'elle n'est pas publiée. |
| contracts[].margin_basis | string | — | 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_at | number | ms | Date de dernière mise à jour de cette ligne. |
| contracts[].age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. |
| contracts[].is_stale | boolean | — | 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[].collector | string | — | Collecteur interne ayant produit la ligne. |
| contracts[].included_since | number|null | ms | Date d'entrée de ce contrat dans les totaux ; null pour l'ensemble de base. |
| coverage | object | — | 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_exchanges | array | — | Plateformes dont les données sont incluses dans les totaux. |
| coverage.included_exchanges[] | string | — | Plateformes incluses dans les totaux. |
| coverage.pending | array | — | 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[].exchange | string | — | Identifiant de la plateforme, en minuscules (par exemple `binance`). |
| coverage.pending[].symbol | string | — | Symbole de l'instrument tel que normalisé par CoinBoss (par exemple BTCUSDT). |
| coverage.pending[].native_symbol | string | — | Symbole exactement tel que la plateforme l'écrit. |
| coverage.pending[].margin | string | — | Classe de devise de marge. |
| coverage.pending[].contract_type | string | — | `perpetual` ou `delivery`. |
| coverage.pending[].oi_usd | number | USD | Positions ouvertes en notionnel USD. |
| coverage.pending[].age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. |
| coverage.pending[].reason | string | — | Code de raison. |
| coverage.pending[].detail | string|null | — | Détail. |
| coverage.pending_usd | number|null | USD | Somme des contrats en attente, non comprise dans `total_usd`. |
| coverage.stale_excluded | array | — | 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.unavailable | array | — | 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[].exchange | string | — | Identifiant de la plateforme, en minuscules (par exemple `binance`). |
| coverage.unavailable[].symbol | string | — | Symbole de l'instrument tel que normalisé par CoinBoss (par exemple BTCUSDT). |
| coverage.unavailable[].native_symbol | string | — | Symbole exactement tel que la plateforme l'écrit. |
| coverage.unavailable[].margin | string | — | Classe de devise de marge. |
| coverage.unavailable[].contract_type | string | — | `perpetual` ou `delivery`. |
| coverage.unavailable[].reason | string | — | Code de raison. |
| coverage.unavailable[].detail | string | — | Détail. |
| method | object | — | Énoncé en texte brut des formules utilisées pour cette réponse. |
| method.total | string | — | Total. |
| method.usd | string | USD | Valeur. |
| method.change_h1_h4 | string | — | 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_h24 | string | — | 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_side | string | — | `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"
- "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"
É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ètres | HTTP | Latence | Résultat |
|---|---|---|---|
| coin=ETH | 200 | 24 ms | Réussi |
| coin=SOL | 200 | 21 ms | Réussi |
| coin=ARKM | 200 | 20 ms | Réussi |
| — | 400 | 1 ms | Ré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
Disponibilité, 30 derniers jours
100 % des 411 contrôles réussis
- 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 →
| Code | HTTP | Signification | Que faire |
|---|---|---|---|
| INVALID_PARAM | 400 | Un 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. |
| UNAUTHORIZED | 401 | L'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. |
| FORBIDDEN | 403 | La route ne fait pas partie de l'API publique (interne ou réservée aux comptes). | Ne réessayez pas. |
| NOT_FOUND | 404 | Route 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_LIMITED | 429 | Plus 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. |
| INTERNAL | 500 | Erreur 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_FAILED | 503 | La 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. |
| UNAVAILABLE | 501 / 503 | Le 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_FAILED | 200 | Certains 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
/api/sd/oiDisponiblestring — Coin symbol; 400 when missing. Alias: `base`.
https://www.coinboss.com/api/sd/oi?coin=BTCAutres endpoints de cette catégorie
- Positions ouvertes d'une crypto /api/sd/oi
- Classement des positions ouvertes par crypto, toutes plateformes confondues /api/market/open-interest
- Séries du graphique empilé de l'OI d'une crypto /api/oi/chart
- Historique des positions ouvertes agrégées d'une crypto /api/oi/history
- Matrice des positions ouvertes /api/oi/matrix
- Synthèse des positions ouvertes d'une crypto /api/oi/summary