IndexMundi Commodity Price Scraper
Pricing
from $23.99 / 1,000 result items
IndexMundi Commodity Price Scraper
Scrapes monthly commodity price histories from IndexMundi. Returns each price observation as a flat row with the commodity name, date, price, unit, and change percent. Supports up to 600 months of history per commodity.
Pricing
from $23.99 / 1,000 result items
Rating
5.0
(1)
Developer
ParseForge
Maintained by CommunityActor stats
2
Bookmarked
2
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
IndexMundi Commodity Price Scraper
Scrape commodity price histories from IndexMundi, covering up to 50 years of monthly data per commodity. Get every price point with its date, unit, and percentage change, for any mix of energy, metals, grains, or softs. Export to CSV, JSON, Excel, or XML.
IndexMundi publishes deep historical price series for hundreds of global commodities, but downloading them one chart at a time is slow and manual. This actor reads the public data tables directly, so you can pull decades of monthly prices for exactly the commodities you care about, all in one run. No API key, no browser, no copy-paste.
| Who uses it | What they scrape IndexMundi for |
|---|---|
| Commodity traders | Backtest a trading strategy against 30 years of monthly gold, crude, or copper prices. |
| Economic researchers | Build a panel dataset of global food and energy prices to model inflation pass-through. |
| Procurement analysts | Track long-run price trends for raw materials like lumber, steel, or palm oil before contract renewal. |
| Data journalists | Pull a decade of coffee, cocoa, or sugar prices to illustrate a story on commodity cycles. |
What it does
This Actor collects monthly commodity price data from IndexMundi and returns each price observation as a flat row with the commodity name, date, price, unit, and change percent.
- 📅 Full historical depth: retrieve up to 600 months (50 years) of monthly price data per commodity.
- 🏷️ Filter by category: restrict the scrape to energy, metals, grains, softs, livestock, dairy, and more.
- 🎯 Target specific commodities: supply a list of slugs like gold, crude-oil, or wheat, or leave empty to scrape everything.
- ⚡ Flat row output: each price observation is one row, ready for pandas, Excel, or a database.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with IndexMundi data
📈 Backtest a commodity strategy.
A quant researcher pulls 30 years of monthly gold, silver, and copper prices to test a momentum signal before committing capital.
🌾 Model food price inflation.
An economist scrapes wheat, corn, rice, and palm oil histories to build a global food price index for a central bank working paper.
⛽ Monitor energy input costs.
A manufacturing procurement team tracks 10 years of natural gas, coal, and diesel prices to forecast quarterly energy budgets.
🍫 Report on soft commodity cycles.
A data journalist collects coffee, cocoa, and sugar price series to visualize boom-bust patterns over two decades.
Why choose this scraper
| What you get | |
|---|---|
| Commodity coverage | Energy, precious and base metals, grains, softs, livestock, dairy, and more |
| Historical depth | Up to 50 years of monthly prices per commodity |
| Output format | One flat row per price observation with date, price, unit, and change percent |
| No manual work | Scrapes the public tables directly, no clicking through charts |
How it compares
No other Store actor targets IndexMundi the same way, so the honest comparison is with the alternatives teams actually weigh.
| IndexMundi Commodity Price Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When IndexMundi changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor from a list of commodity slugs and optional category filters, and set the lookback window in months. Filters run before data is fetched so only matching commodities reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10,"commodities": ["gold","crude-oil","silver","copper","natural-gas","platinum","coffee","cocoa","sugar","cotton","wheat","corn","soybeans","rice","palm-oil","rubber","tin","zinc","nickel","lead","aluminum","iron-ore","uranium","coal","lumber","orange-juice","cattle","lean-hogs","rapeseed-oil","tea","barley","oats","sorghum","jute","wool","fish","chicken","pork","salmon","shrimp","butter","milk","cheese","gasoline","heating-oil","propane","diesel","bitumen","asphalt","methane"]}
A larger pull:
{"maxItems": 200,"commodities": ["gold","crude-oil","silver","copper","natural-gas","platinum","coffee","cocoa","sugar","cotton","wheat","corn","soybeans","rice","palm-oil","rubber","tin","zinc","nickel","lead","aluminum","iron-ore","uranium","coal","lumber","orange-juice","cattle","lean-hogs","rapeseed-oil","tea","barley","oats","sorghum","jute","wool","fish","chicken","pork","salmon","shrimp","butter","milk","cheese","gasoline","heating-oil","propane","diesel","bitumen","asphalt","methane"]}
Pricing
Pay-per-result: $0.03199 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $3.20 |
| 1,000 results | $31.99 |
| 10,000 results | $319.90 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the IndexMundi Commodity Price Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to IndexMundi through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/indexmundi-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that the commodity slugs you supplied are valid IndexMundi slugs. Visit the commodity page on IndexMundi.com and copy the exact slug from the URL. Also verify that your maxItems is set high enough and that the months value is at least 1.
The actor returns fewer months than I requested.
IndexMundi may not have the full history you requested for every commodity. The actor returns whatever data is available on the site. Try reducing the months value to see if data exists for a shorter window.
Some commodities are missing from my output.
If you used the categories filter, only commodities in those categories are scraped. Remove the categories filter to scrape all commodities. Also confirm the slug is spelled correctly and exists on IndexMundi.
The actor is running slowly.
Scraping many commodities with long histories makes many HTTP requests. Reduce the number of commodities with the commodities list or categories filter, or lower the months value to speed up the run.
I get an error about maxItems being too low.
The maxItems input must be at least 1. If you are on the free plan, the maximum is 100. Upgrade to a paid plan to set maxItems up to 1,000,000.
FAQ
| Question | Answer |
|---|---|
| What commodities can I scrape from IndexMundi? | You can scrape any commodity that IndexMundi publishes a price table for. The input schema pre-fills 50 common slugs covering energy, metals, grains, softs, livestock, and dairy, but you can supply any valid IndexMundi commodity slug. |
| How far back does the historical data go? | The months input lets you request up to 600 months (50 years) of monthly prices. The actual available history varies by commodity; the actor returns whatever IndexMundi has published. |
| Can I scrape all commodities at once? | Yes. Leave the commodities array empty and the actor will attempt to scrape every commodity IndexMundi lists. You can narrow the scope with the categories filter. |
| What does each row in the output represent? | Each row is one monthly price observation for one commodity. It includes the commodity name, the month and year, the price, the unit of measurement, and the percentage change from the previous month. |
| How do I find the correct commodity slug? | Visit a commodity page on IndexMundi.com. The slug is the last part of the URL. For example, the page for crude oil has 'crude-oil' in the URL, so the slug is 'crude-oil'. |
| Is there a limit on how many commodities I can scrape? | The maxItems input caps the number of commodities processed. Free Apify users are capped at 100; paid users can set it up to 1,000,000. |
| What export formats are supported? | You can export the dataset to CSV, JSON, Excel, or XML from the Apify console, or access it programmatically via the Apify API. |
| Does this actor need a login or an API key for IndexMundi? | No. It reads the public price tables directly from the IndexMundi website. No account, API key, or authentication is required. |
| Can I schedule this actor to run monthly? | Yes. Use Apify's scheduler to run the actor on the first of every month, so your dataset always includes the latest closing prices. |
| What is the unit of measurement in the output? | The unit varies by commodity and is taken directly from IndexMundi. Common units include USD per barrel, USD per metric ton, USD per bushel, and cents per pound. |
Related actors
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by IndexMundi. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
