ParseForge Scrapers

CFTC Commitments of Traders Reports Scraper

parseforge/cftc-cot-reports-scraper

Developer toolsOther

Collects CFTC Commitments of Traders reports filtered by commodity name and date range. Returns each report as a flat row with long, short, and spread positions per trader category.

Run this scraper See the API call
Total users
1
Monthly active
0
Total runs
96
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

CFTC Commitments of Traders Reports Scraper

Scrape CFTC Commitments of Traders reports by commodity and date range, up to a million per run. Each report row includes long, short, and spread positions by trader category. Export to CSV, JSON, Excel, or XML.

The CFTC publishes weekly Commitments of Traders reports as a collection of text files, making bulk historical analysis tedious. This Actor reads the public COT data directly, filters it by commodity name and date, and returns each report in a consistent flat schema. No manual downloads or custom parsers required.

Who uses it What they scrape CFTC for
Commodity traders Monitor shifts in managed money long vs short positioning for a specific futures contract.
Macro analysts Aggregate positioning data across metals, energy, and grains to gauge speculative sentiment.
Quant researchers Build a clean time series of legacy and disaggregated COT data for backtesting signals.
Risk managers Track concentration of positions by trader category to identify potential squeeze risks.

What it does

This Actor collects CFTC Commitments of Traders reports filtered by commodity name and date range, and returns each one as a flat row.

  • ๐Ÿ“‹ Flat row output: Every report is returned as one row with long, short, and spread positions per trader category, ready for analysis.
  • ๐Ÿ” Commodity filter: Supply a substring like GOLD, CRUDE OIL, or WHEAT to collect only the contracts you care about.
  • ๐Ÿ“… Date range control: Set an optional start date to pull only the most recent reports or a specific historical window.
  • โšก High throughput: Collect up to a million reports in a single run, limited only by the CFTC's public archive.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with CFTC data

๐Ÿ“ˆ Track speculative positioning.

A commodity trader runs the Actor weekly for GOLD and CRUDE OIL to see whether managed money is adding to longs or shorts before placing a directional bet.

๐Ÿ“Š Build a COT sentiment index.

A quant researcher pulls five years of disaggregated reports across a basket of currencies and grains to construct a normalized sentiment indicator for a systematic strategy.

โš ๏ธ Monitor concentration risk.

A risk manager collects the latest reports for natural gas and corn to check if producer short positions are reaching extremes that historically preceded a short squeeze.

๐ŸŒ Compare cross-asset flows.

A macro analyst scrapes metals, energy, and equity index contracts on the same schedule to overlay positioning changes with price action and macro events.

Why choose this scraper

What you get
No API key Reads the CFTC's public report archive directly, no registration or authentication needed.
Consistent schema Every report, whether legacy or disaggregated, lands in the same flat structure for easy joins.
Bulk history Pull years of weekly positioning data in one run instead of downloading files one by one.
Flexible export Save results as CSV, JSON, Excel, or XML for direct use in Python, R, or a dashboard.

How it compares

Three other Apify actors also scrape CFTC COT data. This one focuses on a simple commodity-name filter and flat row output without requiring market codes or report-type selection.

Feature ParseForge CFTC Commitments of Traders Reports Scraper CFTC Commitments of Traders Scraper CFTC COT Report Scraper - Futures Positioning Data
Commodity name substring filter Yes Not listed Not listed Yes
Date range filter Yes Not listed Not listed Yes
Legacy report format Yes Not listed Not listed Yes
Disaggregated report format Yes Not listed Not listed Yes
Financial futures report format Yes Not listed Not listed Yes
Market code filter Not listed Not listed Not listed Yes

Configure the run

Drive the Actor with a commodity name substring and an optional start date. Filters run as each report is read so only matching records reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "commodityName": "GOLD"
}

A larger pull:

{
  "maxItems": 200,
  "commodityName": "GOLD"
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the CFTC Commitments of Traders Reports Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to CFTC through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/cftc-cot-reports-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your commodityName spelling. The filter is a substring match, so GOLD will find GOLD but GLD will not. Also verify that your startDate is not set after the most recent report date.

The run is taking a long time.

Lower the maxItems value or set a startDate to limit the historical range. The CFTC archive is large, and pulling every report ever published will take time.

Some fields are empty in my output.

Not every trader category appears in every commodity report. Empty fields mean that category had no positions reported for that contract and week.

I got an error about the date format.

The startDate field expects YYYY-MM-DD format, for example 2024-01-15. Make sure you are using hyphens and two-digit month and day values.

The commodity I want is not showing up.

Try a shorter substring. For example, use CRUDE instead of CRUDE OIL, LIGHT. The CFTC contract names can be long, and a broader match may catch it.

FAQ

Question Answer
What is the CFTC Commitments of Traders report? It is a weekly publication from the U.S. Commodity Futures Trading Commission that breaks down open interest in futures and options markets by trader category, such as producers, swap dealers, managed money, and other reportables.
Which report types does this Actor cover? It reads the public COT data files, which include the legacy, disaggregated, and financial futures report formats. Each is returned in a unified flat schema.
Can I filter by a specific commodity? Yes. Use the commodityName input with a substring like GOLD, WHEAT, or NATURAL GAS. The filter is case-insensitive and matches any part of the contract name.
How far back can I get data? The CFTC archive goes back many years. You can set a startDate to pull only recent reports or leave it empty to collect the full available history, up to the maxItems limit you set.
What trader categories are included? The reports include categories such as producer/merchant, swap dealers, managed money, and other reportables, with long, short, and spread positions for each.
Does this include options data? The COT reports cover futures and options combined where the CFTC publishes them. The Actor returns whatever the public file contains for the selected commodity.
How often is the data updated? The CFTC releases new COT reports every Friday afternoon U.S. Eastern Time, reflecting positions as of the prior Tuesday. You can schedule the Actor to run weekly.
Can I get data for multiple commodities in one run? The commodityName filter accepts one substring per run. To collect several commodities, run the Actor multiple times with different inputs or leave the filter empty to get everything.
What output formats are supported? You can export the dataset as CSV, JSON, Excel, or XML from the Apify platform, or access it via the API for direct integration.
Do I need a CFTC account or API key? No. The Actor reads the publicly available report files from the CFTC website, so no registration or credentials are required.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. Commodity Futures Trading Commission. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer How many COT reports to collect per run. 10
commodityName string Filter by commodity name substring (e.g. GOLD, CRUDE OIL, WHEAT). GOLD
startDate string Filter reports on/after this date (YYYY-MM-DD). Optional. not set

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~cftc-cot-reports-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run CFTC Commitments of Traders Reports Scraper on Apify All scrapers