Commodities Daily OHLCV — All FMP Contracts, 10 Years (2016–2026)
Ten years of daily OHLCV across all 40 commodity contracts indexed by FMP — 109,218 rows in a single gzipped CSV. Covers energy (WTI/Brent crude, natural gas, gasoline, heating oil), precious & base metals (gold, silver, platinum, palladium, copper, aluminum), grains & oilseeds (wheat, corn, soybeans, rice, oats, soybean meal & oil), softs (sugar, coffee, cocoa, cotton, orange juice, lumber), livestock (live cattle, lean hogs, feeder cattle, class III milk), Treasury futures (2y, 5y, 10y, 30y), fed funds, US Dollar Index, and index futures (E-mini S&P, NASDAQ-100, mini Dow, Russell 2000). Each row tags a category field for fast filtering. Read with pandas.read_csv(path, compression='gzip', parse_dates=['date']). Useful for: commodity-curve research, inflation-hedge backtests, cross-asset correlations, macro-regime detection, and rates/futures basis analysis.
Use Cases
- Commodity-curve and contango/backwardation research
- Inflation-hedge and real-asset allocation backtests
- Cross-asset correlations (oil vs equities, gold vs USD)
- Macro regime detection from rates + commodities
- Futures basis and roll-yield analysis
Methodology
Universe: every symbol returned by FMP's /stable/commodities-list endpoint (40 contracts). Each symbol fetched via /stable/historical-price-eod/full from 2016-01-01 through 2026-09-05 (single call per symbol; 10y of daily ~2,500 rows fits under the 5,000-row cap). Each row enriched with a category bucket (energy / metal / ag_soft / livestock / rate / index_future / fx_future / other) for fast filtering.
Update Schedule
Static snapshot. Re-run weekly or monthly for fresh data.
Attribution
Source: end-of-day futures quotes via Financial Modeling Prep.
Schema
| name | type |
|---|---|
| symbol | string |
| name | string |
| category | string |
| date | date |
| open | number |
| high | number |
| low | number |
| close | number |
| volume | number |
| change | number |
| changePercent | number |
| vwap | number |
Sample Data
| low | date | high | name | open | vwap | close | change | symbol | volume | category | changePercent |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1610.5 | 2016-01-04 | 1610.5 | Aluminum Futures | 1610.5 | 1610.5 | 1610.5 | 0.0 | ALIUSD | 14.0 | metal | 0.0 |
| 1601.75 | 2016-01-05 | 1601.75 | Aluminum Futures | 1601.75 | 1601.75 | 1601.75 | 0.0 | ALIUSD | 9.0 | metal | 0.0 |
| 1609.0 | 2016-01-06 | 1609.0 | Aluminum Futures | 1609.0 | 1609.0 | 1609.0 | 0.0 | ALIUSD | 3.0 | metal | 0.0 |
Get this via API
# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
# Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
# Cursor / Claude Code / others: mcp.json
{
"mcpServers": {
"dagentbase": {
"url": "https://dagentbase.com/api/mcp",
"headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
}
}
}
# 2. Then ask your agent, in plain language:
# "Preview 'Commodities Daily OHLCV — All FMP Contracts, 10 Years (2016–2026)' and, if it fits, claim it and download the files."
# Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urls
# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
# Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
# Cursor / Claude Code / others: mcp.json
{
"mcpServers": {
"dagentbase": {
"url": "https://dagentbase.com/api/mcp",
"headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
}
}
}
# 2. Then ask your agent, in plain language:
# "Preview 'Commodities Daily OHLCV — All FMP Contracts, 10 Years (2016–2026)' and, if it fits, claim it and download the files."
# Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urlsone time · open license
Details
Available formats