⚑ Commodity Futures Tracker β€” Energy, Metals, Grains avatar

⚑ Commodity Futures Tracker β€” Energy, Metals, Grains

Pricing

from $100.00 / 1,000 futures records

Go to Apify Store
⚑ Commodity Futures Tracker β€” Energy, Metals, Grains

⚑ Commodity Futures Tracker β€” Energy, Metals, Grains

Track global commodity futures: WTI crude, Brent, gold, silver, copper, corn, wheat, soybeans, coffee, sugar, plus index and crypto futures. Bloomberg commodity data alternative for hedge funds, traders, miners. Pay-per-result.

Pricing

from $100.00 / 1,000 futures records

Rating

0.0

(0)

Developer

NexGenData

NexGenData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

⚑ Commodity Futures Tracker β€” Energy, Metals, Grains, Livestock & Softs

The Bloomberg commodities terminal, without the $24,000-a-year terminal. Live front-month futures prices for the entire global commodity complex β€” WTI and Brent crude, Henry Hub natural gas, gold, silver, copper, platinum, palladium, corn, wheat, soybeans, oats, soybean meal/oil, live cattle, feeder cattle, lean hogs, coffee, sugar, cocoa, cotton, orange juice, lumber β€” plus E-mini equity-index futures and CME-listed Bitcoin and Ether futures. One actor. One JSON shape. One pay-per-result API call away.

Built for commodity hedge funds, mining and energy companies, agricultural producers, prop trading firms, ETF issuers, and macro analysts who need clean, machine-readable futures data without paying Refinitiv or Bloomberg for a terminal seat they barely use.


Why this exists

Commodity data is locked behind some of the most expensive financial information products on the market:

  • Bloomberg Terminal β€” $24,000+ per user per year. Industry standard, but you pay for hundreds of features you'll never touch.
  • Refinitiv Eikon / Workspace β€” $22,000+ per user per year. Similar story.
  • Reuters Eikon β€” bundled into LSEG Workspace at similar pricing.
  • TradingEconomics β€” $99+/month per user for API access, throttled and rate-limited.
  • Investing.com Pro β€” $14.99+/month, but the data is in HTML that has to be scraped behind a paywall and consent banner.
  • CME Group DataMine β€” historical and intraday futures data, priced per exchange/asset and aimed at vendors, not end users.

Meanwhile, every quant researcher, commodity desk analyst, and hedge fund engineer ends up scraping Yahoo Finance or the CME website anyway. This actor does the scraping properly, at industrial scale, on a pay-per-record basis β€” so you stop maintaining brittle CSV downloaders and you stop overpaying Bloomberg for the 0.1% of features you actually use.


Who this is for

  • Commodity hedge funds β€” daily mark-to-market on a multi-asset book without buying a Bloomberg seat for every junior analyst.
  • Mining companies & energy producers β€” hedge program monitoring (gold, silver, copper, WTI, Brent, natural gas) against your physical exposure.
  • Agricultural traders & cooperatives β€” corn, wheat, soybean complex (beans/meal/oil), oats, rice, livestock β€” front-month prices, weekly/monthly/YTD context.
  • Macro & cross-asset desks β€” equity-index futures alongside commodities and FX, all in one dataset for cross-asset regime analysis.
  • ETF issuers & product structurers β€” commodity ETF NAV benchmarking (USO, GLD, SLV, DBA, DBC, PDBC, USCI, BNO).
  • Quant researchers β€” programmatic, deterministic schema for factor research, backtesting, and signal generation.
  • AI / agent builders β€” feed the dataset into an MCP server, a RAG store, a Slack digest, or a custom GPT for natural-language commodity Q&A.

What you get β€” schema

Every row in the dataset has the following fields:

FieldTypeExampleMeaning
symbolstringGC=FYahoo Finance ticker (=F suffix).
commodity_namestringGoldHuman-readable commodity name.
categorystringMetalsOne of Energy, Metals, Grains, Livestock, Softs, Indices, Crypto.
contract_monthstring | nullJun 2026Front-month contract delivery month (when Yahoo exposes expireDate).
pricenumber2384.5Last traded / settlement price.
currencystringUSDQuote currency.
unitstringper troy ounceUnit the price is quoted in (per barrel, per bushel, per pound, etc.).
change_pct_1dnumber | null0.42% change vs prior session.
change_pct_1wnumber | null1.85% change vs 7 days ago.
change_pct_1mnumber | null-3.20% change vs 30 days ago.
change_pct_ytdnumber | null12.40% change vs first observation of current year.
volumeinteger | null218450Volume on the latest session.
open_interestinteger | null412300Open interest (when Yahoo's quote endpoint returns it).
52w_highnumber | null2450.8Highest close in the trailing 52 weeks.
52w_lownumber | null1810.4Lowest close in the trailing 52 weeks.
as_of_datestring2026-05-11Observation date (ISO‑8601).
exchangestring | nullNYMExchange code returned by Yahoo (CME/NYMEX/COMEX/ICE/CBOT).
instrument_typestringFUTUREAlways FUTURE.
short_namestring | nullGold Jun 26Yahoo's short instrument name.
data_sourcestringYahoo Finance β€” v8 chart API (futures)Provenance.

Input

{
"symbols": ["GC=F", "CL=F", "HG=F", "ZC=F", "ES=F"],
"limit": 5
}
InputTypeDefaultNotes
symbolsarray of strings[]Specific Yahoo Finance futures tickers. Pass any =F ticker β€” overrides the categories filter when non-empty.
categoriesarray of strings["Energy", "Metals", "Grains", "Livestock", "Softs"]Curated-universe filter when symbols is empty.
include_indicesbooleanfalseAdds ES=F, NQ=F, YM=F, RTY=F to the curated pull.
include_crypto_futuresbooleanfalseAdds BTC=F, ETH=F to the curated pull.
limitinteger0 (no limit)Max records to emit. Capped at 500.

If symbols is non-empty it wins β€” the other filters are ignored and we fetch exactly what you asked for. Tickers we don't recognise still get fetched (and emitted with category: "Unknown").


Curated commodity universe

Out of the box, the actor knows about ~30 of the most-traded global futures contracts:

  • Energy (5): CL=F WTI Crude, BZ=F Brent, NG=F Natural Gas, HO=F Heating Oil, RB=F RBOB Gasoline
  • Metals (5): GC=F Gold, SI=F Silver, HG=F Copper, PL=F Platinum, PA=F Palladium
  • Grains (7): ZC=F Corn, ZW=F Wheat, ZS=F Soybeans, ZO=F Oats, ZR=F Rough Rice, ZM=F Soybean Meal, ZL=F Soybean Oil
  • Livestock (3): LE=F Live Cattle, GF=F Feeder Cattle, HE=F Lean Hogs
  • Softs (6): KC=F Coffee, SB=F Sugar #11, CC=F Cocoa, CT=F Cotton, OJ=F Orange Juice, LBR=F Lumber
  • Index futures (4, opt-in): ES=F E-mini S&P 500, NQ=F E-mini Nasdaq-100, YM=F E-mini Dow, RTY=F E-mini Russell 2000
  • Crypto futures (2, opt-in): BTC=F CME Bitcoin Futures, ETH=F CME Ether Futures

You can also pass any other Yahoo Finance =F ticker we haven't curated β€” the actor still resolves price, 52w range, and changes; only the friendly commodity_name / category / unit will fall back to defaults.


How it works under the hood

  1. Primary source β€” Yahoo Finance v8 chart API (query1.finance.yahoo.com/v8/finance/chart/<symbol>?range=1y&interval=1d). One call per contract returns the full 1-year daily OHLCV plus a meta block with exchange, currency, and pre-computed 52-week highs/lows.
  2. Open-interest enrichment via Yahoo's v7/finance/quote endpoint, batched 25 symbols per request. This is the only place Yahoo exposes openInterest and expireDate for futures.
  3. Concurrency: symbols are fetched in parallel, capped at 6 concurrent requests so we never hammer Yahoo.
  4. Fallback β€” stockanalysis.com for the handful of contracts where Yahoo occasionally times out (gold, silver, crude, brent, nat gas, copper). Light HTML regex extract β€” just enough to recover a price.
  5. Schema is deterministic β€” every record has the same keys, every numeric field is either a number or null. No surprises in your data pipeline.

Output example

{
"symbol": "GC=F",
"commodity_name": "Gold",
"category": "Metals",
"contract_month": "Jun 2026",
"price": 2384.5,
"currency": "USD",
"unit": "per troy ounce",
"change_pct_1d": 0.42,
"change_pct_1w": 1.85,
"change_pct_1m": -3.20,
"change_pct_ytd": 12.40,
"volume": 218450,
"open_interest": 412300,
"52w_high": 2450.8,
"52w_low": 1810.4,
"as_of_date": "2026-05-11",
"exchange": "NYM",
"instrument_type": "FUTURE",
"short_name": "Gold Jun 26",
"data_source": "Yahoo Finance β€” v8 chart API (futures)"
}

Pricing β€” pay per record, not per terminal seat

This actor uses Apify's Pay-Per-Event model:

  • $0.01 per actor start (covers the run cost itself)
  • $0.10 per futures contract record returned, with full price + change panel + 52w range + open interest

A daily 30-contract snapshot across Energy + Metals + Grains + Softs costs $0.01 + 30 Γ— $0.10 = $3.01 per run, or about $66/month if you run it once a day. That's roughly 0.27% of a Bloomberg seat.

You only pay for records that actually return a price β€” failed lookups are skipped, not billed.


Use cases & integration recipes

1. Daily commodity hedge-fund P&L mark

Schedule the actor once at 5:00pm New York time, pull the full Energy/Metals/Grains/Softs panel (~26 contracts), wire price into your risk engine alongside your physical positions. ~$2.61/run, ~$57/month.

2. Mining company hedge program monitoring

Schedule daily on GC=F, SI=F, HG=F, PL=F, PA=F. Drop the price + change_pct_1d + 52w_high / 52w_low into a Slack digest for the treasury team. ~$0.51/run.

3. Ag co-op pre-market briefing

Schedule pre-open (6:00am Chicago) on ZC=F, ZW=F, ZS=F, ZM=F, ZL=F, LE=F, GF=F, HE=F. Feed into a daily PDF that goes to producer members. Pairs with our nexgendata/etf-holdings-tracker for DBA / DBC ETF context.

4. Cross-asset macro dashboard

Pull commodities + index futures + Treasury yields (nexgendata/treasury-yields-bonds) into a single dashboard. Read regime shifts off curve inversion + commodity moves together.

5. ETF NAV / iNAV benchmarking

ETF issuers running USO / UNG / GLD / SLV / DBA / DBC: pull underlying futures, weight by basket, compare vs published NAV for tracking-error analysis.


How we compare

CapabilityThis actorBloomberg TerminalRefinitiv EikonReuters EikonTradingEconomicsInvesting.com Pro
Front-month futures priceβœ…βœ…βœ…βœ…βœ…βœ…
Programmatic JSON APIβœ…Limited (BLPAPI)Limited (Datastream)Limitedβœ… (throttled)❌
52-week range + changesβœ…βœ…βœ…βœ…βœ…βœ…
Open interestβœ… (best effort)βœ…βœ…βœ…Limited❌
Multi-asset (commodities + indices + crypto)βœ…βœ…βœ…βœ…PartialPartial
Pay-per-recordβœ…βŒ ($24k/yr seat)❌ ($22k/yr seat)❌❌ ($99+/mo)❌ ($14.99/mo)
Self-serve / no sales callβœ…βŒβŒβŒβœ…βœ…
Deploy as MCP / agent toolβœ…βŒβŒβŒβŒβŒ

Pair this actor with our other finance / macro tools for a complete market-data stack:


FAQ

Q: How fresh is the data? A: Yahoo Finance's chart API serves end-of-session / 15-minute-delayed prices for most CME futures. Intraday accuracy is good enough for daily marks, dashboards, and digests; for sub-minute tick data you'll still need CME DataMine or a paid vendor.

Q: Why Yahoo Finance and not the CME API directly? A: CME's official API requires a paid data licence and is priced for institutional vendors. Yahoo Finance pulls from the same source, ships JSON, and is the de-facto endpoint used by every Python yfinance script. We probe stockanalysis.com as a fallback for the handful of contracts Yahoo sometimes drops.

Q: Are the prices in cents or dollars? A: We pass through Yahoo's raw quote β€” that means grains (ZC=F, ZW=F, ZS=F, ZO=F), soybean oil (ZL=F), cotton (CT=F), coffee (KC=F), sugar (SB=F), OJ (OJ=F), live cattle (LE=F), feeder cattle (GF=F), and lean hogs (HE=F) are quoted in cents per their respective unit; everything else in dollars. The unit field tells you exactly what scale you're looking at.

Q: Can I pass my own list of =F tickers? A: Yes β€” fill in symbols with any Yahoo Finance futures ticker. Tickers outside our curated universe get emitted with category: "Unknown" but full price/change/range data.

Q: Does the actor work for back-month / deferred contracts? A: Yahoo only exposes the continuous front-month under <sym>=F. For deferred months you'd need CME DataMine or Refinitiv. This is a limitation of the upstream data source, not the actor.

Q: Can I run this as an MCP server for Claude or ChatGPT? A: Yes β€” pair it with nexgendata/finance-mcp-server, or wrap a thin MCP server around the Apify dataset endpoint. We have a tutorial β€” ask in Apify console.


Quick start

curl -X POST "https://api.apify.com/v2/acts/nexgendata~commodity-futures-tracker/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"symbols": ["GC=F", "CL=F", "HG=F", "ZC=F"],
"limit": 4
}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nexgendata/commodity-futures-tracker").call(run_input={
"categories": ["Energy", "Metals"],
"include_indices": True,
"limit": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["symbol"], item["price"], item["change_pct_1d"])

Support & affiliate

Built and maintained by NexGenData. We run a fleet of 130+ production-grade data actors on Apify covering finance, real estate, e-commerce, lead generation, and macro.

Try Apify free (1-month platform credit when you sign up via this link, and you'll be helping fund the next NexGenData actor): πŸ‘‰ https://apify.com/nexgendata?fpr=2ayu9b