Obtains the CFTC Commitment of Traders (COT) report for the tickers the Toolkit was initialized with. Published weekly by the U.S. Commodity Futures Trading Commission, it breaks down open interest in futures markets by trader type – Non-Commercial (large speculators), Commercial (hedgers) and Non-Reportable (small traders) – and is widely used to gauge positioning and sentiment in commodity, currency, interest rate and stock index futures markets.

Note that this data is only available for CFTC-tracked futures markets. Tickers without a corresponding futures contract (e.g. most individual equities) return no data.

Positioning is usually read from the net position of the non-commercial traders (long minus short), often as a share of open interest and against its own history: an extreme reading means a crowded trade. Commercial traders are mostly hedgers whose positions mirror their physical business, so a large commercial net short in a commodity is normal rather than a bearish view. The report shows the positions of Tuesday and is published on Friday.

Also known as: COT report, CFTC positioning data, speculator/hedger positioning.

Commitment of Traders in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_commitment_of_traders as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(
    ["GC"],
    api_key="FINANCIAL_MODELING_PREP_KEY",
    start_date="2025-01-01",
    end_date="2025-12-31",
)

toolkit.get_commitment_of_traders()[["Non-Commercial Long", "Non-Commercial Short"]].tail()

Or, after setting up the Finance Toolkit MCP, ask:

How many long and short gold futures positions did non-commercial traders hold in the last five weekly reports of 2025?

Which returns:

date Non-Commercial Long Non-Commercial Short
2025-12-02 00:00:00 261331 43771
2025-12-09 00:00:00 268485 44599
2025-12-16 00:00:00 280920 46942
2025-12-23 00:00:00 290161 49461
2025-12-30 00:00:00 275592 44419

Parameters

get_commitment_of_traders accepts the following parameters.

ParameterTypeDescriptionExample
overwriteboolDefines whether to overwrite the existing data. Defaults to False.True
Share