Matrice de qualité des données
Matrice plateforme × famille de données avec FRESH / PARTIAL / STALE / BROKEN / UNAVAILABLE, horodatages de la source et de la récupération, retard, couverture et raison de chaque lacune.
/api/meta/qualityRequête
Paramètres de requête
| Nom | Type | Requis | Par défaut | Valeurs autorisées | Description |
|---|---|---|---|---|---|
| exchange | string | Optionnel | — | — | Renvoie uniquement cette plateforme (identifiant en minuscules, par exemple `binance`). |
| family | string | Optionnel | — | — | Renvoie uniquement cette famille de données (par exemple `oi`, `funding`, `liquidation`). |
Exemple de requête
curl -s "https://www.coinboss.com/api/meta/quality"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 }`. |
| schema | string | — | Identifiant du schéma de cette réponse (`coinboss.meta.quality/1`). |
| now | number | ms | Heure du serveur au moment où la réponse a été construite. |
| families | array | — | Familles de données évaluées par plateforme (tickers, positions ouvertes, financement, liquidations, carnets d'ordres, options et autres). |
| families[] | object | — | Une famille : `id`, `scope`, `title`, `what`, `table`, `cadence` et `fresh_within_s`. |
| families[].id | string | — | Identifiant. |
| families[].scope | string | — | `exchange` pour les familles évaluées par plateforme dans `matrix`. |
| families[].title | string | — | Titre d'affichage de la famille. |
| families[].what | string | — | Brève description des données couvertes par la famille. |
| families[].table | string | — | Nom du jeu de données interne à partir duquel la famille est évaluée ; fourni à titre indicatif uniquement. |
| families[].cadence | string | — | Calendrier de collecte de la famille, en texte brut ; null lorsqu'il n'est pas précisé. |
| families[].fresh_within_s | number | s | Fenêtre de fraîcheur : les données plus récentes que ce seuil sont considérées comme à jour. |
| exchanges | array | — | Plateformes. |
| exchanges[] | string | — | Plateformes. |
| matrix | object | — | Matrice indexée par ligne et par colonne. clés dynamiques: aster,backpack,binance,bingx,bitfinex,bitget |
| matrix.{*} | object | — | Matrice indexée par ligne et par colonne. clés dynamiques: ticker,oi,funding,funding_settle,liquidation,ls |
| matrix.{*}.{*} | object | — | Matrice indexée par ligne et par colonne. |
| matrix.{*}.{*}.status | string | — | Statut. |
| matrix.{*}.{*}.lag_s | number|null | s | Heure actuelle moins l'horodatage de la donnée stockée la plus récente pour cette plateforme (première clé) et cette famille (seconde clé) ; null lorsque la famille n'y est pas disponible. |
| matrix.{*}.{*}.source_at | number|null | ms | Horodatage. |
| matrix.{*}.{*}.fetched_at | number|null | ms | Moment où CoinBoss a récupéré les données auprès de la source. |
| matrix.{*}.{*}.fresh_within_s | number|null | s | Fenêtre de fraîcheur : les données plus récentes que ce seuil sont considérées comme à jour. |
| matrix.{*}.{*}.coverage | object|null | — | Ce qui est inclus et ce qui manque. |
| matrix.{*}.{*}.coverage.rows | number | — | Lignes du résultat. peut être absent |
| matrix.{*}.{*}.coverage.rows_fresh | number | — | Lignes mises à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.{*}.coverage.rows_usable | number | — | Lignes situées dans la fenêtre exploitable. peut être absent |
| matrix.{*}.{*}.coverage.rows_orphan | number | — | Lignes dont le contrat n'est plus coté. peut être absent |
| matrix.{*}.{*}.coverage.rows_invalid | number | — | Lignes rejetées par la validation. peut être absent |
| matrix.{*}.{*}.reason | string|null | — | Code de raison. |
| matrix.{*}.{*}.coverage.rows_no_liveness | number | count | Lignes de financement sur des contrats sans signe de trading actif (délistés ou sans volume) ; exclues du décompte de fraîcheur. peut être absent |
| matrix.{*}.{*}.coverage.rows_unknown_interval | number | count | Lignes de financement récemment mises à jour dont l'intervalle de règlement est inconnu et qui ne peuvent donc pas être normalisées sur 8 heures. peut être absent |
| matrix.{*}.{*}.coverage.symbols | number | — | Symboles. peut être absent |
| matrix.{*}.{*}.coverage.events_1h | number | count | Ordres de liquidation stockés en provenance de la plateforme au cours de la dernière heure ; les tailles d'ordre minimales diffèrent selon les plateformes. peut être absent |
| matrix.{*}.{*}.coverage.events_24h | number | count | Ordres de liquidation stockés en provenance de la plateforme au cours des dernières 24 heures ; les tailles d'ordre minimales diffèrent selon les plateformes. peut être absent |
| matrix.{*}.{*}.via | string | — | Chemin de collecte. peut être absent |
| matrix.{*}.{*}.coverage.books | number | count | Nombre de carnets d'ordres suivis. peut être absent |
| matrix.{*}.{*}.coverage.books_fresh | number | count | Nombre de carnets d'ordres mis à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.{*}.coverage.books_reaching_2pct | number | count | Nombre de carnets d'ordres assez profonds pour couvrir ±2 % autour du prix médian. peut être absent |
| matrix.{*}.{*}.coverage.contracts | number | — | Lignes par contrat. peut être absent |
| matrix.{*}.{*}.coverage.contracts_fresh | number | count | Nombre de contrats mis à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.{*}.coverage.with_mark_and_index | number | count | Nombre de contrats disposant à la fois d'un prix mark et d'un prix d'indice. peut être absent |
| matrix.{*}.{*}.coverage.delivery_contracts | number | count | Nombre de contrats à échéance (datés). peut être absent |
| matrix.{*}.{*}.note | string | — | Remarque. peut être absent |
| matrix.{*}.{*}.coverage.coins | number | — | Cryptos. peut être absent |
| matrix.{*}.{*}.coverage.rows_without_oi | number | count | Lignes de contrats à marge crypto, à marge USDC ou à échéance ne portant aucune valeur de positions ouvertes en USD. peut être absent |
| matrix.{*}.{*}.coverage.with_mark_iv | number | count | Nombre de contrats d'options disposant d'une volatilité implicite mark. peut être absent |
| matrix.{*}.{*}.coverage.with_greeks | number | count | Nombre de contrats d'options disposant de grecques. peut être absent |
| datasets | array | — | Contrôles qualité des jeux de données qui ne sont pas établis par plateforme (par exemple les données quotidiennes des ETF spot et du CME), chacun avec son statut, son retard, sa couverture et sa raison. |
| datasets[] | object | — | Un jeu de données à l'échelle du marché, non rattaché à une plateforme unique (options, ETF spot, CME, carnets d'ordres, basis). |
| datasets[].family | string | — | Identifiant du jeu de données, par exemple `etf` ou `cme`. |
| datasets[].id | string | — | Identifiant. |
| datasets[].title | string | — | Nom d'affichage du jeu de données. |
| datasets[].source | string | — | Provenance de la valeur. |
| datasets[].endpoint | string | — | Endpoint public qui sert le jeu de données. |
| datasets[].status | string | — | Statut. |
| datasets[].lag_s | number | s | Âge du point de données le plus récent au moment où la réponse a été construite. |
| datasets[].source_at | number | ms | Horodatage. |
| datasets[].fetched_at | number | ms | Moment où CoinBoss a récupéré les données auprès de la source. |
| datasets[].fresh_within_s | number | s | Fenêtre de fraîcheur : les données plus récentes que ce seuil sont considérées comme à jour. |
| datasets[].coverage | object | — | Ce qui est inclus et ce qui manque. |
| datasets[].coverage.funds_total | number | count | Nombre de fonds suivis. peut être absent |
| datasets[].coverage.funds_covered | number | count | Nombre de fonds disposant d'une publication exploitable. peut être absent |
| datasets[].coverage.funds_unavailable | number | count | Nombre de fonds dont l'émetteur ne publie aucune information lisible par machine. peut être absent |
| datasets[].coverage.funds_failing | number | count | Nombre de fonds dont la publication n'a pas pu être lue lors du dernier cycle de collecte. peut être absent |
| datasets[].coverage.as_of | string | — | Date de publication la plus récente parmi les fonds couverts (YYYY-MM-DD). peut être absent |
| datasets[].coverage.as_of_min | string | — | Date de publication la plus ancienne parmi les fonds couverts (YYYY-MM-DD). peut être absent |
| datasets[].reason | string|null | — | Code de raison. |
| datasets[].coverage.contracts | number | — | Lignes par contrat. peut être absent |
| datasets[].coverage.report_date | string | — | Date du rapport Commitments of Traders de la CFTC le plus récent (YYYY-MM-DD). peut être absent |
| datasets[].coverage.products | number | count | Nombre de produits CME couverts. peut être absent |
| datasets[].coverage.trade_date | string | — | Date de négociation du rapport quotidien du CME le plus récent (YYYY-MM-DD). peut être absent |
| summary | object | — | Bloc de synthèse. clés dynamiques: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE |
| summary.{*} | number | — | Bloc de synthèse. |
| by_family | object | — | Nombre de plateformes dans chaque statut, par famille. Les clés extérieures sont les identifiants de famille. clés dynamiques: ticker,oi,funding,funding_settle,liquidation,ls |
| by_family.{*} | object | — | Décomptes par statut d'une famille, indexés par statut (`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`). clés dynamiques: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE |
| by_family.{*}.{*} | number | count | Nombre de plateformes ayant ce statut pour cette famille. |
| alerts | array | — | Alertes de la patrouille qualité des données qui sont ouvertes ou ont été résolues au cours des 7 derniers jours, les alertes ouvertes en premier ; filtrées selon les paramètres de la requête. |
| alerts[] | object | — | Une alerte : `level`, `exchange`, `family`, `code`, `detail`, heures d'ouverture / de dernière observation / de résolution, `hits` et `open`. |
| alerts[].level | string | — | Niveau. |
| alerts[].exchange | string | — | Identifiant de la plateforme, en minuscules (par exemple `binance`). |
| alerts[].family | string | — | Famille de données concernée par l'alerte. |
| alerts[].code | string | — | Code. |
| alerts[].detail | string | — | Détail. |
| alerts[].opened_at | number | ms | Horodatage. |
| alerts[].last_seen_at | number | ms | Horodatage. |
| alerts[].resolved_at | number|null | ms | Horodatage. |
| alerts[].hits | number | count | Nombre de passages de la patrouille (un toutes les 5 minutes) ayant observé la condition depuis l'ouverture de l'alerte. |
| alerts[].open | boolean | — | Prix d'ouverture de la période. |
| monitor | object | — | Santé de la supervision elle-même : heure et âge du dernier passage de la patrouille, `patrol_ok` et âge du heartbeat des collecteurs. |
| monitor.patrol_last_run_at | number | ms | Horodatage. |
| monitor.patrol_age_s | number | s | Secondes écoulées depuis l'événement. |
| monitor.patrol_ok | boolean | — | true lorsque la patrouille est passée au cours des 15 dernières minutes ; lorsqu'il vaut false, la liste `alerts` peut ne pas être à jour, tandis que la matrice reste en direct. |
| monitor.collector_heartbeat_age_s | number | s | Secondes écoulées depuis l'événement. |
| errors | null | — | Dictionnaire associant l'identifiant de famille à un code d'erreur, pour les familles dont le contrôle qualité lui-même a échoué ; null lorsque tous les contrôles ont été exécutés. |
| legend | object | — | Définition en texte brut de chaque statut de cellule. clés dynamiques: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE |
| legend.{*} | string | — | Définition du statut désigné par la clé (`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`). |
| method | object | — | Notes sur la formule / la méthode. |
| method.status | string | — | Statut. |
| method.lag_s | string | — | Énoncé en texte brut de la manière dont `lag_s` est calculé. |
| method.source_at | string | — | Chaîne de date et d'heure. |
| method.fetched_at | string | — | Chaîne de date et d'heure. |
| meta | object | — | Enveloppe de cette réponse : identifiant du schéma, système producteur, horodatages, durée de vie du cache et fraîcheur. |
| meta.schema | string | — | Identifiant du schéma de cette réponse ; même valeur que le `schema` de premier niveau. |
| meta.source | array | — | Provenance de la valeur. |
| meta.source[] | object | — | Provenance de la valeur. |
| meta.source[].system | string | — | Système qui a produit les données ; toujours `coinboss` pour les endpoints du centre développeurs. |
| meta.source[].component | string | — | Composant à l'origine des données : la sonde des endpoints et la patrouille qualité des données. |
| meta.observed_at | null | — | Horodatage. |
| meta.received_at | number | ms | Horodatage. |
| meta.fetched_at | number | ms | Moment où CoinBoss a récupéré les données auprès de la source. |
| meta.window | string | — | Fenêtre. |
| meta.cache_ttl_s | number | s | Durée de vie du cache côté serveur de cette réponse. |
| meta.quality | string | — | `FRESH` en temps normal ; `PARTIAL` lorsque la patrouille qualité n'est pas passée depuis 15 minutes (seule la liste des alertes est concernée). |
| meta.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. |
| meta.fallback | string | — | Note en texte brut sur ce que renvoie cet endpoint lorsque ses données d'entrée sont périmées ou manquantes. |
Généré à partir de 3 réponses réelles (2026-11-11 23:01 UTC).
Exemple de réponse
/api/meta/quality · Réponse réelle (capture : 2026-11-13 03:53:46 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : alerts comptait 11 éléments; legend comptait 5 éléments; matrix comptait 30 éléments; summary comptait 5 éléments; datasets comptait 12 éléments; families comptait 12 éléments.
- "success"true
- "schema""coinboss.meta.quality/1"
- "now"1794542026126
- "families"
- "exchanges"
- "aster"
- "backpack"
- "binance"
- "bingx"
- "bitfinex"
- "bitget"
- "bitstamp"
- "bitunix"
- "matrix"
- "aster"
- "backpack"
- "datasets"
- "summary"
- "FRESH"161
- "PARTIAL"7
- "by_family"
- "ticker"
- "oi"
- "alerts"
- "monitor"
- "patrol_last_run_at"1794541745827
- "patrol_age_s"281
- "patrol_ok"true
- "collector_heartbeat_age_s"36
- "errors"null
- "legend"
- "FRESH""newest stored data point is inside the fresh window for this family"
- "PARTIAL""some contracts / rows are outside the fresh window or miss a required field"
- "method"
- "status""judged from data timestamps in CoinBoss storage every request (30 s in-process cache); a running collector process is not treated as evidence"
- "lag_s""now − newest stored data timestamp for the exchange / family"
- "source_at""newest stored data timestamp (exchange timestamp when the exchange provides one, otherwise collector receive time)"
- "fetched_at""last successful upstream call recorded by the collector health log; null for WebSocket feeds and collectors that do not log per-call health"
- "meta"
- "schema""coinboss.meta.quality/1"
- "source"
- "observed_at"null
- "received_at"1794542026978
- "fetched_at"1794542026126
- "window""latest"
- "cache_ttl_s"20
- "quality""FRESH"
- "is_stale"false
- "fallback""matrix is always computed from storage; when the 5-minute patrol itself stops (monitor.patrol_ok=false) only the alerts list may be outdated"
É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 |
|---|---|---|---|
| exchange=binance | 200 | 1 ms | Réussi FRESH |
| family=funding | 200 | 1 ms | Réussi FRESH |
Vérifié : 2026-11-13 03:29:27 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
- Évalué à la demande à partir de l'horodatage de la donnée la plus récente de chaque paire plateforme × famille.
- Sources de données
- Tables brutes de CoinBoss (horodatages de la dernière ligne), journal de santé des collecteurs. Un processus en cours d'exécution n'est jamais compté comme une donnée saine.
- 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 407 contrôles réussis
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/meta/qualityDisponiblestring — Return only this exchange (lower-case id, for example `binance`).
string — Return only this data family (for example `oi`, `funding`, `liquidation`).
https://www.coinboss.com/api/meta/qualityAutres endpoints de cette catégorie
- Matrice de qualité des données (vue collecteur) /api/sd/quality
- Catalogue de l'API /api/meta/catalog
- Journal des modifications et politique de versionnement /api/meta/changelog
- Documentation d'un endpoint /api/meta/endpoint
- Document OpenAPI /api/meta/openapi
- Matrice de qualité des données /api/meta/quality
- Statut du service /api/meta/status
- Vérifie si un symbole de crypto est connu de la plateforme /api/coin-exists
- Correspondance entre symbole de crypto et chemin d'icône hébergée localement /api/coin-icons
- Synthèse agrégée de la page crypto /api/content/coin
- Synthèse des rubriques du site /api/content/summary
- Table des taux de change fiat /api/currency/fx
- Correspondance entre identifiant de plateforme et chemin d'icône hébergée localement /api/exchange-icons
- Contrôle de vivacité /api/health
- Statistiques de la page Recherche /api/research/stats