Yes. Commodities are covered through the Futures subscription, where the exchange-listed contracts trade: energy, metals and grains all have live products. Gold and silver are covered a second way as well, quoted as currency pairs on the Currencies subscription, which suits you if you want a spot rate rather than a dated contract. What Massive does not have is a separate commodities product, which is why the answer depends on which subscription you hold.
Applies to
- Plans: a Futures subscription for the contracts; a Currencies subscription for the gold and silver forex pairs.
- Endpoints: /futures/v1/... for contracts, products and aggregates; the forex endpoints and the /forex WebSocket cluster for the metal pairs.
- Asset classes: futures and forex.
Which commodities are covered as futures
Each of these is a product on /futures/v1/products, with dated contracts trading today:
| Commodity | Product code | Group | Venue |
|---|---|---|---|
| Crude oil | CL | Energy | NYMEX |
| Natural gas | NG | Energy | NYMEX |
| Gold | GC | Metals | COMEX |
| Silver | SI | Metals | COMEX |
| Copper | HG | Metals | COMEX |
| Platinum | PL | Metals | NYMEX |
| Palladium | PA | Metals | NYMEX |
| Corn | ZC | Grains | CBOT |
| Wheat | ZW | Grains | CBOT |
| Soybeans | ZS | Grains | CBOT |
A contract ticker adds a month and year code to the product, so December 2026 wheat is ZWZ6 and November 2026 crude is CLX6.
How to query a commodity future
curl -X GET "https://api.massive.com/futures/v1/aggs/CLX6?resolution=1session&limit=1&apiKey=YOUR_API_KEY"
Response
{
"results": [
{ "ticker": "CLX6", "session_end_date": "2026-09-15", "close": 98.38 }
],
"status": "OK"
}
resolution=1session&limit=1 asks for the most recent session, so the close you get back is whatever that session settled at rather than the figure above.
To find the contracts trading for a product, list them from /futures/v1/contracts?product_code=CL rather than constructing the month codes by hand.
Gold and silver as forex pairs
Gold and silver are also quoted as currency pairs, which is the simpler route if you want a continuous spot rate with no contract to roll:
- Gold is C:XAUUSD, and against 14 other currencies: ARS, AUD, BRL, CAD, CNY, EUR, GBP, INR, JPY, KRW, MXN, RUB, SAR and ZAR.
- Silver is C:XAGUSD, against the same set plus TRY, so 16 pairs in all.
The X follows the ISO 4217 convention for a unit that is not a national currency, and one unit is one troy ounce.
Platinum and palladium used to be quoted this way as C:XPTUSD and C:XPDUSD. Those pairs are retired: their last bar is dated 1 February 2024 and their ticker records are marked inactive. Use the PL and PA futures instead.
Why the same metal appears in two places
The same metal appears twice because a futures contract and a spot pair are different instruments. A future has an expiry, a delivery point and a contract size, and it is what trades on an exchange. A spot pair is a continuously quoted rate with no expiry. Which one you want depends on whether you are pricing an exposure or tracking a market, and the two will not agree exactly, because a future carries the cost of carry to its delivery date.
If you see an error
An empty results array from a forex request for C:XPTUSD or C:XPDUSD, or a stale-looking previous close, is the retirement above. Note that /prev returns the last bar that ever existed, however old, so always read its date before treating a pair as live.
{"status":"NOT_AUTHORIZED"} on a futures endpoint means your plan has no Futures subscription. Currencies does not cover it, and neither does Stocks.
An empty result for a contract ticker you built by hand is usually the wrong month or year code. List the contracts for the product instead.

