Documentation d'un endpoint
Documentation complète d'un endpoint : paramètres, tableau des champs généré à partir de réponses réelles, exemple de réponse capturé, échantillons vérifiés, historique de sonde sur 30 jours, erreurs et limites.
/api/meta/endpointRequête
Paramètres de requête
| Nom | Type | Requis | Par défaut | Valeurs autorisées | Description |
|---|---|---|---|---|---|
| id | string | Requis | — | — | Identifiant de l'endpoint dans le catalogue (par exemple `sd-oi`). Les identifiants inconnus renvoient 404. Exemple: sd-oi |
Exemple de requête
curl -s "https://www.coinboss.com/api/meta/endpoint?id=sd-oi"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.endpoint/1`). |
| now | number | ms | Heure du serveur au moment où la réponse a été construite. |
| endpoint | object | — | Enregistrement de l'endpoint dans le catalogue. Les clés du dictionnaire sont des noms d'attributs tels que `id`, `path`, `status`, `params`, `category`, `sources`, `units`, `formula`. clés dynamiques: id,cat,kind,method,path,title |
| endpoint.{*} | array|number|object|string|null | — | Valeur d'un attribut : du texte, un nombre, une liste (`params`, `required`, `ts_fields`) ou un objet (`probe`, `category`, `example_query`) ; null lorsqu'il n'est pas défini. |
| endpoint.{*}[] | object|string | — | Élément d'un attribut de type liste : une définition de paramètre dans `params`, ou un nom dans `required` / `ts_fields`. peut être absent |
| endpoint.{*}[].name | string | — | Nom. peut être absent |
| endpoint.{*}[].in | string | — | Emplacement où le paramètre est envoyé : `query` ou `path`. peut être absent |
| endpoint.{*}[].type | string | — | Type. peut être absent |
| endpoint.{*}[].required | boolean | — | true lorsque le paramètre doit être envoyé. peut être absent |
| endpoint.{*}[].default | null | — | Valeur utilisée lorsque le paramètre est omis ; null lorsqu'il n'y a pas de valeur par défaut. peut être absent |
| endpoint.{*}[].enum | null | — | Liste des valeurs acceptées ; null lorsque le paramètre n'est pas limité à une liste. peut être absent |
| endpoint.{*}[].min | null | — | Minimum. peut être absent |
| endpoint.{*}[].max | null | — | Maximum. peut être absent |
| endpoint.{*}[].example | string | — | Exemple de valeur du paramètre ; null lorsqu'aucun n'est fourni. peut être absent |
| endpoint.{*}[].desc | string | — | Description du paramètre. peut être absent |
| endpoint.{*}.checked_at | number | ms | Horodatage. peut être absent |
| endpoint.{*}.http | number | — | Statut HTTP de la requête de sonde la plus récente. peut être absent |
| endpoint.{*}.ok | boolean | — | `true` lorsque la requête de sonde la plus récente a renvoyé un HTTP 200 avec un corps JSON valide. peut être absent |
| endpoint.{*}.schema_ok | boolean | — | `true` lorsque la réponse sondée correspondait à la table des champs documentée ; `null` lorsqu'aucune table des champs n'existe. peut être absent |
| endpoint.{*}.latency_ms | number | ms | Temps de réponse de la requête de sonde la plus récente. peut être absent |
| endpoint.{*}.bytes | number | bytes | Taille du corps de la réponse sondée. peut être absent |
| endpoint.{*}.quality | null | — | `meta.quality` indiqué par la réponse sondée (FRESH / PARTIAL / STALE …) ; `null` lorsque l'endpoint ne l'indique pas. peut être absent |
| endpoint.{*}.data_age_s | number|null | s | Secondes écoulées depuis l'événement. peut être absent |
| endpoint.{*}.last_ok_at | number | ms | Horodatage. peut être absent |
| endpoint.{*}.fail_streak | number | count | Nombre de sondes en échec consécutives ; 0 lorsque la dernière sonde a réussi. peut être absent |
| endpoint.{*}.id | string | — | Identifiant. peut être absent |
| endpoint.{*}.title | string | — | Titre d'affichage de la catégorie de l'endpoint (dans `category`). peut être absent |
| endpoint.{*}.coin | string | — | Symbole de la crypto, en majuscules (par exemple BTC). peut être absent |
| fields | array | — | Table des champs de la réponse, déduite de réponses réelles ; null lorsqu'aucune table n'a été générée. |
| fields[] | object | — | Un champ de la réponse : `path`, `type`, `unit`, `desc` et des indicateurs. |
| fields[].path | string | — | Chemin du champ dans la réponse : `a.b` pour l'imbrication, `[]` pour les éléments d'un tableau, `{*}` pour les valeurs d'un dictionnaire. |
| fields[].type | string | — | Type. |
| fields[].unit | string|null | — | Unité des valeurs de cet objet. |
| fields[].desc | string | — | Description du champ ; null lorsqu'aucune n'a été rédigée. |
| fields[].optional | boolean | — | Présent et égal à true lorsque le champ était absent d'au moins une réponse échantillonnée. peut être absent |
| fields[].map | boolean | — | Présent et égal à true lorsque l'objet est un dictionnaire dont les clés dépendent des données (cryptos, plateformes, dates) plutôt qu'un ensemble de champs fixes. peut être absent |
| fields[].keys | array | — | Échantillon de clés observées dans le dictionnaire ; uniquement sur les champs dont `map` vaut true. peut être absent |
| fields[].keys[] | string | — | Un exemple de clé. peut être absent |
| fields_generated_at | number | ms | Horodatage. |
| fields_generated_from | array | — | URL de requête dont les réponses réelles ont servi à déduire la table des champs ; null lorsqu'il n'y a pas de table. |
| fields_generated_from[] | string | — | Un chemin de requête échantillonné, avec sa chaîne de requête. |
| example | object | — | Dernière réponse réelle réussie capturée par la sonde : `request`, `captured_at`, `truncated` (longueurs d'origine des tableaux raccourcis) et `body` ; null en l'absence de capture. |
| example.request | string | — | Requête ayant produit l'exemple capturé (chemin et chaîne de requête). |
| example.captured_at | number | ms | Horodatage. |
| example.truncated | object | — | Ce qui a été raccourci dans l'exemple capturé : pour chaque tableau ou dictionnaire, le nombre d'éléments laissés de côté. Ses clés dépendent de l'endpoint documenté. |
| example.body | object | — | Réponse capturée de l'endpoint documenté, raccourcie. Sa structure est celle décrite par `fields`. |
| verified_samples | object|null | — | Résultats des requêtes d'échantillonnage supplémentaires de la sonde (`at`, `samples` avec requête, statut HTTP, latence, contrôle du schéma) ; null lorsqu'aucune n'a été exécutée. |
| verified_samples.at | number | ms | Heure du dernier contrôle des échantillons supplémentaires. |
| verified_samples.samples | array | — | Nombre d'échantillons. |
| verified_samples.samples[] | object | — | Nombre d'échantillons. |
| verified_samples.samples[].query | object | — | Paramètres de requête de la requête d'échantillonnage. |
| verified_samples.samples[].query.coin | string | — | Symbole de la crypto, en majuscules (par exemple BTC). peut être absent |
| verified_samples.samples[].http | number | — | Statut HTTP renvoyé. |
| verified_samples.samples[].ok | boolean | — | `true` lorsque l'échantillon a renvoyé ce qui était attendu (HTTP 200 avec un JSON valide, ou le statut d'erreur attendu). |
| verified_samples.samples[].latency_ms | number | ms | Temps de réponse de la requête d'échantillonnage. |
| verified_samples.samples[].schema_ok | boolean|null | — | `true` lorsque la réponse de l'échantillon correspondait à la table des champs documentée ; `null` lorsqu'elle n'a pas été contrôlée. |
| verified_samples.samples[].quality | null | — | `meta.quality` indiqué par la réponse de l'échantillon ; `null` lorsqu'il n'est pas indiqué. |
| verified_samples.samples[].note | string|null | — | Remarque. |
| probe_detail | null | — | Écarts de schéma relevés par la dernière sonde : chemins de champs `missing`, `mismatched` et `undocumented` ; null lorsqu'il n'y en a aucun. |
| uptime_30d | object | — | Contrôles de la sonde sur cet endpoint au cours des 30 derniers jours : totaux, pourcentage de réussite et détail par jour. |
| uptime_30d.checks | number | count | Nombre de contrôles de la sonde sur l'endpoint au cours des 30 derniers jours (moins de jours lorsque le suivi a commencé plus tard). |
| uptime_30d.ok | number | count | Nombre de ces contrôles ayant réussi. |
| uptime_30d.pct | number | % | Pourcentage. |
| uptime_30d.days | array | — | Valeurs quotidiennes ou nombre de jours. |
| uptime_30d.days[] | object | — | Valeurs quotidiennes ou nombre de jours. |
| uptime_30d.days[].day | string | — | Jour calendaire (UTC). |
| uptime_30d.days[].checks | number | count | Nombre de requêtes de sonde ce jour-là. |
| uptime_30d.days[].ok | number | count | Nombre de requêtes de sonde réussies ce jour-là. |
| uptime_30d.days[].pct | number | % | Pourcentage. |
| uptime_30d.days[].avg_ms | number | ms | Temps de réponse moyen ce jour-là ; `null` en l'absence de contrôles. |
| uptime_30d.days[].max_ms | number | ms | Réponse la plus lente ce jour-là. |
| errors | array | — | Codes d'erreur que l'API peut renvoyer, chacun avec son statut HTTP, sa signification et un conseil de nouvelle tentative. |
| errors[] | object | — | Un code d'erreur. |
| errors[].code | string | — | Code. |
| errors[].http | number|string | — | Statut HTTP envoyé avec ce code ; une chaîne telle que `501 / 503` lorsque plusieurs s'appliquent. |
| errors[].meaning | string | — | Signification de l'erreur. |
| errors[].retry | string | — | Conseil indiquant s'il faut réessayer et comment. |
| errors[].legacy | boolean | — | Présent et égal à true uniquement pour le code utilisé par les anciens endpoints qui répondent en HTTP 200 avec `success: false`. peut être absent |
| rate_limit | object | — | Règles de limite de requêtes de l'API publique. |
| rate_limit.window_s | number | s | Durée de la fenêtre de comptage (60). |
| rate_limit.anonymous_per_min | number | count | Requêtes par minute autorisées par IP cliente lorsqu'aucune clé API n'est envoyée. |
| rate_limit.scope | string | — | Texte indiquant comment les requêtes sont comptées : par IP cliente en mode anonyme, par clé lorsqu'un en-tête `CB-API-KEY` est envoyé. |
| rate_limit.key_tiers_per_min | object | — | Requêtes par minute autorisées pour chaque palier de clé API, indexées par nom de palier. |
| rate_limit.key_tiers_per_min.hobbyist | number | count | Requêtes par minute pour les clés du palier `hobbyist`. |
| rate_limit.key_tiers_per_min.startup | number | count | Requêtes par minute pour les clés du palier `startup`. |
| rate_limit.key_tiers_per_min.standard | number | count | Requêtes par minute pour les clés du palier `standard`. |
| rate_limit.key_tiers_per_min.professional | number | count | Requêtes par minute pour les clés du palier `professional`. |
| rate_limit.exempt | array | — | Motifs de chemin qui ne sont pas décomptés de la limite. |
| rate_limit.exempt[] | string | — | Un motif de chemin exempté, par exemple `/api/coin-icon/*`. |
| rate_limit.headers | array | — | Noms des en-têtes de réponse qui indiquent l'état de la limite de requêtes. |
| rate_limit.headers[] | string | — | Un nom d'en-tête, par exemple `X-RateLimit-Remaining`. |
| rate_limit.on_exceed | object | — | Ce qui est renvoyé lorsque la limite est dépassée : statut `http` et `code` d'erreur. |
| rate_limit.on_exceed.http | number | — | Statut HTTP renvoyé lorsque la limite est dépassée (429). |
| rate_limit.on_exceed.code | string | — | Code. |
| related | array | — | Tous les endpoints de la même catégorie, celui-ci compris. |
| related[] | object | — | Un endpoint : `id`, `path` et `title`. |
| related[].id | string | — | Identifiant. |
| related[].path | string | — | Chemin de requête de l'endpoint. |
| related[].title | string | — | Titre d'affichage court de l'endpoint. |
| probe | object | — | État de la sonde des endpoints à l'origine des statuts en direct : heure de la dernière exécution, son âge, l'intervalle et le fait qu'elle soit à jour ou non. |
| probe.last_run_at | number | ms | Horodatage. |
| probe.age_s | number | s | Secondes écoulées depuis la dernière mise à jour de cette ligne. |
| probe.interval_s | number | s | Intervalle prévu entre deux exécutions de la sonde (300). |
| probe.fresh | boolean | — | true lorsque la dernière exécution de la sonde date de moins de 20 minutes ; lorsqu'il vaut false, les statuts des endpoints sont indiqués comme `unknown`. |
| probe.error | null | — | Message d'erreur (présent uniquement en cas d'échec). |
| 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` lorsque cet endpoint a été sondé au cours des 20 dernières minutes, sinon `STALE`. |
| 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:03 UTC).
Exemple de réponse
/api/meta/endpoint?id=sd-oi · Réponse réelle (capture : 2026-11-13 03:59:28 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : errors comptait 9 éléments; fields comptait 103 éléments; related comptait 6 éléments; endpoint comptait 35 éléments; uptime_30d.days comptait 3 éléments; verified_samples.samples comptait 4 éléments.
- "success"true
- "schema""coinboss.meta.endpoint/1"
- "now"1794542368241
- "endpoint"
- "id""sd-oi"
- "cat""open-interest"
- "fields"
- "fields_generated_at"1794438008862
- "fields_generated_from"
- "/api/sd/oi?coin=BTC"
- "/api/sd/oi?coin=ETH"
- "/api/sd/oi?coin=SOL"
- "/api/sd/oi?coin=ARKM"
- "example"
- "request""/api/sd/oi?coin=BTC"
- "captured_at"1794542259642
- "truncated"
- "body"
- "verified_samples"
- "at"1794542259642
- "samples"
- "probe_detail"
- "missing"
- "mismatched"
- "undocumented"
- "uptime_30d"
- "checks"411
- "ok"411
- "pct"100
- "days"
- "errors"
- "rate_limit"
- "window_s"60
- "anonymous_per_min"1200
- "scope""per client IP for anonymous requests; per key when a CB-API-KEY header is sent"
- "key_tiers_per_min"
- "exempt"
- "headers"
- "on_exceed"
- "related"
- "probe"
- "last_run_at"1794542029183
- "age_s"339
- "interval_s"300
- "fresh"true
- "error"null
- "meta"
- "schema""coinboss.meta.endpoint/1"
- "source"
- "observed_at"null
- "received_at"1794542259642
- "fetched_at"1794542368241
- "window""latest"
- "cache_ttl_s"30
- "quality""FRESH"
- "is_stale"false
- "fallback""field table comes from the last schema generation; example is the last successful real response"
É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 |
|---|---|---|---|
| id=sd-funding | 200 | 3 ms | Réussi FRESH |
| id=liquidations-overview | 200 | 2 ms | Réussi FRESH |
| — | 400 | 1 ms | Réussi renvoie l'erreur attendue |
Vérifié : 2026-11-13 03:59:28 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
- Sources de données
- Catalogue des endpoints CoinBoss, schémas générés par la sonde d'API, sd_api_probe.
- 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
99.75 % des 408 contrôles réussis
- Renvoyé mais non documenté: probe_detail.missing, probe_detail.mismatched, probe_detail.undocumented, probe_detail.undocumented[]
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/endpointDisponiblestring — Endpoint id from the catalog (for example `sd-oi`). Unknown ids return 404.
https://www.coinboss.com/api/meta/endpoint?id=sd-oiAutres 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