/api/sd/liquidity/rank
GETPartielPARTIAL

Cryptos classées par profondeur du carnet d'ordres

Cryptos classées par profondeur agrégée du carnet d'ordres (bid + ask) dans une bande donnée, avec le nombre de contrats inclus et le spread le plus serré.

GET/api/sd/liquidity/rank

Requête

Paramètres de requête

NomTypeRequisPar défautValeurs autoriséesDescription
marketstringOptionnelperpperp, spotType de marché. Les carnets perpétuels et spot ne sont jamais additionnés.
bandstringOptionnel10.5, 1, 2Distance au prix médian, en pourcentage.
limitintegerOptionnel50≥ 1 · ≤ 200Nombre de lignes.

Exemple de requête

curl -s "https://www.coinboss.com/api/sd/liquidity/rank"

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 de schéma de cette réponse. Il ne change que lorsqu'un champ existant change de sens ou de type.
nownumbermsHeure du serveur au moment où la réponse a été construite.
marketstring—`perp` ou `spot`.
band_pctnumber%Bande sélectionnée : distance au prix médian.
limitnumber—Limite de lignes appliquée.
total_coinsnumber—Cryptos ayant au moins une ligne de carnet d'ordres.
rowsarray—Une ligne par crypto.
rows[]object—Une ligne par crypto.
rows[].coinstring—Symbole de la crypto (en majuscules).
rows[].bid_depth_usdnumberUSDNotionnel des ordres d'achat en attente entre le prix médian et la borne inférieure de la bande. Une borne inférieure lorsque `complete` vaut false.
rows[].ask_depth_usdnumberUSDNotionnel des ordres de vente en attente entre le prix médian et la borne supérieure de la bande. Une borne inférieure lorsque `complete` vaut false.
rows[].total_depth_usdnumberUSDProfondeur bid + profondeur ask de la bande, utilisée uniquement comme clé de classement.
rows[].n_includednumber—Lignes incluses dans la somme de profondeur : à jour et complètes pour la bande. À lire en même temps que la valeur de profondeur.
rows[].n_freshnumber—Lignes à jour.
rows[].n_rowsnumber—Lignes trouvées, y compris les lignes périmées.
rows[].mid_mediannumberUSDMédiane des prix médians des lignes à jour.
rows[].spread_bps_minnumberbpSpread le plus serré parmi les lignes à jour.
rows[].included_exchangesarray—Sources dont les données à jour sont incluses.
rows[].included_exchanges[]string—Sources dont les données à jour sont incluses.
rows[].uses_aggregated_bucketsboolean—True lorsqu'une ligne incluse a utilisé des tranches agrégées par prix, ce qui fait de la somme une borne inférieure.
rows[].ranknumber—Position dans le classement ; `null` lorsque la ligne n'a aucune valeur à classer.
coverageobject—Ce qui est inclus ou non dans les chiffres. Comparez ces éléments avant de comparer les totaux avec une autre source.
coverage.included_exchangesarray—Sources dont les données à jour sont incluses.
coverage.included_exchanges[]string—Sources dont les données à jour sont incluses.
coverage.unavailablearray—Sources qui n'ont pas pu être incluses, chacune avec sa raison. Elles ne sont jamais comptées comme 0. vide dans les échantillons ayant servi à générer ce tableau
coverage.stale_excludedarray—Lignes écartées parce que leur dernière mise à jour est hors de la fenêtre de fraîcheur.
coverage.stale_excluded[]object—Lignes écartées parce que leur dernière mise à jour est hors de la fenêtre de fraîcheur.
coverage.stale_excluded[].exchangestring—Identifiant de la plateforme (en minuscules).
coverage.stale_excluded[].age_snumbersSecondes écoulées depuis la réception de la ligne.
coverage.n_fresh_rowsnumber—Lignes à jour, toutes cryptos confondues.
coverage.n_stale_rowsnumber—Lignes périmées, toutes cryptos confondues.
coverage.n_incomplete_rowsnumber—Lignes à jour dont l'instantané n'atteint pas la borne de la bande.
methodobject—Énoncé en texte brut des formules utilisées pour cette réponse, une entrée par champ.
method.bid_depth_usdstring—Note de formule pour `bid_depth_usd`, en texte brut.
method.ask_depth_usdstring—Note de formule pour `ask_depth_usd`, en texte brut.
method.completestring—Note de formule pour `complete`, en texte brut.
method.aggregatestring—Note de formule pour `aggregate`, en texte brut.
method.freshstring—Note de formule pour `fresh`, en texte brut.
method.rankstring—Note de formule pour `rank`, en texte brut.
metaobject—Traçabilité et fraîcheur de cette réponse.
meta.schemastring—Identifiant de schéma de cette réponse. Il ne change que lorsqu'un champ existant change de sens ou de type.
meta.sourcearray—Endpoints publics amont auprès desquels les données ont été collectées.
meta.source[]object—Endpoints publics amont auprès desquels les données ont été collectées.
meta.source[].exchangestring—Identifiant de la plateforme (en minuscules).
meta.source[].marketstring—`perp` ou `spot`.
meta.source[].endpointstring—Endpoint public de la source que lit le collecteur (indiqué pour la traçabilité ; les clients ne l'appellent jamais).
meta.observed_atnumbermsHorodatage attribué aux données par la source.
meta.received_atnumbermsMoment où le collecteur CoinBoss a reçu les données.
meta.fetched_atnumbermsMoment où cette réponse a été assemblée.
meta.windowstring—Fenêtre temporelle couverte par les chiffres.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN ou UNAVAILABLE, d'après les horodatages des données et la couverture.
meta.is_staleboolean—True lorsque les données sont plus anciennes que leur fenêtre de fraîcheur.
meta.cache_ttl_snumbersDurée de vie en cache de cette réponse.
meta.fallbackstring—Ce que renvoie l'endpoint lorsque le collecteur ou une source est en échec.
meta.collector_heartbeat_age_snumbersSecondes écoulées depuis le dernier signal d'activité du collecteur.

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

Exemple de réponse

/api/sd/liquidity/rank · Réponse réelle (capture : 2026-11-13 04:02:46 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : rows comptait 50 éléments; meta.source comptait 23 éléments; coverage.stale_excluded comptait 23 éléments; rows[].included_exchanges comptait 19 éléments; coverage.included_exchanges comptait 23 éléments.

  • {
    • "success": true,
    • "schema": "coinboss.sd.liquidity/1",
    • "now": 1794542566023,
    • "market": "perp",
    • "band_pct": 1,
    • "limit": 50,
    • "total_coins": 89,
    • "rows": [
      • { … 12 },
      • { … 12 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "unavailable": [],
      • "stale_excluded": [ … 2 ],
      • "n_fresh_rows": 1481,
      • "n_stale_rows": 82,
      • "n_incomplete_rows": 8
      },
    • "method": {
      • "bid_depth_usd": "sum of resting bid notional with price >= mid * (1 - band%), in USD; notional = price * size * contract_value (inverse contracts: size * contract_value); USDT /…",
      • "ask_depth_usd": "sum of resting ask notional with price <= mid * (1 + band%), in USD; same notional rule as bid_depth_usd",
      • "complete": "true when BOTH sides of the snapshot reach the band edge (reach_pct >= band) or the whole side of the book was returned; when false the depth values are lower b…",
      • "aggregate": "per market and band: sum over rows that are fresh AND complete for that band; n_included / n_fresh is the denominator; lower_bound_* additionally adds the incom…",
      • "fresh": "a row is fresh when now - received_at <= max(3 * period_s, 300s); stale rows are listed in coverage.stale_excluded; rows older than 24h are dropped",
      • "rank": "coins ordered by bid_depth_usd + ask_depth_usd of the chosen market and band, aggregated as in aggregate; coins with no fresh complete row carry nulls and sort …"
      },
    • "meta": {
      • "schema": "coinboss.sd.liquidity/1",
      • "source": [ … 2 ],
      • "observed_at": 1794542565862,
      • "received_at": 1794542565977,
      • "fetched_at": 1794542566023,
      • "window": "latest",
      • "quality": "PARTIAL",
      • "is_stale": false,
      • "cache_ttl_s": 30,
      • "fallback": "stale rows (older than max(3 * period_s, 300s)) are left out; coins whose rows are all stale or incomplete keep their place in the list with null depth",
      • "collector_heartbeat_age_s": 4
      }
    }

É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
market=spot2005 msRéussi PARTIAL
band=0.5&limit=102007 msRéussi PARTIAL
limit=04002 msRéussi renvoie l'erreur attendue

Vérifié : 2026-11-13 03:58:06 UTC

Détails

Authentification
Aucune. Endpoint public.
Limite de requêtes
1200 requêtes par minute et par IP
Cache serveur
30s
Micro-cache en périphérie
10s
Fréquence de mise à jour
Même cycle de collecte que `/api/sd/liquidity`.
Fenêtre
Dernier instantané par contrat.
Sources de données
Instantanés REST publics des carnets d'ordres de 24 plateformes (marchés perpétuels et spot), collectés et stockés par CoinBoss (sd_book_latest, sd_book_hist). La profondeur et le slippage sont calculés par CoinBoss à partir des niveaux de prix bruts.
Couverture des plateformes
24 plateformes, 38 couples plateforme × marché. Lorsqu'un instantané public n'atteint pas ±0.5 / 1 / 2 % autour du prix médian (plafond de niveaux de la plateforme), cette bande est marquée `complete: false`, sa valeur est une borne inférieure et elle est écartée de l'agrégat ; `n_included` / `n_fresh` donnent le dénominateur et `excluded_incomplete` liste ce qui a été écarté.
Pagination
Pas de pagination ; `limit` plafonne le nombre de lignes (max 200).
Tri
`total_depth_usd` décroissant ; les cryptos sans aucune ligne complète et à jour viennent en dernier avec `rank: null`.
Unités
Depth in USD notional, bid and ask side reported separately and never added. Spread and slippage in basis points (1 bp = 0.01 %). USDT / USDC / USD quotes are counted 1:1 as USD.
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

PartielVérifié : 2026-11-13 04:02:46 UTCHTTP 2009 msSchéma conformePoint de données le plus récent : il y a 0s

L'endpoint signale une qualité de données PARTIAL

Disponibilité, 30 derniers jours

100 % des 408 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/sd/liquidity/rankPartiel
Paramètres

string · défaut perp — Market type. Perpetual and spot books are never added together.

string · défaut 1 — Distance from mid price in percent.

integer · défaut 50 · min 1 · max 200 — Number of rows.

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