Metals API: live tin, aluminum, nickel, copper and iron ore
OilPriceAPI is a metals API that returns tin, aluminum, nickel, copper and iron ore from the same REST endpoint as crude oil, natural gas and refined fuels — every code in the same JSON shape, behind one API key.
Query COPPER_USD and IRON_ORE_USD with the same call you already use for BRENT_CRUDE_USD. Each response carries its own unit and source timestamp, so a per-pound metal and a per-ton bulk commodity never get mixed up in your parser.
Five industrial metals by code
TIN_USD, ALUMINUM_USD, NICKEL_USD and COPPER_USD are quoted per pound; IRON_ORE_USD is quoted per metric ton. The unit is on every response, not in a footnote.
One call for all five
Pass a comma-separated by_code list to /v1/prices/latest and get every metal back in a single data.prices[] array — the exact call that renders the table on this page.
Source timestamps, never a clock
created_at is the source's own observation time. A value you read at noon that was observed at 09:00 says 09:00, so you can decide for yourself whether it is fresh enough.
Same schema as oil and gas
A nickel quote parses exactly like a WTI quote. Adding metals to an existing energy integration is a change of code string, not a second vendor or a second parser.
JSON first, CSV export
Every endpoint returns JSON. Add ?format=csv to the same authenticated request for a flat file; the historical endpoints are on paid plans.
One key, official SDKs
A single Authorization header, plus production SDKs for Python, Node.js, Go and PHP. Start on the free tier with no credit card.
Live: tin, aluminum, nickel, copper and iron ore from one call
Rendered from a single /v1/prices/latest request with a comma-separated by_code list. Every value carries the source's own timestamp; a code that did not return a usable value is shown as unavailable rather than substituted.
| by_code | Instrument | Latest | Per | Source timestamp |
|---|---|---|---|---|
| TIN_USD | Tin | $24.38 | pound | |
| ALUMINUM_USD | Aluminum | $1.480 | pound | |
| NICKEL_USD | Nickel | $7.420 | pound | |
| COPPER_USD | Copper | $6.680 | pound | |
| IRON_ORE_USD | Iron ore | $97.06 | metric ton |
The request that produced this table
curl "https://api.oilpriceapi.com/v1/prices/latest?by_code=TIN_USD,ALUMINUM_USD,NICKEL_USD,COPPER_USD,IRON_ORE_USD" \
-H "Authorization: Token YOUR_API_KEY"- Units differ by code — tin, aluminum, nickel and copper per pound, iron ore per metric ton. Read the unit field before doing arithmetic.
- The multi-code response is data.prices[]; a single-code request returns data as one object.
Each metal has its own live page with a chart and history: Tin price, Aluminum price, Nickel price, Copper price, Iron ore price.
What the metals codes actually are
- Coverage
- Tin, aluminum, nickel and copper per pound; iron ore per metric ton. Five codes, one endpoint, one response shape.
- Source
- Aggregated from published market sources and normalized into one schema. We are not a party to any exchange or price-reporting agency.
- Cadence
- Latest available values carry a timestamp. Refresh cadence varies by source, market hours, dataset and plan.
- First endpoint
- GET /v1/prices/latest?by_code=COPPER_USD
Response fields to inspect
- code — echoes the canonical code, which may differ from an alias you sent
- price and currency — USD for every metals code
- unit — lb for tin, aluminum, nickel and copper; metric_ton for iron ore
- created_at — treat this as the freshness signal, not the time you called
Keep visible
- History is recent: the five industrial-metal codes began collecting in 2026.
- Units are not uniform — never assume pounds for iron ore.
- API access conveys no third-party right in the underlying source material.
First call: copper and iron ore, same shape
Two requests, one header, one parser. The only difference between a per-pound metal and a per-ton bulk commodity is the unit field the API sends back.
Request
curl "https://api.oilpriceapi.com/v1/prices/latest?by_code=COPPER_USD" \
-H "Authorization: Token YOUR_API_KEY"
curl "https://api.oilpriceapi.com/v1/prices/latest?by_code=IRON_ORE_USD" \
-H "Authorization: Token YOUR_API_KEY"Expected shape
{
"status": "success",
"data": {
"code": "COPPER_USD",
"price": 6.69,
"currency": "USD",
"unit": "lb",
"created_at": "2026-09-25T15:33:01Z"
}
}
{
"status": "success",
"data": {
"code": "IRON_ORE_USD",
"price": 97.06,
"currency": "USD",
"unit": "metric_ton",
"created_at": "2026-09-25T15:33:52Z"
}
}- Responses are abridged for readability and show real observations captured on 2026-09-25; yours will differ.
- Add format=csv to either request for a flat CSV export instead of JSON.
- Read the unit field before doing arithmetic — copper is per pound, iron ore is per metric ton.
Need gold, silver or the daily fixes as well? See the commodity data API page, or the commodities overview.
Endpoints you'll use
GET /v1/prices/latest?by_code=COPPER_USDLatest copper value per pound with currency, unit and timestamp fields.
GET /v1/prices/latest?by_code=TIN_USD,ALUMINUM_USD,NICKEL_USD,COPPER_USD,IRON_ORE_USDAll five metals in one request — the call behind the live table above. Each code comes back with its own price, unit and source timestamp.
GET /v1/prices/past_year?by_code=NICKEL_USDHistorical observations for a single code (paid plans). Also past_day, past_week and past_month.
GET /v1/prices/allOne snapshot across every code your plan covers, metals and energy together.
Frequently asked questions
Which metals does the API return?
Industrial and bulk metals: TIN_USD, ALUMINUM_USD, NICKEL_USD and COPPER_USD per pound, and IRON_ORE_USD per metric ton. Precious metals (GOLD_USD, SILVER_USD, PLATINUM_USD, PALLADIUM_USD) and the daily gold and silver fixes are on the same endpoint and are documented on the commodity data API page.
What unit is each metal quoted in?
Tin, aluminum, nickel and copper are quoted in US dollars per pound. Iron ore is quoted in US dollars per metric ton. Every response carries a unit field — read it rather than assuming, because the two conventions differ by more than three orders of magnitude.
Can I get all five metals in one request?
Yes. Pass a comma-separated list to by_code on /v1/prices/latest and the response is a data.prices[] array with one object per code, each carrying its own price, unit and created_at. A single-code request returns data as one object instead.
How far back does the metals history go?
The five industrial-metal codes began collecting during 2026, so treat them as recent series rather than a multi-decade archive. Call /v1/prices/past_year for a code and inspect what actually comes back before you build on it.
Is the metals data the same source as the oil data?
Metals and energy are aggregated from published market sources and normalized into one schema; the sources differ by commodity. We are not a party to any exchange or price-reporting agency, and API access conveys no third-party right in the underlying source material.
Does the metals API support JSON and CSV?
Yes — every endpoint returns JSON by default, and adding format=csv to the same authenticated request returns a flat CSV export instead. CSV is a parameter on the API rather than a public download, so it needs an API key, and the historical endpoints require a paid plan.
Is there a free tier?
Yes — a 7-day free trial with 10,000 requests and no credit card, and a free tier of 50 requests per day after that. Paid plans start at $19/month.
Start with a free OilPriceAPI key
metals-api