XOOMAR

Free COT Data API

CFTC Commitment of Traders positioning for 360+ markets with a current report, 760+ in the archive, as clean JSON. Weekly: the CFTC releases it Friday evening US time, and it's here the same evening. History starts in 2010; the free API returns the last six months.

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

Weekly reports for one market, newest first. History starts in 2010; the free API returns the last six months.

Rate Limit

10 requests a minute without a key, 30 with a free key

CORS

Open (*)

Auth

Optional X-API-Key header

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));

Limits

  • Weekly: released Friday evening US time, here the same evening.
  • Each report covers positions as of the Tuesday of that week (the standard CFTC lag).
  • Financial futures use the Traders in Financial Futures (TFF) groups; commodities use the disaggregated groups (reportType says which).
  • Not every market has history back to 2010; it starts when the CFTC started reporting the market.

Main features

  • Weekly CFTC Commitment of Traders positioning for 360+ futures markets with a current report: currencies, indices, crypto, metals, energy, bonds and agriculture.
  • Long and short for each trader group: dealers, asset managers, leveraged funds and other reportables in financial futures; producers, swap dealers, managed money and other reportables in commodities.
  • History starts in 2010 for the major markets (the free API returns the last six months), from the CFTC's own files, updated the Friday evening the CFTC publishes.
  • One row per market and report date; a revised report replaces the row.

Example

Request

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

Response, live at 2026-10-15 17:11 UTC, trimmed

{
  "data": [
    {
      "reportDate": "2026-10-06",
      "openInterest": 396109,
      "dealerLong": 18860,
      "dealerShort": 38361,
      "assetMgrLong": 14604,
      "assetMgrShort": 239630,
      "levFundLong": 127101,
      "levFundShort": 16114,
      "otherLong": 118302,
      "otherShort": 18954,
      "nonreptLong": 50464,
      "nonreptShort": 16272
    },
    {
      "reportDate": "2026-09-29",
      "openInterest": 406456,
      "dealerLong": 18200,
      "dealerShort": 39463,
      "assetMgrLong": 14835,
      "assetMgrShort": 244539,
      "levFundLong": 131711,
      "levFundShort": 11393,
      "otherLong": 118025,
      "otherShort": 19711,
      "nonreptLong": 48784,
      "nonreptShort": 16449
    }
  ],
  "updatedAt": "2026-10-15T17:11:58.645Z",
  "source": "xoomar.com",
  "docs": "https://xoomar.com/markets/api",
  "license": "https://xoomar.com/terms",
  "attribution": "Credit XOOMAR with a link to the dataset page on xoomar.com when you republish this data",
  "meta": {
    "source": "CFTC",
    "sourceAttribution": "Commitments of Traders data: CFTC.",
    "notice": "10 requests a minute without a key, 30 with a free key. Get a free key at https://xoomar.com/signup?utm_source=api, register your app at https://xoomar.com/developers/register?utm_source=api, and credit the data as \"Data: XOOMAR\" together with the sourceAttribution line."
  }
}

Each row is one weekly report. Gold is a commodity, so levFundLong and levFundShort hold managed money; the net position is long minus short.

What people build with it

Positioning charts

Chart the leveraged fund or managed money net position against its own history, market by market.

FX research

Pull the weekly asset manager and leveraged fund positions for each currency future into your own models.

Group comparisons

Every row carries each trader group, so you can see where leveraged funds and asset managers take opposite sides.

Crypto futures positioning

CME bitcoin and ether futures are in the same feed as every other market.

Fair use

No key needed to start. A 429 response carries a Retry-After header in seconds; cache responses on your side where you can. Need more volume? Write to info@xoomar.com.

Response shape

Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs, license, attribution, meta }. In meta, source names who publishes the data and sourceAttribution is the credit line to show with it. 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
reportTypestringtff (financial futures) or disagg (commodities)
sortRanknumberDisplay order within the group
reportDatestring (date)CFTC report Tuesday, YYYY-MM-DD
openInterestnumber | nullTotal open interest in contracts
dealerLong / dealerShortnumber | nullDealers and intermediaries (tff); producers, merchants, processors and users (disagg)
assetMgrLong / assetMgrShortnumber | nullAsset managers and institutional investors (tff); swap dealers (disagg)
levFundLong / levFundShortnumber | nullLeveraged funds (tff); managed money (disagg)
otherLong / otherShortnumber | nullOther reportable positions
nonreptLong / nonreptShortnumber | nullNon-reportable (small trader) positions

The hub endpoint returns the latest report for every market. The per-market endpoint /api/markets/cot/{slug} returns the weekly history, newest first; from and to select the window. History starts in 2010 for the majors; the free API returns the last six months.

Numeric fields typed string in the table carry exact decimals; parse them with your language's decimal type. No key needed to start: 10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history. A 429 response carries a Retry-After header in seconds. Credit XOOMAR with a link to the dataset page when you republish the data; the data terms are on the terms page.

A free account key raises the limit; send it in an X-API-Key header.

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 are contracts held by leveraged funds in financial futures, or by managed money in commodities. The net position is long minus short; a large positive net means the group holds far more longs than shorts.
When does new data appear?
The CFTC releases the report Friday evening US time, and it's here the same evening. Positions are as of the Tuesday before.
What markets are covered?
360+ markets with a current report (760+ in the archive), including major currencies, equity indices, crypto (BTC, ETH), metals, energy, and agricultural commodities.
Can I backtest with this data?
History starts in 2010 for most markets, at weekly resolution; the free API returns the last six months, and from and to select the window inside it. 10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history.

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