# CFTC — Zapi reference > Commitments of Traders: posisi long/short per kategori pelaku di tiap pasar berjangka Amerika, terbit tiap Jumat untuk posisi hari Selasa. **Base URL:** `https://api.zapi.ink` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a free key at https://zapi.ink/dashboard/keys. **Response envelope:** `{ content, message, errors }` **Rate limit:** 60 req/min on free tier. **Related:** - Detail page: https://zapi.ink/api/finance/cftc - Endpoint catalog: https://zapi.ink/category/finance - Concise index: https://zapi.ink/llms.txt - Full reference: https://zapi.ink/llms-full.txt --- ## CFTC **Category:** finance · **Slug:** `cftc` **Detail page:** https://zapi.ink/api/finance/cftc Commitments of Traders: posisi long/short per kategori pelaku di tiap pasar berjangka Amerika, terbit tiap Jumat untuk posisi hari Selasa. **Tags:** cftc, cot, futures, positioning, finance ### Commitments of Traders Baris COT terbaru, bisa disaring per nama kontrak dan tanggal laporan. Net non-commercial dan commercial dihitung di sini. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/commitments` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `market` | string | query | no | Match against the contract name (case-insensitive substring). | | `from` | string | query | no | Earliest report date (YYYY-MM-DD). | | `length` | number | query | no | Rows to return (default 50, max 500) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:cftc/commitments?market=WHEAT&from=2026-01-01&length=50" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:cftc/commitments?market=WHEAT&from=2026-01-01&length=50", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:cftc/commitments?market=WHEAT&from=2026-01-01&length=50", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "from": "2026-01-01", "count": 50, "items": [ { "date": "2026-08-11", "market": "GULF # 6 FUEL OIL CRACK", "exchange": "GULF # 6 FUEL OIL CRACK - NEW YORK MERCANTILE EXCHANGE", "commodity": "FUEL OIL/CRUDE OIL", "openInterest": 10102, "commercialNet": -263, "commercialLong": 7142, "commercialShort": 7405, "nonCommercialNet": 253, "nonCommercialLong": 1405, "nonReportableLong": 10, "nonCommercialShort": 1152, "nonReportableShort": 0, "nonCommercialSpread": 1545 }, { "date": "2026-08-11", "market": "GULF JET NY HEAT OIL SPR", "exchange": "GULF JET NY HEAT OIL SPR - NEW YORK MERCANTILE EXCHANGE", "commodity": "JET FUEL/HEATING OIL", "openInterest": 12106, "commercialNet": -290, "commercialLong": 11816, "commercialShort": 12106, "nonCommercialNet": 100, "nonCommercialLong": 100, "nonReportableLong": 190, "nonCommercialShort": 0, "nonReportableShort": 0, "nonCommercialSpread": 0 }, { "date": "2026-08-11", "market": "PGP PROPYLENE (PCW) CAL", "exchange": "PGP PROPYLENE (PCW) CAL - NEW YORK MERCANTILE EXCHANGE", "commodity": "PROPYLENE", "openInterest": 7012, "commercialNet": 3127, "commercialLong": 4028, "commercialShort": 901, "nonCommercialNet": -3181, "nonCommercialLong": 1841, "nonReportableLong": 198, "nonCommercialShort": 5022, "nonReportableShort": 144, "nonCommercialSpread": 945 }, { "date": "2026-08-11", "market": "7 YEAR ERIS SOFR SWAP", "exchange": "7 YEAR ERIS SOFR SWAP - CHICAGO BOARD OF TRADE", "commodity": "2-7-YEAR INTEREST RATE SWAPS ERIS & MAC", "openInterest": 33099, "commercialNet": -6584, "commercialLong": 375, "commercialShort": 6959, "nonCommercialNet": 6582, "nonCommercialLong": 16239, "nonReportableLong": 18, "nonCommercialShort": 9657, "nonReportableShort": 16, "nonCommercialSpread": 16467 }, { "date": "2026-08-11", "market": "5 YEAR ERIS SOFR SWAP", "exchange": "5 YEAR ERIS SOFR SWAP - CHICAGO BOARD OF TRADE", "commodity": "2-7-YEAR INTEREST RATE SWAPS ERIS & MAC", "openInterest": 177800, "commercialNet": -16936, "commercialLong": 27204, "commercialShort": 44140, "nonCommercialNet": 16990, "nonCommercialLong": 103512, "nonReportableLong": 34, "nonCommercialShort": 86522, "nonReportableShort": 88, "nonCommercialSpread": 47050 }, { "date": "2026-08-11", "market": "3 YEAR ERIS SOFR SWAP", "exchange": "3 YEAR ERIS SOFR SWAP - CHICAGO BOARD OF TRADE", "commodity": "2-7-YEAR INTEREST RATE SWAPS ERIS & MAC", "openInterest": 71913, "commercialNet": -18005, "commercialLong": 4500, "commercialShort": 22505, "nonCommercialNet": 18049, "nonCommercialLong": 53345, "nonReportableLong": 10, "nonCommercialShort": 35296, "nonReportableShort": 54, "nonCommercialSpread": 14058 } ], "source": "cftc" } ``` --- ### Disaggregated Commitments of Traders, disaggregated report — producer/merchant, swap dealer, - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/disaggregated` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `market` | string | query | no | Match against the contract name (case-insensitive substring). | | `code` | string | query | no | Exact CFTC contract market code. The `markets` endpoint lists codes by commodity group. | | `from` | string | query | no | Earliest report date, YYYY-MM-DD. History runs from 2006-06-13. | | `to` | string | query | no | Latest report date, YYYY-MM-DD | | `combined` | enum(true|false) | query | no | `true` for the futures-and-options combined report, `false` (default) for futures only. | | `subgroup` | string | query | no | CFTC subgroup code, e.g. A10 grains, N16 currencies. Omit for every subgroup. | | `fields` | string | query | no | Comma-separated column groups: `positions`, `changes`, `percent`, `traders`, `concentration`, `maturity`. Default `positions`. Use `all` for every one of the 191 published columns — slower and much larger. | | `page` | number | query | no | Page number, 1-based. Default 1 | | `length` | number | query | no | Rows per page (default 50, max 1000) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:cftc/disaggregated?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:cftc/disaggregated?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:cftc/disaggregated?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "to": null, "code": null, "from": null, "page": 1, "count": 50, "items": [ { "code": "001602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "WHEAT-SRW", "exchange": "WHEAT-SRW - CHICAGO BOARD OF TRADE", "subgroup": "A10", "commodity": "WHEAT", "openInterest": 475566, "swapDealerNet": 75386, "swapDealerLong": 89805, "managedMoneyNet": -33400, "swapDealerShort": 14419, "managedMoneyLong": 78009, "swapDealerSpread": 17099, "managedMoneyShort": 111409, "nonReportableLong": 38571, "managedMoneySpread": 112454, "nonReportableShort": 36415, "otherReportableNet": 8490, "otherReportableLong": 36970, "producerMerchantNet": -52632, "totalReportableLong": 436995, "otherReportableShort": 28480, "producerMerchantLong": 64948, "totalReportableShort": 439151, "otherReportableSpread": 37710, "producerMerchantShort": 117580 }, { "code": "001612", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "WHEAT-HRW", "exchange": "WHEAT-HRW - CHICAGO BOARD OF TRADE", "subgroup": "A10", "commodity": "WHEAT", "openInterest": 305725, "swapDealerNet": 79057, "swapDealerLong": 80670, "managedMoneyNet": 25606, "swapDealerShort": 1613, "managedMoneyLong": 63122, "swapDealerSpread": 6701, "managedMoneyShort": 37516, "nonReportableLong": 22400, "managedMoneySpread": 69568, "nonReportableShort": 20540, "otherReportableNet": -12392, "otherReportableLong": 8810, "producerMerchantNet": -94131, "totalReportableLong": 283325, "otherReportableShort": 21202, "producerMerchantLong": 27784, "totalReportableShort": 285185, "otherReportableSpread": 26670, "producerMerchantShort": 121915 }, { "code": "001626", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "WHEAT-HRSpring", "exchange": "WHEAT-HRSpring - MIAX FUTURES EXCHANGE", "subgroup": "A10", "commodity": "WHEAT", "openInterest": 81898, "swapDealerNet": 7571, "swapDealerLong": 7571, "managedMoneyNet": 9879, "swapDealerShort": 0, "managedMoneyLong": 17591, "swapDealerSpread": 127, "managedMoneyShort": 7712, "nonReportableLong": 8649, "managedMoneySpread": 4941, "nonReportableShort": 7719, "otherReportableNet": -220, "otherReportableLong": 1447, "producerMerchantNet": -18160, "totalReportableLong": 73249, "otherReportableShort": 1667, "producerMerchantLong": 39913, "totalReportableShort": 74179, "otherReportableSpread": 1659, "producerMerchantShort": 58073 }, { "code": "002602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "CORN", "exchange": "CORN - CHICAGO BOARD OF TRADE", "subgroup": "A10", "commodity": "CORN", "openInterest": 1684065, "swapDealerNet": 327540, "swapDealerLong": 351769, "managedMoneyNet": 125875, "swapDealerShort": 24229, "managedMoneyLong": 312829, "swapDealerSpread": 14303, "managedMoneyShort": 186954, "nonReportableLong": 136706, "managedMoneySpread": 187183, "nonReportableShort": 183490, "otherReportableNet": 119037, "otherReportableLong": 173443, "producerMerchantNet": -525668, "totalReportableLong": 1547359, "otherReportableShort": 54406, "producerMerchantLong": 335547, "totalReportableShort": 1500575, "otherReportableSpread": 172285, "producerMerchantShort": 861215 }, { "code": "005602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "SOYBEANS", "exchange": "SOYBEANS - CHICAGO BOARD OF TRADE", "subgroup": "A30", "commodity": "SOYBEANS", "openInterest": 982903, "swapDealerNet": 112712, "swapDealerLong": 145994, "managedMoneyNet": 109109, "swapDealerShort": 33282, "managedMoneyLong": 169712, "swapDealerSpread": 13735, "managedMoneyShort": 60603, "nonReportableLong": 46683, "managedMoneySpread": 142155, "nonReportableShort": 66994, "otherReportableNet": 50836, "otherReportableLong": 82873, "producerMerchantNet": -252346, "totalReportableLong": 936220, "otherReportableShort": 32037, "producerMerchantLong": 311042, "totalReportableShort": 915909, "otherReportableSpread": 70709, "producerMerchantShort": 563388 }, { "code": "005603", "date": "2026-08-11", "units": "(Contracts of 1,000 Bushels)", "market": "MINI SOYBEANS", "exchange": "MINI SOYBEANS - CHICAGO BOARD OF TRADE", "subgroup": "A30", "commodity": "SOYBEANS", "openInterest": 26470, "swapDealerNet": 0, "swapDealerLong": 0, "managedMoneyNet": 0, "swapDealerShort": 0, "managedMoneyLong": 0, "swapDealerSpread": 0, "managedMoneyShort": 0, "nonReportableLong": 4282, "managedMoneySpread": 0, "nonReportableShort": 13281, "otherReportableNet": 20151, "otherReportableLong": 21792, "producerMerchantNet": -11152, "totalReportableLong": 22188, "otherReportableShort": 1641, "producerMerchantLong": 7, "totalReportableShort": 13189, "otherReportableSpread": 389, "producerMerchantShort": 11159 } ], "total": 183676, "fields": [ "positions" ], "market": null, "dataset": "disaggregated", "hasMore": true, "combined": false, "nextPage": 2, "provider": "cftc", "subgroup": null } ``` --- ### Legacy Commitments of Traders, legacy report — the non-commercial / commercial split. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/legacy` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `market` | string | query | no | Match against the contract name (case-insensitive substring). | | `code` | string | query | no | Exact CFTC contract market code. The `markets` endpoint lists codes by commodity group. | | `from` | string | query | no | Earliest report date, YYYY-MM-DD. History runs from 1986-01-15. | | `to` | string | query | no | Latest report date, YYYY-MM-DD | | `combined` | enum(true|false) | query | no | `true` for the futures-and-options combined report, `false` (default) for futures only. | | `fields` | string | query | no | Comma-separated column groups: `positions`, `changes`, `percent`, `traders`, `concentration`, `maturity`. Default `positions`. Use `all` for every one of the 130 published columns — slower and much larger. | | `page` | number | query | no | Page number, 1-based. Default 1 | | `length` | number | query | no | Rows per page (default 50, max 1000) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:cftc/legacy?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&fields=positions%2Ctraders&page=1&length=50" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:cftc/legacy?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&fields=positions%2Ctraders&page=1&length=50", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:cftc/legacy?market=GOLD&code=088691&from=2026-01-01&to=2026-08-11&combined=false&fields=positions%2Ctraders&page=1&length=50", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "to": null, "code": null, "from": null, "page": 1, "count": 50, "items": [ { "code": "001602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "WHEAT-SRW", "exchange": "WHEAT-SRW - CHICAGO BOARD OF TRADE", "commodity": "WHEAT", "openInterest": 475566, "commercialNet": 22754, "commercialLong": 171852, "commercialShort": 149098, "nonCommercialNet": -24910, "nonCommercialLong": 114979, "nonReportableLong": 38571, "nonCommercialShort": 139889, "nonReportableShort": 36415, "nonCommercialSpread": 150164, "totalReportableLong": 436995, "totalReportableShort": 439151 }, { "code": "001612", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "WHEAT-HRW", "exchange": "WHEAT-HRW - CHICAGO BOARD OF TRADE", "commodity": "WHEAT", "openInterest": 305725, "commercialNet": -15074, "commercialLong": 115155, "commercialShort": 130229, "nonCommercialNet": 13214, "nonCommercialLong": 71932, "nonReportableLong": 22400, "nonCommercialShort": 58718, "nonReportableShort": 20540, "nonCommercialSpread": 96238, "totalReportableLong": 283325, "totalReportableShort": 285185 }, { "code": "001626", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "WHEAT-HRSpring", "exchange": "WHEAT-HRSpring - MIAX FUTURES EXCHANGE", "commodity": "WHEAT", "openInterest": 81898, "commercialNet": -10589, "commercialLong": 47611, "commercialShort": 58200, "nonCommercialNet": 9659, "nonCommercialLong": 19038, "nonReportableLong": 8649, "nonCommercialShort": 9379, "nonReportableShort": 7719, "nonCommercialSpread": 6600, "totalReportableLong": 73249, "totalReportableShort": 74179 }, { "code": "002602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "CORN", "exchange": "CORN - CHICAGO BOARD OF TRADE", "commodity": "CORN", "openInterest": 1684065, "commercialNet": -198128, "commercialLong": 701619, "commercialShort": 899747, "nonCommercialNet": 244912, "nonCommercialLong": 486272, "nonReportableLong": 136706, "nonCommercialShort": 241360, "nonReportableShort": 183490, "nonCommercialSpread": 359468, "totalReportableLong": 1547359, "totalReportableShort": 1500575 }, { "code": "005602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "SOYBEANS", "exchange": "SOYBEANS - CHICAGO BOARD OF TRADE", "commodity": "SOYBEANS", "openInterest": 982903, "commercialNet": -139634, "commercialLong": 470771, "commercialShort": 610405, "nonCommercialNet": 159945, "nonCommercialLong": 252585, "nonReportableLong": 46683, "nonCommercialShort": 92640, "nonReportableShort": 66994, "nonCommercialSpread": 212864, "totalReportableLong": 936220, "totalReportableShort": 915909 }, { "code": "005603", "date": "2026-08-11", "units": "(Contracts of 1,000 Bushels)", "market": "MINI SOYBEANS", "exchange": "MINI SOYBEANS - CHICAGO BOARD OF TRADE", "commodity": "SOYBEANS", "openInterest": 26470, "commercialNet": -11152, "commercialLong": 7, "commercialShort": 11159, "nonCommercialNet": 20151, "nonCommercialLong": 21792, "nonReportableLong": 4282, "nonCommercialShort": 1641, "nonReportableShort": 13281, "nonCommercialSpread": 389, "totalReportableLong": 22188, "totalReportableShort": 13189 } ], "total": 287411, "fields": [ "positions" ], "market": null, "dataset": "legacy", "hasMore": true, "combined": false, "nextPage": 2, "provider": "cftc" } ``` --- ### Markets The contract catalog behind every COT report: which commodity a contract market - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/markets` - **Cache TTL:** 86400s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Match against the commodity name (case-insensitive substring). | | `group` | enum(AGRICULTURE|NATURAL RESOURCES|FINANCIAL INSTRUMENTS) | query | no | Commodity group to keep | | `subgroup` | string | query | no | Commodity subgroup to keep, e.g. PRECIOUS METALS, GRAINS, CURRENCIES. | | `code` | string | query | no | Exact CFTC contract market code. | | `page` | number | query | no | Page number, 1-based. Default 1 | | `length` | number | query | no | Rows per page (default 50, max 1000) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:cftc/markets?query=GOLD&group=NATURAL%20RESOURCES&subgroup=PRECIOUS%20METALS&code=088691&page=1&length=50" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:cftc/markets?query=GOLD&group=NATURAL%20RESOURCES&subgroup=PRECIOUS%20METALS&code=088691&page=1&length=50", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:cftc/markets?query=GOLD&group=NATURAL%20RESOURCES&subgroup=PRECIOUS%20METALS&code=088691&page=1&length=50", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "code": null, "page": 1, "count": 50, "group": null, "items": [ { "code": "001601", "group": "AGRICULTURE", "subgroup": "GRAINS", "commodity": "WHEAT" }, { "code": "001602", "group": "AGRICULTURE", "subgroup": "GRAINS", "commodity": "WHEAT" }, { "code": "001603", "group": "AGRICULTURE", "subgroup": "GRAINS", "commodity": "WHEAT" }, { "code": "001604", "group": "AGRICULTURE", "subgroup": "GRAINS", "commodity": "WHEAT" }, { "code": "001605", "group": "AGRICULTURE", "subgroup": "GRAINS", "commodity": "WHEAT" }, { "code": "001606", "group": "AGRICULTURE", "subgroup": "GRAINS", "commodity": "WHEAT" } ], "query": null, "total": 31419, "dataset": "markets", "hasMore": true, "nextPage": 2, "provider": "cftc", "subgroup": null } ``` --- ### Supplemental Supplemental Commitments of Traders — the commodity index trader split. - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/supplemental` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `market` | string | query | no | Match against the contract name (case-insensitive substring). | | `code` | string | query | no | Exact CFTC contract market code. The `markets` endpoint lists codes by commodity group. | | `from` | string | query | no | Earliest report date, YYYY-MM-DD. History runs from 2006-01-03. | | `to` | string | query | no | Latest report date, YYYY-MM-DD | | `fields` | string | query | no | Comma-separated column groups: `positions`, `changes`, `percent`, `traders`. Default `positions`. Use `all` for every one of the 57 published columns — slower and much larger. | | `page` | number | query | no | Page number, 1-based. Default 1 | | `length` | number | query | no | Rows per page (default 50, max 1000) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:cftc/supplemental?market=WHEAT&code=001602&from=2026-01-01&to=2026-08-11&fields=positions%2Ctraders&page=1&length=50" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:cftc/supplemental?market=WHEAT&code=001602&from=2026-01-01&to=2026-08-11&fields=positions%2Ctraders&page=1&length=50", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:cftc/supplemental?market=WHEAT&code=001602&from=2026-01-01&to=2026-08-11&fields=positions%2Ctraders&page=1&length=50", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "to": null, "code": null, "from": null, "page": 1, "count": 50, "items": [ { "code": "001602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "WHEAT-SRW", "exchange": "WHEAT-SRW - CHICAGO BOARD OF TRADE", "commodity": "WHEAT", "openInterest": 581798, "commercialNet": -23057, "commercialLong": 120646, "indexTraderNet": 68913, "commercialShort": 143703, "indexTraderLong": 142641, "indexTraderShort": 73728, "nonCommercialNet": -49398, "nonCommercialLong": 56834, "nonReportableLong": 42424, "nonCommercialShort": 106232, "nonReportableShort": 38881, "nonCommercialSpread": 219254, "totalReportableLong": 539374, "totalReportableShort": 542917 }, { "code": "001612", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "WHEAT-HRW", "exchange": "WHEAT-HRW - CHICAGO BOARD OF TRADE", "commodity": "WHEAT", "openInterest": 345187, "commercialNet": -68743, "commercialLong": 63494, "indexTraderNet": 65843, "commercialShort": 132237, "indexTraderLong": 90389, "indexTraderShort": 24546, "nonCommercialNet": 900, "nonCommercialLong": 48119, "nonReportableLong": 24416, "nonCommercialShort": 47219, "nonReportableShort": 22418, "nonCommercialSpread": 118767, "totalReportableLong": 320771, "totalReportableShort": 322769 }, { "code": "002602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "CORN", "exchange": "CORN - CHICAGO BOARD OF TRADE", "commodity": "CORN", "openInterest": 2268704, "commercialNet": -332403, "commercialLong": 661727, "indexTraderNet": 338165, "commercialShort": 994130, "indexTraderLong": 463958, "indexTraderShort": 125793, "nonCommercialNet": 38993, "nonCommercialLong": 242139, "nonReportableLong": 184239, "nonCommercialShort": 203146, "nonReportableShort": 228995, "nonCommercialSpread": 716640, "totalReportableLong": 2084464, "totalReportableShort": 2039709 }, { "code": "005602", "date": "2026-08-11", "units": "(CONTRACTS OF 5,000 BUSHELS)", "market": "SOYBEANS", "exchange": "SOYBEANS - CHICAGO BOARD OF TRADE", "commodity": "SOYBEANS", "openInterest": 1203233, "commercialNet": -200938, "commercialLong": 451184, "indexTraderNet": 177979, "commercialShort": 652122, "indexTraderLong": 218941, "indexTraderShort": 40962, "nonCommercialNet": 47691, "nonCommercialLong": 140940, "nonReportableLong": 52930, "nonCommercialShort": 93249, "nonReportableShort": 77661, "nonCommercialSpread": 339238, "totalReportableLong": 1150303, "totalReportableShort": 1125572 }, { "code": "007601", "date": "2026-08-11", "units": "(CONTRACTS OF 60,000 POUNDS)", "market": "SOYBEAN OIL", "exchange": "SOYBEAN OIL - CHICAGO BOARD OF TRADE", "commodity": "SOYBEAN OIL", "openInterest": 711680, "commercialNet": -154544, "commercialLong": 271818, "indexTraderNet": 95502, "commercialShort": 426362, "indexTraderLong": 123747, "indexTraderShort": 28245, "nonCommercialNet": 46677, "nonCommercialLong": 93311, "nonReportableLong": 37133, "nonCommercialShort": 46634, "nonReportableShort": 24768, "nonCommercialSpread": 185671, "totalReportableLong": 674546, "totalReportableShort": 686911 }, { "code": "026603", "date": "2026-08-11", "units": "(CONTRACTS OF 100 TONS)", "market": "SOYBEAN MEAL", "exchange": "SOYBEAN MEAL - CHICAGO BOARD OF TRADE", "commodity": "SOYBEAN MEAL", "openInterest": 656966, "commercialNet": -195223, "commercialLong": 199032, "indexTraderNet": 115926, "commercialShort": 394255, "indexTraderLong": 136916, "indexTraderShort": 20990, "nonCommercialNet": 54133, "nonCommercialLong": 110592, "nonReportableLong": 53720, "nonCommercialShort": 56459, "nonReportableShort": 28556, "nonCommercialSpread": 156707, "totalReportableLong": 603247, "totalReportableShort": 628410 } ], "total": 13610, "fields": [ "positions" ], "market": null, "dataset": "supplemental", "hasMore": true, "nextPage": 2, "provider": "cftc" } ``` --- ### TFF Traders in Financial Futures — dealer, asset manager, leveraged money and - **Method:** `GET` - **Endpoint:** `https://api.zapi.ink/v1/finance:cftc/tff` - **Cache TTL:** 21600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `market` | string | query | no | Match against the contract name (case-insensitive substring). | | `code` | string | query | no | Exact CFTC contract market code. The `markets` endpoint lists codes by commodity group. | | `from` | string | query | no | Earliest report date, YYYY-MM-DD. History runs from 2006-06-13. | | `to` | string | query | no | Latest report date, YYYY-MM-DD | | `combined` | enum(true|false) | query | no | `true` for the futures-and-options combined report, `false` (default) for futures only. | | `subgroup` | string | query | no | CFTC subgroup code, e.g. A10 grains, N16 currencies. Omit for every subgroup. | | `fields` | string | query | no | Comma-separated column groups: `positions`, `changes`, `percent`, `traders`, `concentration`. Default `positions`. Use `all` for every one of the 87 published columns — slower and much larger. | | `page` | number | query | no | Page number, 1-based. Default 1 | | `length` | number | query | no | Rows per page (default 50, max 1000) | **cURL:** ```bash curl "https://api.zapi.ink/v1/finance:cftc/tff?market=E-MINI%20S%26P%20500&code=13874A&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zapi.ink/v1/finance:cftc/tff?market=E-MINI%20S%26P%20500&code=13874A&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zapi.ink/v1/finance:cftc/tff?market=E-MINI%20S%26P%20500&code=13874A&from=2026-01-01&to=2026-08-11&combined=false&subgroup=N16&fields=positions%2Ctraders&page=1&length=50", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "to": null, "code": null, "from": null, "page": 1, "count": 50, "items": [ { "code": "020601", "date": "2026-08-11", "units": "(CONTRACTS OF $100,000 FACE VALUE)", "market": "UST BOND", "exchange": "UST BOND - CHICAGO BOARD OF TRADE", "subgroup": "F30", "commodity": "T-BONDS", "dealerNet": -243296, "dealerLong": 23520, "dealerShort": 266816, "dealerSpread": 8677, "openInterest": 1862944, "assetManagerNet": 549650, "assetManagerLong": 1061726, "assetManagerShort": 512076, "leveragedMoneyNet": -364824, "nonReportableLong": 233127, "assetManagerSpread": 260156, "leveragedMoneyLong": 148363, "nonReportableShort": 160627, "otherReportableNet": -14030, "leveragedMoneyShort": 513187, "otherReportableLong": 103695, "totalReportableLong": 1629817, "leveragedMoneySpread": 23636, "otherReportableShort": 117725, "totalReportableShort": 1702317, "otherReportableSpread": 44 }, { "code": "020604", "date": "2026-08-11", "units": "(CONTRACTS OF $100,000 FACE VALUE)", "market": "ULTRA UST BOND", "exchange": "ULTRA UST BOND - CHICAGO BOARD OF TRADE", "subgroup": "F30", "commodity": "T-BONDS", "dealerNet": -227262, "dealerLong": 21953, "dealerShort": 249215, "dealerSpread": 5216, "openInterest": 2416703, "assetManagerNet": 1080409, "assetManagerLong": 1647210, "assetManagerShort": 566801, "leveragedMoneyNet": -853397, "nonReportableLong": 193169, "assetManagerSpread": 379043, "leveragedMoneyLong": 82626, "nonReportableShort": 191645, "otherReportableNet": -1274, "leveragedMoneyShort": 936023, "otherReportableLong": 37137, "totalReportableLong": 2223534, "leveragedMoneySpread": 50318, "otherReportableShort": 38411, "totalReportableShort": 2225058, "otherReportableSpread": 31 }, { "code": "042601", "date": "2026-08-11", "units": "(CONTRACTS OF $200,000 FACE VALUE)", "market": "UST 2Y NOTE", "exchange": "UST 2Y NOTE - CHICAGO BOARD OF TRADE", "subgroup": "F30", "commodity": "T-NOTES, 1-2 YEAR", "dealerNet": -480452, "dealerLong": 123637, "dealerShort": 604089, "dealerSpread": 31830, "openInterest": 4377812, "assetManagerNet": 1680389, "assetManagerLong": 2342975, "assetManagerShort": 662586, "leveragedMoneyNet": -1359521, "nonReportableLong": 215176, "assetManagerSpread": 561141, "leveragedMoneyLong": 618328, "nonReportableShort": 167368, "otherReportableNet": 111776, "leveragedMoneyShort": 1977849, "otherReportableLong": 333428, "totalReportableLong": 4162636, "leveragedMoneySpread": 151061, "otherReportableShort": 221652, "totalReportableShort": 4210444, "otherReportableSpread": 236 }, { "code": "043602", "date": "2026-08-11", "units": "(CONTRACTS OF $100,000 FACE VALUE)", "market": "UST 10Y NOTE", "exchange": "UST 10Y NOTE - CHICAGO BOARD OF TRADE", "subgroup": "F30", "commodity": "T-NOTES, 6.5-10 YEAR", "dealerNet": -474266, "dealerLong": 162930, "dealerShort": 637196, "dealerSpread": 66281, "openInterest": 5458890, "assetManagerNet": 2554411, "assetManagerLong": 3290600, "assetManagerShort": 736189, "leveragedMoneyNet": -2163714, "nonReportableLong": 397360, "assetManagerSpread": 665819, "leveragedMoneyLong": 341893, "nonReportableShort": 396318, "otherReportableNet": 82527, "leveragedMoneyShort": 2505607, "otherReportableLong": 322535, "totalReportableLong": 5061530, "leveragedMoneySpread": 211070, "otherReportableShort": 240008, "totalReportableShort": 5062572, "otherReportableSpread": 402 }, { "code": "043607", "date": "2026-08-11", "units": "(CONTRACTS OF $100,000 FACE VALUE)", "market": "ULTRA UST 10Y", "exchange": "ULTRA UST 10Y - CHICAGO BOARD OF TRADE", "subgroup": "F30", "commodity": "T-NOTES, 6.5-10 YEAR", "dealerNet": -236777, "dealerLong": 53933, "dealerShort": 290710, "dealerSpread": 15987, "openInterest": 2491020, "assetManagerNet": 671864, "assetManagerLong": 1255300, "assetManagerShort": 583436, "leveragedMoneyNet": -361727, "nonReportableLong": 204418, "assetManagerSpread": 607524, "leveragedMoneyLong": 164207, "nonReportableShort": 293304, "otherReportableNet": 15526, "leveragedMoneyShort": 525934, "otherReportableLong": 164923, "totalReportableLong": 2286602, "leveragedMoneySpread": 24728, "otherReportableShort": 149397, "totalReportableShort": 2197716, "otherReportableSpread": 0 }, { "code": "044601", "date": "2026-08-11", "units": "(CONTRACTS OF $100,000 FACE VALUE)", "market": "UST 5Y NOTE", "exchange": "UST 5Y NOTE - CHICAGO BOARD OF TRADE", "subgroup": "F30", "commodity": "T-NOTES, 4-6 YEAR", "dealerNet": -819024, "dealerLong": 116505, "dealerShort": 935529, "dealerSpread": 52380, "openInterest": 6442950, "assetManagerNet": 2883977, "assetManagerLong": 3947514, "assetManagerShort": 1063537, "leveragedMoneyNet": -2147744, "nonReportableLong": 401196, "assetManagerSpread": 961806, "leveragedMoneyLong": 410975, "nonReportableShort": 378763, "otherReportableNet": 60358, "leveragedMoneyShort": 2558719, "otherReportableLong": 220927, "totalReportableLong": 6041754, "leveragedMoneySpread": 330699, "otherReportableShort": 160569, "totalReportableShort": 6064187, "otherReportableSpread": 948 } ], "total": 46174, "fields": [ "positions" ], "market": null, "dataset": "tff", "hasMore": true, "combined": false, "nextPage": 2, "provider": "cftc", "subgroup": null } ``` --- _Generated: 2026-09-25T14:29:24.562Z_