Data Source
CFTC Commitments of Traders (COT) Data API
Weekly positioning data from the CFTC — managed money, commercial, and non-commercial positions for energy, grains, and softs.
What is the COT Report?
The CFTC publishes the Commitments of Traders (COT) report every Friday at 3:30pm ET, covering positions held as of the previous Tuesday. It breaks down open interest by trader category: commercial hedgers, non-commercial speculators, and managed money (large funds).
The managed money net position — long minus short — is the most watched figure. Extreme net-long or net-short readings are often used as contrarian signals, and shifts in positioning often precede price moves. See the COT Guide for a deeper explanation of how to use this data.
Update Schedule
| Report | As-of Date | Release Day | Release Time | API Lag |
|---|---|---|---|---|
| CFTC COT (Legacy) | Previous Tuesday | Friday | 3:30pm ET | < 30 minutes |
API Endpoint
COT data is available via the dedicated CFTC endpoint. Filter by commodity slug:
# All COT data for crude oil (last 52 weeks)
curl "https://commodityfundamentals.com/api/v1/commodities/crude-oil/cot?limit=52" \
-H "Authorization: Bearer YOUR_API_KEY"
# Latest report only
curl "https://commodityfundamentals.com/api/v1/commodities/crude-oil/cot?limit=1" \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
import pandas as pd
API_KEY = "your_api_key"
BASE_URL = "https://commodityfundamentals.com/api/v1"
resp = requests.get(
f"{BASE_URL}/commodities/crude-oil/cot",
headers={"Authorization": f"Bearer {API_KEY}"},
params={"limit": 104} # 2 years of weekly data
)
records = resp.json()["data"]
df = pd.DataFrame(records)
# Net managed money position
df["net_mm"] = df["managed_money_long"] - df["managed_money_short"]
print(df[["date", "net_mm"]].head())
Covered Commodities
COT data is available for all commodities in our coverage universe. See Data Coverage for the full list, including CFTC contract codes.
Energy (crude oil, natural gas, heating oil, gasoline), grains (corn, soybeans, wheat, soybean oil, soybean meal), softs (cotton, coffee, sugar, cocoa).
What Traders Use This Data For
- Tracking managed money net position as a sentiment/crowding indicator
- Identifying extreme positioning for contrarian mean-reversion signals
- Monitoring commercial hedger positioning for supply/demand signals
- Building multi-commodity positioning dashboards for portfolio risk
- Backtesting COT-based systematic strategies across energy and agricultural markets