/api/meta/quality
GETDisponibleFRESH

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.

GET/api/meta/quality

Requête

Paramètres de requête

NomTypeRequisPar défautValeurs autoriséesDescription
exchangestringOptionnel——Renvoie uniquement cette plateforme (identifiant en minuscules, par exemple `binance`).
familystringOptionnel——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.

ChampTypeUnitéDescription
successboolean—true lorsque la requête a abouti. En cas d'échec, le corps est `{ success: false, code, error, request_id }`.
schemastring—Identifiant du schéma de cette réponse (`coinboss.meta.quality/1`).
nownumbermsHeure du serveur au moment où la réponse a été construite.
familiesarray—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[].idstring—Identifiant.
families[].scopestring—`exchange` pour les familles évaluées par plateforme dans `matrix`.
families[].titlestring—Titre d'affichage de la famille.
families[].whatstring—Brève description des données couvertes par la famille.
families[].tablestring—Nom du jeu de données interne à partir duquel la famille est évaluée ; fourni à titre indicatif uniquement.
families[].cadencestring—Calendrier de collecte de la famille, en texte brut ; null lorsqu'il n'est pas précisé.
families[].fresh_within_snumbersFenêtre de fraîcheur : les données plus récentes que ce seuil sont considérées comme à jour.
exchangesarray—Plateformes.
exchanges[]string—Plateformes.
matrixobject—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.{*}.{*}.statusstring—Statut.
matrix.{*}.{*}.lag_snumber|nullsHeure 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_atnumber|nullmsHorodatage.
matrix.{*}.{*}.fetched_atnumber|nullmsMoment où CoinBoss a récupéré les données auprès de la source.
matrix.{*}.{*}.fresh_within_snumber|nullsFenêtre de fraîcheur : les données plus récentes que ce seuil sont considérées comme à jour.
matrix.{*}.{*}.coverageobject|null—Ce qui est inclus et ce qui manque.
matrix.{*}.{*}.coverage.rowsnumber—Lignes du résultat. peut être absent
matrix.{*}.{*}.coverage.rows_freshnumber—Lignes mises à jour dans la fenêtre de fraîcheur. peut être absent
matrix.{*}.{*}.coverage.rows_usablenumber—Lignes situées dans la fenêtre exploitable. peut être absent
matrix.{*}.{*}.coverage.rows_orphannumber—Lignes dont le contrat n'est plus coté. peut être absent
matrix.{*}.{*}.coverage.rows_invalidnumber—Lignes rejetées par la validation. peut être absent
matrix.{*}.{*}.reasonstring|null—Code de raison.
matrix.{*}.{*}.coverage.rows_no_livenessnumbercountLignes 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_intervalnumbercountLignes 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.symbolsnumber—Symboles. peut être absent
matrix.{*}.{*}.coverage.events_1hnumbercountOrdres 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_24hnumbercountOrdres 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.{*}.{*}.viastring—Chemin de collecte. peut être absent
matrix.{*}.{*}.coverage.booksnumbercountNombre de carnets d'ordres suivis. peut être absent
matrix.{*}.{*}.coverage.books_freshnumbercountNombre de carnets d'ordres mis à jour dans la fenêtre de fraîcheur. peut être absent
matrix.{*}.{*}.coverage.books_reaching_2pctnumbercountNombre de carnets d'ordres assez profonds pour couvrir ±2 % autour du prix médian. peut être absent
matrix.{*}.{*}.coverage.contractsnumber—Lignes par contrat. peut être absent
matrix.{*}.{*}.coverage.contracts_freshnumbercountNombre de contrats mis à jour dans la fenêtre de fraîcheur. peut être absent
matrix.{*}.{*}.coverage.with_mark_and_indexnumbercountNombre de contrats disposant à la fois d'un prix mark et d'un prix d'indice. peut être absent
matrix.{*}.{*}.coverage.delivery_contractsnumbercountNombre de contrats à échéance (datés). peut être absent
matrix.{*}.{*}.notestring—Remarque. peut être absent
matrix.{*}.{*}.coverage.coinsnumber—Cryptos. peut être absent
matrix.{*}.{*}.coverage.rows_without_oinumbercountLignes 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_ivnumbercountNombre de contrats d'options disposant d'une volatilité implicite mark. peut être absent
matrix.{*}.{*}.coverage.with_greeksnumbercountNombre de contrats d'options disposant de grecques. peut être absent
datasetsarray—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[].familystring—Identifiant du jeu de données, par exemple `etf` ou `cme`.
datasets[].idstring—Identifiant.
datasets[].titlestring—Nom d'affichage du jeu de données.
datasets[].sourcestring—Provenance de la valeur.
datasets[].endpointstring—Endpoint public qui sert le jeu de données.
datasets[].statusstring—Statut.
datasets[].lag_snumbersÂge du point de données le plus récent au moment où la réponse a été construite.
datasets[].source_atnumbermsHorodatage.
datasets[].fetched_atnumbermsMoment où CoinBoss a récupéré les données auprès de la source.
datasets[].fresh_within_snumbersFenêtre de fraîcheur : les données plus récentes que ce seuil sont considérées comme à jour.
datasets[].coverageobject—Ce qui est inclus et ce qui manque.
datasets[].coverage.funds_totalnumbercountNombre de fonds suivis. peut être absent
datasets[].coverage.funds_coverednumbercountNombre de fonds disposant d'une publication exploitable. peut être absent
datasets[].coverage.funds_unavailablenumbercountNombre de fonds dont l'émetteur ne publie aucune information lisible par machine. peut être absent
datasets[].coverage.funds_failingnumbercountNombre de fonds dont la publication n'a pas pu être lue lors du dernier cycle de collecte. peut être absent
datasets[].coverage.as_ofstring—Date de publication la plus récente parmi les fonds couverts (YYYY-MM-DD). peut être absent
datasets[].coverage.as_of_minstring—Date de publication la plus ancienne parmi les fonds couverts (YYYY-MM-DD). peut être absent
datasets[].reasonstring|null—Code de raison.
datasets[].coverage.contractsnumber—Lignes par contrat. peut être absent
datasets[].coverage.report_datestring—Date du rapport Commitments of Traders de la CFTC le plus récent (YYYY-MM-DD). peut être absent
datasets[].coverage.productsnumbercountNombre de produits CME couverts. peut être absent
datasets[].coverage.trade_datestring—Date de négociation du rapport quotidien du CME le plus récent (YYYY-MM-DD). peut être absent
summaryobject—Bloc de synthèse. clés dynamiques: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
summary.{*}number—Bloc de synthèse.
by_familyobject—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.{*}.{*}numbercountNombre de plateformes ayant ce statut pour cette famille.
alertsarray—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[].levelstring—Niveau.
alerts[].exchangestring—Identifiant de la plateforme, en minuscules (par exemple `binance`).
alerts[].familystring—Famille de données concernée par l'alerte.
alerts[].codestring—Code.
alerts[].detailstring—Détail.
alerts[].opened_atnumbermsHorodatage.
alerts[].last_seen_atnumbermsHorodatage.
alerts[].resolved_atnumber|nullmsHorodatage.
alerts[].hitsnumbercountNombre de passages de la patrouille (un toutes les 5 minutes) ayant observé la condition depuis l'ouverture de l'alerte.
alerts[].openboolean—Prix d'ouverture de la période.
monitorobject—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_atnumbermsHorodatage.
monitor.patrol_age_snumbersSecondes écoulées depuis l'événement.
monitor.patrol_okboolean—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_snumbersSecondes écoulées depuis l'événement.
errorsnull—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.
legendobject—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`).
methodobject—Notes sur la formule / la méthode.
method.statusstring—Statut.
method.lag_sstring—Énoncé en texte brut de la manière dont `lag_s` est calculé.
method.source_atstring—Chaîne de date et d'heure.
method.fetched_atstring—Chaîne de date et d'heure.
metaobject—Enveloppe de cette réponse : identifiant du schéma, système producteur, horodatages, durée de vie du cache et fraîcheur.
meta.schemastring—Identifiant du schéma de cette réponse ; même valeur que le `schema` de premier niveau.
meta.sourcearray—Provenance de la valeur.
meta.source[]object—Provenance de la valeur.
meta.source[].systemstring—Système qui a produit les données ; toujours `coinboss` pour les endpoints du centre développeurs.
meta.source[].componentstring—Composant à l'origine des données : la sonde des endpoints et la patrouille qualité des données.
meta.observed_atnull—Horodatage.
meta.received_atnumbermsHorodatage.
meta.fetched_atnumbermsMoment où CoinBoss a récupéré les données auprès de la source.
meta.windowstring—Fenêtre.
meta.cache_ttl_snumbersDurée de vie du cache côté serveur de cette réponse.
meta.qualitystring—`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_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.
meta.fallbackstring—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": [
      • { … 7 },
      • { … 7 }
      ],
    • "exchanges": [
      • "aster",
      • "backpack",
      • "binance",
      • "bingx",
      • "bitfinex",
      • "bitget",
      • "bitstamp",
      • "bitunix"
      ],
    • "matrix": {
      • "aster": { … 2 },
      • "backpack": { … 2 }
      },
    • "datasets": [
      • { … 12 },
      • { … 12 }
      ],
    • "summary": {
      • "FRESH": 161,
      • "PARTIAL": 7
      },
    • "by_family": {
      • "ticker": { … 2 },
      • "oi": { … 2 }
      },
    • "alerts": [
      • { … 10 },
      • { … 10 }
      ],
    • "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": [ … 1 ],
      • "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ètresHTTPLatenceRésultat
exchange=binance2001 msRéussi FRESH
family=funding2001 msRé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

DisponibleVérifié : 2026-11-13 03:53:46 UTCHTTP 200887 msSchéma conformePoint de données le plus récent : il y a 0s

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 →

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/meta/qualityDisponible
Paramètres

string — Return only this exchange (lower-case id, for example `binance`).

string — Return only this data family (for example `oi`, `funding`, `liquidation`).

URL de la requêtehttps://www.coinboss.com/api/meta/quality
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.