Vai al contenuto principale
COT-Reports
COT-Reports.com
COT-Reports
COT-Reports
GRATIS · RIFERIMENTO API REST

COT Data API

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

API REST per l'intero dataset CFTC Commitments of Traders. Endpoint disponibili, autenticazione, rate limit e codici di errore — tutto ciò che serve per integrare.

L'API COT Data espone lo stesso dataset di cot-reports.com: ogni mercato CFTC, ogni famiglia di report (Legacy, Disaggregato, TFF, Supplementare), colonne normalizzate, storico settimanale. Abbonati per generare un token; auth bearer su ogni richiesta; rate limit qui sotto.

Questo riferimento è solo in inglese — il resto del sito è localizzato in 6 lingue, ma la superficie API (nomi degli endpoint, sintassi dei parametri, codici di errore) è condivisa tra le lingue. Gli esempi sono in curl; gli snippet JavaScript funzionano in Node 18+ e in qualsiasi browser moderno.

Autenticazione

Ogni richiesta tranne /api/v1/demo richiede un token bearer. Abbonati su cot-reports.com/api, genera un token da /account/api, e includilo nell'header Authorization.

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

I token sono di 36 caratteri totali (prefisso cot_live_ + 32 caratteri hex). Il token completo viene mostrato esattamente una volta alla creazione; conserviamo solo un hash SHA-256. I token persi non sono recuperabili — revoca il vecchio e generane uno nuovo.

Rate limit

PianoAl minutoAl giornoNote
Entry (9.99 $/mese)60500Piano predefinito con abbonamento.
Demo (senza auth)510Per IP. Risposta sintetica statica.

Ogni risposta contiene X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset per la più stretta delle due finestre, più chiavi per finestra (-Minute / -Day) per telemetria più ricca. Su 429, Retry-After indica i secondi di attesa.

Endpoint

GET/api/v1/marketsAuth bearer

Elenca tutti i mercati CFTC nel dataset, con metadati e appartenenza alle famiglie di report.

ParametroInTipoDescrizione
categoryquerystringMatch esatto sul campo metadata category.
trackedquerybooleanFiltra al set curato di mercati "popolari".
familyquerystringUno tra legacy, disagg, tff, supp.
searchquerystringRicerca per sottostringa su market_name (case-insensitive).
limitqueryinteger (1..2000)Predefinito 500.
offsetqueryintegerOffset di paginazione, predefinito 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

Storico settimanale per un mercato. Predefinito: ultime 520 settimane (10 anni).

ParametroInTipoDescrizione
cftc_code *pathstringCodice CFTC del contract market, es. 099741 per EURO FX.
familyquerystringPredefinito legacy. Uno tra legacy, disagg, tff, supp.
fromqueryYYYY-MM-DDLimite inferiore inclusivo su report_date.
toqueryYYYY-MM-DDLimite superiore inclusivo su report_date.
limitqueryinteger (1..5000)Predefinito 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}/latestAuth bearer

Report più recente per un mercato.

ParametroInTipoDescrizione
cftc_code *pathstringCodice CFTC del contract market.
familyquerystringPredefinito legacy.
curl -H "Authorization: Bearer $COT_API_TOKEN" \
  "https://cot-reports.com/api/v1/cot/099741/latest"
GET/api/v1/cot/{cftc_code}/indexAuth bearer

COT Index in stile Briese (percentile 0–100) per l'ultimo report rispetto alla finestra di lookback.

ParametroInTipoDescrizione
cftc_code *pathstringCodice CFTC del contract market.
lookbackqueryinteger (4..520)Finestra in settimane. Predefinito 52.
curl -H "Authorization: Bearer $COT_API_TOKEN" \
  "https://cot-reports.com/api/v1/cot/099741/index?lookback=156"
GET/api/v1/demoSenza auth

Campione sintetico statico. Senza auth. 10 req/giorno per IP. Usalo per validare la forma delle risposte prima di abbonarti.

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

Codici di errore

codiceHTTPQuando
missing_header401L'header Authorization non è stato inviato.
malformed_header401L'header Authorization non è Bearer + cot_live_<32 hex>.
unknown_token401Il token non corrisponde a nessuna riga attiva. Potrebbe essere stato revocato o mai generato.
revoked403Il token esiste ma è stato revocato (abbonamento cancellato, revoca manuale).
rate_limited429Limite al minuto o al giorno superato. L'header Retry-After indica i secondi di attesa.
invalid_code400cftc_code nel path non ha passato la validazione alfanumerica.
invalid_family400Parametro family non in legacy, disagg, tff, supp.
invalid_from400Parametro from non è una data YYYY-MM-DD valida.
invalid_to400Parametro to non è una data YYYY-MM-DD valida.
no_data404Nessuno storico per il mercato richiesto nella famiglia richiesta.
db_error500Errore database interno. Riprovare una volta; se persiste, contattare il supporto.
internal500Errore server inatteso. Riprovare una volta; se persiste, contattare il supporto.
demo_rate_limited429/api/v1/demo limite per hash IP (10/giorno) raggiunto.

Esempio 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

Descrizione machine-readable di ogni endpoint sopra. Importabile in Postman, Insomnia, OpenAPI Generator, ecc.

Scarica openapi.json

Uso consentito

  • Un token per abbonato. La condivisione di token tra utenti o sistemi oltre quanto coperto dall'abbonamento è una violazione dei Termini; revochiamo i token che mostrano pattern di IP distribuiti.
  • I dati CFTC stessi sono di pubblico dominio (17 USC §105). Puoi costruire prodotti a pagamento sopra, ridistribuire risultati di query, o alimentare qualsiasi modello. Non restringiamo la semantica dei dati.
  • Lo scraping massivo per ricreare gratuitamente il Data Dump è vietato — compra il Data Dump se è ciò di cui hai bisogno; costa 49 $ una tantum e ti risparmia il balletto dei rate-limit.
  • L'aggiramento dei rate limit (IP rotanti, token paralleli verso lo stesso endpoint) viola i Termini. Loggiamo per token + per hash IP esattamente per questo motivo.

Termini completi: /terms.