1 month free: no ads plus full access.

COMEX Inventory API warehouse stocks and flows as JSON

Registered, eligible and total COMEX warehouse stocks, from CME Group's daily metal depository reports. Gold and silver go back to August 1992 and copper to April 1993, one row per report date, and range=ALL returns the whole series.

  • Exchange-wide registered, eligible and total for gold, silver and copper, and for platinum, palladium, aluminium, zinc and lead since February 2026
  • Each depository's received, withdrawn and adjustment figures, laid out like CME's report
  • Delivery notices, volume and open interest on the same plan
  • Included from Pro ($99 a month)
GET /v1/comex/inventory?symbol=XAG&range=1Y
curl -H "Authorization: Bearer mc_live_YOUR_KEY" \
  "https://api.metalcharts.org/v1/comex/inventory?symbol=XAG&range=1Y"

A year of exchange-wide silver stocks. Swap XAG for XAU, HG, XPT, XPD, ALI, ZN or PB, and pass range=ALL for the full series.

1992

Gold and silver stocks from

8

Metals covered

Daily

One row per report date

Pro

Plan that includes it

Endpoints

COMEX Inventory API endpoints

Every endpoint below needs Pro ($99 a month) or higher. Requests use the same key and bearer header as the rest of the API.
EndpointReturnsFrom
GET/v1/comex/inventoryRegistered, eligible and total per day. type=latest returns the newest day with the previous day's figures; type=depositories returns the newest day per depositoryPro
GET/v1/comex/depositoriesStocks and daily received, withdrawn and adjustment per depository, with the activity date of each movementPro
GET/v1/comex/delivery-noticesDelivery notice history for a metalPro
GET/v1/comex/volume-oiVolume and open interest for a metalPro

Response

What /v1/comex/inventory returns

Field names exactly as the API sends them, from the published OpenAPI specification.
FieldMeaning
dateThe CME report date
registeredMetal on warrant, which can be delivered against a futures contract
eligibleMetal in an approved vault that meets exchange standards but is not on warrant
totalRegistered plus eligible
unitAt the top of the response: troy_ounces, short_tons or metric_tons, as the metal is reported
asOf, ageDays, staleAt the top of the response: the newest report date, how old it is, and whether the series has stopped updating

Code

Call it from Python or JavaScript

No SDK to install: an HTTPS GET with your key in the Authorization header.
Python
import requests

resp = requests.get(
    "https://api.metalcharts.org/v1/comex/inventory?symbol=XAG&range=1Y",
    headers={"Authorization": "Bearer mc_live_YOUR_KEY"},
    timeout=10,
)
resp.raise_for_status()
print(resp.json()["data"])
JavaScript
const resp = await fetch("https://api.metalcharts.org/v1/comex/inventory?symbol=XAG&range=1Y", {
  headers: { Authorization: "Bearer mc_live_YOUR_KEY" },
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const { data } = await resp.json();
console.log(data);

FAQ

COMEX Inventory API questions

How far back does the COMEX inventory history go?

Gold and silver go back to 31 August 1992 and copper to 29 April 1993, one row per CME report date. Platinum, palladium, aluminium, zinc and lead start in February 2026. range=ALL (or MAX) returns the whole series.

What is the difference between registered and eligible?

Registered metal is on warrant and can be delivered against a COMEX futures contract. Eligible metal sits in an approved vault and meets the exchange's standards but is not on warrant. Total is the two together. Each row carries all three, so the registered share is a single division.

Can I get the figures for each depository?

Yes. /v1/comex/depositories returns each depository's stocks and the day's received, withdrawn and adjustment figures, laid out like CME's own report, with activityDate giving the business day the movements happened. type=depositories on /v1/comex/inventory returns just the newest day per depository.

How do I know the series is current?

Every response carries asOf (the newest report date), ageDays and a stale flag, so a script can tell a current series from one that has stopped updating without reading the array.

On metalcharts.org

See the same data as charts

More data

Other exchange data, same API

Start with Pro

COMEX Inventory data is included from Pro ($99 a month). Every plan, Free included, can call the live price endpoints.