IndexMundi Commodity Price Scraper avatar

IndexMundi Commodity Price Scraper

Pricing

from $23.99 / 1,000 result items

Go to Apify Store
IndexMundi Commodity Price Scraper

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

ParseForge

Maintained by Community

Actor stats

2

Bookmarked

2

Total users

0

Monthly active users

8 days ago

Last modified

Share

ParseForge

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 itWhat they scrape IndexMundi for
Commodity tradersBacktest a trading strategy against 30 years of monthly gold, crude, or copper prices.
Economic researchersBuild a panel dataset of global food and energy prices to model inflation pass-through.
Procurement analystsTrack long-run price trends for raw materials like lumber, steel, or palm oil before contract renewal.
Data journalistsPull 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 coverageEnergy, precious and base metals, grains, softs, livestock, dairy, and more
Historical depthUp to 50 years of monthly prices per commodity
Output formatOne flat row per price observation with date, price, unit, and change percent
No manual workScrapes 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 ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When IndexMundi changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst 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 collectedApproximate 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

  1. Create a free Apify account with $5 in credit.
  2. Open the IndexMundi Commodity Price Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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

QuestionAnswer
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.

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.