Aller au contenu principal
COT-Reports
COT-Reports.com
COT-Reports
COT-Reports
GRATUIT · RÉFÉRENCE API REST

COT Data API

Auth bearer · 60 req/min · 500 req/jour

API REST pour l'ensemble du jeu de données CFTC Commitments of Traders. Endpoints disponibles, authentification, limites de taux et codes d'erreur — tout ce qu'il faut pour intégrer.

L'API COT Data expose le même jeu de données que cot-reports.com : tous les marchés CFTC, toutes les familles de rapports (Legacy, Désagrégé, TFF, Supplémentaire), colonnes normalisées, historique hebdomadaire. Abonnez-vous pour générer un token ; auth bearer sur chaque requête ; limites de taux ci-dessous.

Cette référence est uniquement en anglais — le reste du site est localisé en 6 langues, mais la surface API (noms d'endpoints, syntaxe des paramètres, codes d'erreur) est partagée entre les langues. Les exemples sont en curl ; les snippets JavaScript fonctionnent dans Node 18+ et tout navigateur moderne.

Authentification

Chaque requête sauf /api/v1/demo/ nécessite un token bearer. Abonnez-vous sur cot-reports.com/api, générez un token depuis /account/api, et incluez-le dans l'en-tête Authorization.

curl -H "Authorization: Bearer cot_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  https://cot-reports.com/api/v1/markets/

Les tokens font 36 caractères au total (préfixe cot_live_ + 32 caractères hex). Le token complet n'est affiché qu'une seule fois à la création ; nous ne stockons qu'un hash SHA-256. Les tokens perdus ne peuvent pas être récupérés — révoquez l'ancien et générez-en un nouveau.

Limites de taux

PalierPar minutePar jourNotes
Entry (9.99 $/mois)60500Palier par défaut à l'abonnement.
Démo (sans auth)510Par IP. Réponse synthétique statique.

Chaque réponse contient X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset pour la plus stricte des deux fenêtres, plus des clés par fenêtre (-Minute / -Day) pour une télémétrie plus riche. Sur un 429, Retry-After indique le nombre de secondes à attendre.

Endpoints

GET/api/v1/markets/Auth bearer

Liste tous les marchés CFTC du jeu de données, avec les métadonnées et l'appartenance aux familles de rapports.

ParamètreInTypeDescription
categoryquerystringMatch exact sur le champ metadata category.
trackedquerybooleanFiltre sur l'ensemble curaté des marchés "populaires".
familyquerystringUne valeur parmi legacy, disagg, tff, supp.
searchquerystringRecherche par sous-chaîne sur market_name (insensible à la casse).
limitqueryinteger (1..2000)Par défaut 500.
offsetqueryintegerOffset de pagination, par défaut 0.
curl -H "Authorization: Bearer $COT_API_TOKEN" \
  "https://cot-reports.com/api/v1/markets/?family=legacy&tracked=true&limit=10"
GET/api/v1/cot/{cftc_code}/Auth bearer

Historique hebdomadaire d'un marché. Par défaut, retourne les 520 dernières semaines (10 ans).

ParamètreInTypeDescription
cftc_code *pathstringCode CFTC du contract market, ex. 099741 pour EURO FX.
familyquerystringPar défaut legacy. Une valeur parmi legacy, disagg, tff, supp.
variantqueryfutonly | combinedVariante CFTC : futonly (Futures Only) ou combined (Futures & Options Combined). Par défaut : celle du rapport (legacy : futonly ; disagg, tff : combined ; supp : combined uniquement). Si elle est indiquée, la réponse la nomme dans un champ variant.
fromqueryYYYY-MM-DDBorne inférieure inclusive sur report_date.
toqueryYYYY-MM-DDBorne supérieure inclusive sur report_date.
limitqueryinteger (1..5000)Par défaut 520.
curl -H "Authorization: Bearer $COT_API_TOKEN" \
  "https://cot-reports.com/api/v1/cot/099741/?from=2024-01-01"
GET/api/v1/cot/{cftc_code}/latest/Auth bearer

Rapport le plus récent pour un marché.

ParamètreInTypeDescription
cftc_code *pathstringCode CFTC du contract market.
familyquerystringPar défaut legacy.
variantqueryfutonly | combinedfutonly ou combined. Par défaut : celle du rapport ; si elle est indiquée, la réponse la nomme.
curl -H "Authorization: Bearer $COT_API_TOKEN" \
  "https://cot-reports.com/api/v1/cot/099741/latest/?variant=combined"
GET/api/v1/cot/{cftc_code}/index/Auth bearer

COT Index style Briese (percentile 0–100) pour le dernier rapport sur la fenêtre de lookback.

ParamètreInTypeDescription
cftc_code *pathstringCode CFTC du contract market.
lookbackqueryinteger (4..520)Fenêtre en semaines. Par défaut 52.
variantqueryfutonly | combinedLa variante du rapport Legacy : futonly (par défaut) ou combined.
curl -H "Authorization: Bearer $COT_API_TOKEN" \
  "https://cot-reports.com/api/v1/cot/099741/index/?lookback=156"
GET/api/v1/demo/Sans auth

Échantillon synthétique statique. Sans auth. 10 req/jour par IP. À utiliser pour valider la forme des réponses avant abonnement.

curl https://cot-reports.com/api/v1/demo/

Serveur MCP (assistants IA)

Les données COT sont aussi servies aux assistants IA via le Model Context Protocol à l'adresse https://mcp.cot-reports.com. Votre clé Data API y fonctionne aussi, comme en-tête Bearer — les mêmes marchés et familles de rapports, décomptés avec vos appels à l'API REST (une clé, un seul forfait : les mêmes limites sur l'API REST et le serveur MCP). Toutes les clés d'un même compte partagent ces limites, sur l'API REST et le serveur MCP ensemble.

claude mcp add --transport http cot-reports https://mcp.cot-reports.com \
  --header "Authorization: Bearer cot_live_<32 hex>"
Configuration pour chaque application IA

Codes d'erreur

codeHTTPQuand
missing_header401L'en-tête Authorization n'a pas été envoyé.
malformed_header401L'en-tête Authorization n'est pas Bearer + cot_live_<32 hex>.
unknown_token401Le token ne correspond à aucune ligne active. Peut avoir été révoqué ou jamais généré.
revoked403Le token existe mais a été révoqué (abonnement annulé, révocation manuelle).
account_suspended403Le compte auquel appartient ce token est suspendu ou fermé. Ses tokens fonctionnent à nouveau lorsque la suspension est levée ; ceux d'un compte fermé sont révoqués avec son abonnement et ne reviennent pas si le compte est restauré.
rate_limited429Limite par minute ou par jour dépassée. L'en-tête Retry-After indique le nombre de secondes à attendre.
invalid_code400cftc_code dans le chemin n'a pas passé la validation alphanumérique.
invalid_family400Paramètre family hors de legacy, disagg, tff, supp.
invalid_from400Le paramètre from n'est pas une date YYYY-MM-DD valide.
invalid_to400Le paramètre to n'est pas une date YYYY-MM-DD valide.
invalid_variant400Le paramètre variant n’est ni futonly ni combined.
variant_not_published400La CFTC ne publie pas cette variante du rapport (supp : Futures & Options Combined uniquement).
variant_unavailable404Cette variante du rapport n’est pas encore disponible.
no_data404Aucun historique pour le marché demandé dans la famille demandée.
db_error500Erreur de base de données interne. Réessayer une fois ; si persistant, contacter le support.
internal500Erreur serveur inattendue. Réessayer une fois ; si persistant, contacter le support.
demo_rate_limited429/api/v1/demo/ limite par hash d'IP (10/jour) atteinte.

Exemple JavaScript

const r = await fetch('https://cot-reports.com/api/v1/cot/099741/index/?lookback=52', {
  headers: { Authorization: `Bearer ${process.env.COT_API_TOKEN}` },
})
if (!r.ok) {
  const { error, message } = await r.json()
  throw new Error(`COT API ${r.status} ${error}: ${message}`)
}
const { cot_index, latest_report_date } = await r.json()
console.log(`COT Index for EURO FX as of ${latest_report_date}: ${cot_index}`)

Spec OpenAPI 3.0

Description lisible par machine de tous les endpoints ci-dessus. Importable dans Postman, Insomnia, OpenAPI Generator, etc.

Télécharger openapi.json

Utilisation acceptable

  • Un token par abonné. Le partage de tokens entre utilisateurs ou systèmes au-delà de ce que couvre votre abonnement est une violation des Conditions ; nous révoquons les tokens présentant des patterns d'IP distribués.
  • Les données CFTC elles-mêmes sont du domaine public (17 USC §105). Vous pouvez construire des produits payants par-dessus, redistribuer les résultats de requêtes, ou alimenter n'importe quel modèle. Nous ne restreignons pas la sémantique des données.
  • Le scraping massif visant à recréer gratuitement le Data Dump est interdit — achetez le Data Dump si c'est votre besoin ; il coûte à partir de 49 $ en achat unique et vous épargne le ballet des rate-limits.
  • Le contournement des limites de taux (rotation d'IPs, tokens parallèles vers le même endpoint) est une violation des Conditions. Nous loguons par token + par hash d'IP exactement pour cette raison.

Conditions complètes : /terms.