XOOMAR

Free COT Data API

CFTC Commitment of Traders positioning data for 90+ markets. History back to 2010. The CFTC publishes this weekly as CSVs; we parse and serve it as clean JSON for free. Others charge $30-100/month for the same data.

Endpoints

GET
/api/markets/cot

Latest COT report for all tracked markets.

GET
/api/markets/cot/{slug}?from=YYYY-MM-DD&to=YYYY-MM-DD

Historical weekly reports for a specific market.

Rate Limit

30 req/min/IP

CORS

Open (*)

Auth

None

Examples

curl

curl https://xoomar.com/api/markets/cot/euro-fx

Python

import requests

r = requests.get("https://xoomar.com/api/markets/cot/euro-fx")
for report in r.json()["data"][:5]:
    net = report["levFundLong"] - report["levFundShort"]
    print(f"{report['reportDate']}: lev funds net {net:+,}")

JavaScript

const res = await fetch("https://xoomar.com/api/markets/cot/euro-fx");
const { data } = await res.json();
console.table(data.slice(0, 5));

Honest Limits

  • Data updates weekly (released Friday evening US time, we fetch within hours).
  • Report covers positions as of Tuesday of that week (standard CFTC lag).
  • We parse the Traders in Financial Futures (TFF) report. Disaggregated data available for some markets.
  • Not all markets have complete history back to 2010; depends on when the CFTC started reporting them.

Main Features

  • Weekly CFTC Commitment of Traders positioning for 700+ futures markets: currencies, indices, crypto, metals, energy, bonds, and agriculture.
  • Traders in Financial Futures (TFF) breakdown: dealer, asset manager, leveraged funds, and other reportables, long and short for each.
  • History back to 2010 for major markets, parsed from official CFTC files within hours of the Friday release.
  • COT Index (current net position as a percentile of its 1-year range) precomputed on our market pages from this same data.
  • Byte-identical with the CFTC source: we verified our euro-fx row matches the official FinFutWk.txt field for field.

How It Works

The CFTC publishes every Friday at 3:30pm ET; we parse and serve it the same evening.

1

Friday ingestion

A job downloads the official TFF and disaggregated CSV files from cftc.gov after the release, with a Saturday retry in case of publishing delays.

2

Classification

Each market is classified into one of eight groups with a word-boundary ruleset (so NIKKEI YEN DENOM lands in indices, not currencies) and majors are pinned with sort ranks.

3

Upsert and history

Rows are upserted by market and report date, making the pipeline idempotent. History reaches back to 2010 for the majors.

Real Example

Request

curl "https://xoomar.com/api/markets/cot/gold"

Response (captured live, trimmed)

{
  "data": [
    {
      "id": 204055,
      "marketId": "bc1534ae-2128-42ee-94a1-55c374c825ba",
      "reportDate": "2026-06-02",
      "openInterest": 326052,
      "dealerLong": 10275,
      "dealerShort": 30429,
      "assetMgrLong": 213696,
      "assetMgrShort": 16071,
      "levFundLong": 17188,
      "levFundShort": 12456,
      "otherLong": 12888,
      "otherShort": 9993,
      "nonreptLong": 312721,
      "nonreptShort": 43656,
      "raw": {
        "col_0": "GOLD - COMMODITY EXCHANGE INC.",
        "col_1": "260602",
        "col_2": "2026-06-02",
        "col_3": "088691",
        "col_4": "CMX",
        "col_5": "01",
        "col_6": "088",
        "col_7": "326052",
        "col_8": "10275",
        "col_9": "30429",
        "col_10": "27505",
        "col_11": "213696",
        "col_12": "16071",
        "col_13": "129367",
        "col_14": "17188",
        "col_15": "12456",
        "col_16": "76729",
        "col_17": "12888",
        "col_18": "9993",
        "col_19": "282396",
        "col_20": "312721",
        "col_21": "43656",
        "col_22": "13331",

Each row is one weekly report. Compute net positioning as levFundLong minus levFundShort; asset managers are the slower institutional money.

What People Build With This

Smart money tracking

Leveraged fund net positioning at a 1-year extreme has historically marked crowded trades in FX and metals. The COT Index makes extremes comparable across markets.

FX bias models

Many systematic FX traders only take longs when asset managers are net long. One call per week per pair feeds the model.

Divergence research

When leveraged funds and asset managers position against each other, volatility tends to follow. Both camps are in every row.

Crypto institutional read

CME Bitcoin COT is one of the few windows into regulated institutional crypto positioning, and it is in here alongside everything else.

Pricing and Fair Use

Free. No API key, no signup, no credit card. We rate limit per IP to keep the service fast for everyone; a 429 response carries a Retry-After header telling you exactly when to retry. Cache responses on your side where you can. If you are building something that needs guaranteed volume, contact us first instead of hammering the endpoint.

Response Shape

Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs }. The data field is an array of records with these fields:

FieldTypeDescription
slugstringMarket slug for URLs (euro-fx, gold...)
namestringCFTC contract market name
groupstringcurrencies, indices, crypto, metals, energy, bonds, agriculture, other
reportDatestring (date)CFTC report Tuesday, YYYY-MM-DD
openInterestnumber | nullTotal open interest in contracts
dealerLong / dealerShortnumber | nullDealer/intermediary positions
assetMgrLong / assetMgrShortnumber | nullAsset manager and institutional positions
levFundLong / levFundShortnumber | nullLeveraged funds (hedge fund) positions

The hub endpoint returns the latest report for every market. The per-market endpoint /api/markets/cot/{slug} returns full weekly history, newest first, back to 2010 for majors.

Numeric values arrive as strings where precision matters (prices, rates); parse with your language's decimal type for accounting-grade math. Rate limiting is fair-use per IP; a 429 response includes a Retry-After header. No authentication, no API key, no signup. Attribution is appreciated: xoomar.com/markets.

Frequently Asked Questions

What is COT data?
The Commitment of Traders report is published weekly by the CFTC. It shows how different trader categories (dealers, asset managers, leveraged funds) are positioned in futures markets.
How do I read leveraged fund positioning?
levFundLong and levFundShort show the number of contracts held. Net = long - short. A large positive net means hedge funds are collectively bullish.
When does new data appear?
The CFTC releases data Friday evening. We parse it within hours. Report positions are as of the prior Tuesday.
What markets are covered?
90+ markets including major currencies, equity indices, crypto (BTC, ETH), metals, energy, and agricultural commodities.
Can I backtest with this data?
Yes. History goes back to 2010 for most markets. Weekly resolution. Use the from/to parameters to paginate.

Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.