Skip to content
GET /v1/history

Weekly positioning history

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/cot-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/cot-api/v1/history" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/cot-api/v1/history", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/cot-api/v1/history");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/cot-api/v1/history",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "weeks": 12,
        "market": "GOLD - COMMODITY EXCHANGE INC.",
        "history": [
            {
                "report_date": "2026-06-02",
                "open_interest": 326052,
                "commercial_net": -206345,
                "noncommercial_net": 176020,
                "nonreportable_net": 30325
            },
            {
                "report_date": "2026-05-26",
                "open_interest": 353489,
                "commercial_net": -185766,
                "noncommercial_net": 154260,
                "nonreportable_net": 31506
            },
            {
                "report_date": "2026-05-19",
                "open_interest": 379325,
                "commercial_net": -191629,
                "noncommercial_net": 159833,
                "nonreportable_net": 31796
            },
            {
                "report_date": "2026-05-12",
                "open_interest": 376496,
                "commercial_net": -210258,
                "noncommercial_net": 171622,
                "nonreportable_net": 38636
            },
            {
                "report_date": "2026-05-05",
                "open_interest": 367932,
                "commercial_net": -198935,
                "noncommercial_net": 163303,
                "nonreportable_net": 35632
            },
            {
                "report_date": "2026-04-28",
                "open_interest": 369530,
                "commercial_net": -194813,
                "noncommercial_net": 159571,
                "nonreportable_net": 35242
            },
            {
                "report_date": "2026-04-21",
                "open_interest": 365842,
                "commercial_net": -202940,
                "noncommercial_net": 164006,
                "nonreportable_net": 38934
            },
            {
                "report_date": "2026-04-14",
                "open_interest": 362274,
                "commercial_net": -201082,
                "noncommercial_net": 162526,
                "nonreportable_net": 38556
            },
            {
                "report_date": "2026-04-07",
                "open_interest": 354877,
                "commercial_net": -193751,
                "noncommercial_net": 156305,
                "nonreportable_net": 37446
            },
            {
                "report_date": "2026-03-31",
                "open_interest": 361409,
                "commercial_net": -201640,
                "noncommercial_net": 163202,
                "nonreportable_net": 38438
            },
            {
                "report_date": "2026-03-24",
                "open_interest": 403925,
                "commercial_net": -203828,
                "noncommercial_net": 168327,
                "nonreportable_net": 35501
            },
            {
                "report_date": "2026-03-17",
                "open_interest": 411388,
                "commercial_net": -198648,
                "noncommercial_net": 1598
…