Matrice de qualité des données (vue collecteur)
Couche de données interne : matrice de qualité des données (plateforme × famille de données)
/api/sd/qualityRequête
Cet endpoint n'accepte aucun paramètre.
Exemple de requête
curl -s "https://www.coinboss.com/api/sd/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 }`. |
| now | number | ms | Heure du serveur au moment où la réponse a été construite. |
| families | array | — | Familles de données contrôlées pour chaque plateforme, dans l'ordre d'affichage. |
| families[] | string | — | Identifiant de la famille : `ticker`, `oi`, `funding`, `funding_settle`, `liquidation`, `ls`, `spot` ou `sd_contracts`. |
| 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.{*}.ticker | object | — | Fraîcheur des tickers futures de la plateforme : `status`, nombres de lignes, `age_s` et les fenêtres de fraîcheur / exploitable. Les clés du dictionnaire sont les identifiants de plateforme. peut être absent |
| matrix.{*}.ticker.status | string | — | Statut. peut être absent |
| matrix.{*}.ticker.rows | number | — | Lignes du résultat. peut être absent |
| matrix.{*}.ticker.rows_fresh | number | — | Lignes mises à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.ticker.rows_usable | number | — | Lignes situées dans la fenêtre exploitable. peut être absent |
| matrix.{*}.ticker.rows_orphan | number | — | Lignes dont le contrat n'est plus coté. peut être absent |
| matrix.{*}.ticker.rows_invalid | number | — | Lignes rejetées par la validation. peut être absent |
| matrix.{*}.ticker.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. peut être absent |
| matrix.{*}.ticker.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. peut être absent |
| matrix.{*}.ticker.usable_within_s | number | s | Les données plus anciennes que ce seuil ne sont pas du tout utilisées. peut être absent |
| matrix.{*}.oi | object | — | Positions ouvertes. peut être absent |
| matrix.{*}.oi.status | string | — | Statut. peut être absent |
| matrix.{*}.oi.rows | number | — | Lignes du résultat. peut être absent |
| matrix.{*}.oi.rows_fresh | number | — | Lignes mises à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.oi.rows_usable | number | — | Lignes situées dans la fenêtre exploitable. peut être absent |
| matrix.{*}.oi.rows_orphan | number | — | Lignes dont le contrat n'est plus coté. peut être absent |
| matrix.{*}.oi.rows_invalid | number | — | Lignes rejetées par la validation. peut être absent |
| matrix.{*}.oi.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. peut être absent |
| matrix.{*}.oi.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. peut être absent |
| matrix.{*}.oi.usable_within_s | number | s | Les données plus anciennes que ce seuil ne sont pas du tout utilisées. peut être absent |
| matrix.{*}.funding | object | — | Bloc ou valeur du taux de financement. peut être absent |
| matrix.{*}.funding.status | string | — | Statut. peut être absent |
| matrix.{*}.funding.rows | number | — | Lignes du résultat. peut être absent |
| matrix.{*}.funding.rows_fresh | number | — | Lignes mises à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.funding.rows_usable | number | — | Lignes situées dans la fenêtre exploitable. peut être absent |
| matrix.{*}.funding.rows_orphan | number | — | Lignes dont le contrat n'est plus coté. peut être absent |
| matrix.{*}.funding.rows_invalid | number | — | Lignes rejetées par la validation. peut être absent |
| matrix.{*}.funding.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. peut être absent |
| matrix.{*}.funding.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. peut être absent |
| matrix.{*}.funding.usable_within_s | number | s | Les données plus anciennes que ce seuil ne sont pas du tout utilisées. peut être absent |
| matrix.{*}.funding.rows_unknown_interval | number | count | Lignes de financement mises à jour dans les 4 dernières heures dont l'intervalle de règlement est inconnu et qui ne peuvent donc pas être normalisées sur 8 heures ; une seule de ces lignes suffit à rendre la cellule `partial`. peut être absent |
| matrix.{*}.funding.rows_no_next_time | number | ms | Horodatage. peut être absent |
| matrix.{*}.funding.rows_no_liveness | number | count | Lignes de financement récemment mises à jour 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.{*}.funding_settle | object | — | Fraîcheur de l'historique des règlements de financement de la plateforme : `status`, `age_s` du règlement le plus récent, `symbols` et `history_from`. peut être absent |
| matrix.{*}.funding_settle.status | string | — | Statut. peut être absent |
| matrix.{*}.funding_settle.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. peut être absent |
| matrix.{*}.funding_settle.symbols | number | — | Symboles. peut être absent |
| matrix.{*}.funding_settle.history_from | number | ms | Enregistrement le plus ancien conservé. peut être absent |
| matrix.{*}.funding_settle.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. peut être absent |
| matrix.{*}.liquidation | object | — | Bloc liquidations. peut être absent |
| matrix.{*}.liquidation.status | string | — | Statut. peut être absent |
| matrix.{*}.liquidation.via | string | — | Chemin de collecte. peut être absent |
| matrix.{*}.liquidation.last_event_age_s | number|null | s | Secondes écoulées depuis l'événement. peut être absent |
| matrix.{*}.liquidation.events_1h | number | count | Ordres de liquidation stockés en provenance de cette plateforme au cours de la dernière heure ; les tailles d'ordre minimales diffèrent selon les plateformes, les décomptes ne sont donc pas comparables. peut être absent |
| matrix.{*}.liquidation.events_24h | number | count | Ordres de liquidation stockés en provenance de cette plateforme au cours des dernières 24 heures ; les tailles d'ordre minimales diffèrent selon les plateformes, les décomptes ne sont donc pas comparables. peut être absent |
| matrix.{*}.liquidation.ws_heartbeat_age_s | number|null | s | Secondes écoulées depuis l'événement. peut être absent |
| matrix.{*}.liquidation.judged_by | string | — | Horodatage à partir duquel le statut a été évalué. peut être absent |
| matrix.{*}.liquidation.idle_ok_s | number | s | Plus long intervalle sans liquidation encore considéré comme normal pour cette plateforme ; un intervalle plus long fait passer le flux à `stale`. peut être absent |
| matrix.{*}.ls | object | — | Fraîcheur des lignes de ratio long/short de la plateforme : `status`, nombres de lignes, `age_s` et les fenêtres de fraîcheur / exploitable. peut être absent |
| matrix.{*}.ls.status | string | — | Statut. peut être absent |
| matrix.{*}.ls.reason | string | — | Code de raison. peut être absent |
| matrix.{*}.spot | object | — | Bloc ou valeur du marché spot. peut être absent |
| matrix.{*}.spot.status | string | — | Statut. peut être absent |
| matrix.{*}.spot.reason | string | — | Code de raison. peut être absent |
| matrix.{*}.sd_contracts | object | — | Fraîcheur des lignes de contrats à marge crypto, à marge USDC et à échéance de la plateforme : `status`, nombres de lignes et `age_s`. peut être absent |
| matrix.{*}.sd_contracts.status | string | — | Statut. peut être absent |
| matrix.{*}.sd_contracts.reason | string | — | Code de raison. peut être absent |
| matrix.{*}.funding_settle.reason | string | — | Code de raison. peut être absent |
| matrix.{*}.liquidation.reason | string | — | Code de raison. peut être absent |
| matrix.{*}.liquidation.note | string | — | Remarque. peut être absent |
| matrix.{*}.ls.rows | number | — | Lignes du résultat. peut être absent |
| matrix.{*}.ls.rows_fresh | number | — | Lignes mises à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.ls.rows_usable | number | — | Lignes situées dans la fenêtre exploitable. peut être absent |
| matrix.{*}.ls.rows_orphan | number | — | Lignes dont le contrat n'est plus coté. peut être absent |
| matrix.{*}.ls.rows_invalid | number | — | Lignes rejetées par la validation. peut être absent |
| matrix.{*}.ls.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. peut être absent |
| matrix.{*}.ls.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. peut être absent |
| matrix.{*}.ls.usable_within_s | number | s | Les données plus anciennes que ce seuil ne sont pas du tout utilisées. peut être absent |
| matrix.{*}.spot.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. peut être absent |
| matrix.{*}.spot.coins | number | — | Cryptos. peut être absent |
| matrix.{*}.spot.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. peut être absent |
| matrix.{*}.spot.note | string | — | Remarque. peut être absent |
| matrix.{*}.sd_contracts.rows | number | — | Lignes du résultat. peut être absent |
| matrix.{*}.sd_contracts.rows_fresh | number | — | Lignes mises à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.sd_contracts.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. peut être absent |
| matrix.{*}.sd_contracts.rows_without_oi | number | count | Lignes de contrats ne portant aucune valeur de positions ouvertes en USD. peut être absent |
| matrix.{*}.sd_contracts.rows_oi_promoted | number | count | Lignes de contrats dont les positions ouvertes sont également comptées dans les totaux de positions ouvertes à l'échelle du site. peut être absent |
| matrix.{*}.sd_contracts.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. peut être absent |
| matrix.{*}.{*} | object | — | Matrice indexée par ligne et par colonne. |
| matrix.{*}.{*}.status | string | — | Statut. |
| matrix.{*}.{*}.reason | string | — | Code de raison. peut être absent |
| matrix.{*}.{*}.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. peut être absent |
| matrix.{*}.{*}.coins | number | — | Cryptos. peut être absent |
| matrix.{*}.{*}.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. peut être absent |
| matrix.{*}.{*}.note | string | — | Remarque. peut être absent |
| matrix.{*}.oi.reason | string | — | Code de raison. peut être absent |
| matrix.{*}.{*}.rows | number | — | Lignes du résultat. peut être absent |
| matrix.{*}.{*}.rows_fresh | number | — | Lignes mises à jour dans la fenêtre de fraîcheur. peut être absent |
| matrix.{*}.{*}.rows_usable | number | — | Lignes situées dans la fenêtre exploitable. peut être absent |
| matrix.{*}.{*}.rows_orphan | number | — | Lignes dont le contrat n'est plus coté. peut être absent |
| matrix.{*}.{*}.rows_invalid | number | — | Lignes rejetées par la validation. peut être absent |
| matrix.{*}.{*}.usable_within_s | number | s | Les données plus anciennes que ce seuil ne sont pas du tout utilisées. peut être absent |
| matrix.{*}.ticker.dead | boolean | — | Présent uniquement lorsque `status` vaut `stale` : true lorsqu'aucune ligne ne se trouve non plus dans la fenêtre exploitable, la plateforme étant alors exclue des agrégats. peut être absent |
| matrix.{*}.funding.reason | string | — | Code de raison. peut être absent |
| matrix.{*}.liquidation.pipeline_last_event_age_s | number | s | Secondes écoulées depuis l'événement. peut être absent |
| matrix.{*}.liquidation.node_heartbeat_age_s | number | s | Secondes écoulées depuis l'événement. peut être absent |
| summary | object | — | Bloc de synthèse. |
| summary.fresh | number | count | Nombre de cellules plateforme × famille dont le statut est `fresh`. |
| summary.partial | number | — | true lorsque seule une partie des données attendues est présente. |
| summary.stale | number | — | Lignes ou indicateur signalant des données plus anciennes que la fenêtre de fraîcheur. |
| summary.invalid | number | count | Nombre de cellules plateforme × famille dont le statut est `invalid`. |
| summary.unavailable | number | — | Éléments pour lesquels aucune donnée n'est disponible, avec les raisons. Jamais déclarés comme 0. |
| sources | array | — | Sources de données. |
| sources[] | object | — | Sources de données. |
| sources[].exchange | string | — | Identifiant de la plateforme, en minuscules (par exemple `binance`). |
| sources[].family | string | — | Famille de données de la tâche de collecte à laquelle se rapporte l'enregistrement de santé, par exemple `oi`, `funding`, `ticker`. |
| sources[].endpoint | string | — | Libellé de l'appel amont suivi : hôte et chemin de l'API publique interrogée, ou nom d'un contrôle interne. |
| sources[].ok | boolean | — | false lorsque la tentative la plus récente a échoué, c'est-à-dire que la dernière erreur est plus récente que le dernier succès. |
| sources[].last_ok_age_s | number|null | s | Secondes écoulées depuis l'événement. |
| sources[].last_err_age_s | number|null | s | Secondes écoulées depuis l'événement. |
| sources[].last_status | number | — | Statut HTTP de l'appel le plus récent. |
| sources[].last_error | string|null | — | Texte d'erreur du dernier échec, tronqué à 160 caractères ; null lorsqu'aucun n'est enregistré. |
| sources[].last_ms | number | ms | Durée de l'appel le plus récent ; null lorsqu'elle n'a pas été mesurée. |
| sources[].fail_streak | number | count | Nombre d'appels en échec consécutifs à ce stade ; 0 après un succès. |
| sources[].ok_count | number | count | Appels réussis enregistrés dans le journal de santé. |
| sources[].err_count | number | count | Appels en échec enregistrés dans le journal de santé. |
| sources[].http_429 | number | count | Appels en échec ayant reçu une réponse HTTP 429 (limite de requêtes atteinte). |
| sources[].http_403 | number | count | Appels en échec ayant reçu une réponse HTTP 403 (accès interdit). |
| sources[].http_5xx | number | count | Appels en échec ayant reçu un statut HTTP 5xx. |
| sources[].timeouts | number | count | Appels en échec pour dépassement du délai d'attente. |
| errors | object | — | Dictionnaire associant l'identifiant de famille au message d'erreur, pour les familles dont le contrôle lui-même a échoué ; vide lorsque tous les contrôles ont été exécutés. |
| alerts | array | — | Alertes de la patrouille qualité qui sont ouvertes ou ont été résolues au cours des dernières 24 heures, les alertes ouvertes en premier (200 au plus). |
| 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 : âge du dernier passage de la patrouille, âge du heartbeat des collecteurs et `patrol_ok`. |
| monitor.alert_job_age_s | number | s | Secondes écoulées depuis l'événement. |
| monitor.collector_heartbeat_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. |
| legend | object | — | Définition en texte brut de chaque statut de cellule. |
| legend.fresh | string | — | Définition du statut `fresh`. |
| legend.partial | string | — | true lorsque seule une partie des données attendues est présente. |
| legend.stale | string | — | Lignes ou indicateur signalant des données plus anciennes que la fenêtre de fraîcheur. |
| legend.invalid | string | — | Définition du statut `invalid`. |
| legend.unavailable | string | — | Éléments pour lesquels aucune donnée n'est disponible, avec les raisons. Jamais déclarés comme 0. |
Généré à partir de 1 réponses réelles (2026-11-11 23:01 UTC).
Exemple de réponse
/api/sd/quality · Réponse réelle (capture : 2026-11-13 03:59:27 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : alerts comptait 3 éléments; matrix comptait 29 éléments; sources comptait 262 éléments; exchanges comptait 29 éléments.
- "success"true
- "now"1794542357043
- "families"
- "ticker"
- "oi"
- "funding"
- "funding_settle"
- "liquidation"
- "ls"
- "spot"
- "sd_contracts"
- "exchanges"
- "aster"
- "backpack"
- "binance"
- "bingx"
- "bitfinex"
- "bitget"
- "bitstamp"
- "bitunix"
- "matrix"
- "aster"
- "backpack"
- "summary"
- "fresh"123
- "partial"7
- "stale"1
- "invalid"0
- "unavailable"101
- "sources"
- "errors"
- "alerts"
- "monitor"
- "alert_job_age_s"20
- "collector_heartbeat_age_s"17
- "patrol_ok"true
- "legend"
- "fresh""data timestamps within the fresh window"
- "partial""some rows outside the fresh window or missing a required field"
- "stale""no row within the fresh window (dead=true: also outside the usable window, excluded from aggregates)"
- "invalid""more than half of usable rows fail sanity checks"
- "unavailable""no public source or not collected; shown as —, never 0"
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
- matrice calculée à la demande (mémoïsation en processus de 20 s) ; tâche d'alerte toutes les 5 min
- Fenêtre
- dernier état ; alertes ouvertes ou résolues au cours des dernières 24 h
- Sources de données
- Matrice de fraîcheur des données (plateforme x famille de données) calculée en interne à partir des horodatages des tables collectées par CoinBoss.
- Couverture des plateformes
- toutes les plateformes présentes dans au moins une famille collectée ; les sources manquantes sont signalées comme indisponibles, avec un motif
- Pagination
- alertes limitées à 200
- Unités
- status per cell: fresh | partial | stale | invalid | unavailable; ages in seconds
- Méthode
- fresh = >= 90% of live rows inside the family's freshness window (tickers 5 min, OI 15 min / cme 36 h, funding 15 min, long/short 90 min); liquidation feeds judged by WebSocket heartbeat or time since last event; funding settlements fresh within 9 h; spot snapshots within 30 min
- 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 408 contrôles réussis
- Renvoyé mais non documenté: matrix.{*}.{*}.rows_unknown_interval, matrix.{*}.{*}.rows_no_next_time, matrix.{*}.{*}.rows_no_liveness, matrix.{*}.{*}.symbols, matrix.{*}.{*}.history_from, matrix.{*}.{*}.via, matrix.{*}.{*}.last_event_age_s, matrix.{*}.{*}.events_1h, matrix.{*}.{*}.events_24h, matrix.{*}.{*}.ws_heartbeat_age_s, matrix.{*}.{*}.judged_by, matrix.{*}.{*}.idle_ok_s
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/qualityDisponibleAucun paramètre.
https://www.coinboss.com/api/sd/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