XAU
---.--
--.--
XAG
---.--
--.--
XPT
---.--
--.--
XPD
---.--
--.--
HG
---.--
--.--
ALI
---.--
--.--
NI
---.--
--.--
ZN
---.--
--.--
PB
---.--
--.--
SN
---.--
--.--
JBP
---.--
--.--
LC
---.--
--.--
UXA
---.--
--.--
XAU
---.--
--.--
XAG
---.--
--.--
XPT
---.--
--.--
XPD
---.--
--.--
HG
---.--
--.--
ALI
---.--
--.--
NI
---.--
--.--
ZN
---.--
--.--
PB
---.--
--.--
SN
---.--
--.--
JBP
---.--
--.--
LC
---.--
--.--
UXA
---.--
--.--

How to Choose a Metals Price API

Seven things that separate one metals API from another, and the question to ask each provider. We build one of these, so this is not a neutral page. Each answer below about our own API is a number or a behaviour you can check with a single request, which is the standard worth holding every provider to.

1. How far back the history actually goes

Most providers advertise 'historical data' without saying how much. The number that matters is how many bars the endpoint returns, not what sits in their warehouse, and those two figures diverge more often than you would expect. Ask for a count, then verify it with one request before you build.

Ask them: How many daily bars does /history return for gold, and what is the oldest date?

Our answer: 14,425 daily bars for gold from October 1966, and 14,488 for silver. Copper reaches 1988, platinum and palladium 2005. Those counts come from the live endpoint.

2. Whether you get anything beyond spot

A spot price is a commodity in every sense: several providers resell the same feeds, so competing on it comes down to cents per request. What is hard to source is market structure, meaning warehouse inventory, deliveries, vault holdings, regional premiums and positioning. If your product answers why a price moved, spot alone will not carry it.

Ask them: Do you carry COMEX inventory, LBMA vaults, Shanghai premiums or CFTC positioning?

Our answer: All of them, plus SHFE stocks, Indian MCX premiums, and Guangzhou warehouse receipts for lithium carbonate, industrial silicon and polysilicon that are published only in Chinese at source.

3. How the rate limit is shaped

A monthly request quota and a per-minute limit behave very differently. A quota punishes a traffic spike by cutting you off for the rest of the month; a per-minute limit throttles the spike and recovers. Check which you are buying, because a busy launch day can exhaust a monthly allowance that looked generous on the pricing page.

Ask them: Is the limit per minute, per month, or both? What happens when I exceed it?

Our answer: Weight per minute, with no monthly ceiling on any paid plan. Endpoints cost 1 weight, history 2, news search 3. Every response carries X-RateLimit headers so you can meter yourself.

4. What the free tier is really for

A free tier too small to finish an integration is marketing wearing a trial's clothes. One large enough to run production forever tells you the paid plans are priced on something other than volume. Either can be fine. What you are really measuring is the cost of discovering this API is wrong for you.

Ask them: How many requests, and does it expire?

Our answer: 1,000 requests a month with no card and no trial clock, covering live spot for ten metals with bid and ask, currency conversion and market status.

5. Whether the symbols make sense

Symbol schemes are where integrations quietly break. Some providers use ISO codes, some use exchange tickers, some use plain names, and a few mix all three across different endpoints. Get the full list up front, because the alternative is discovering it through 400s.

Ask them: Is there an endpoint that lists every symbol and which routes accept it?

Our answer: Yes, /v1/instruments covers 1,100 plus instruments and is free on every plan. Worth knowing our own trap: gold is XAU on history but GOLD on the 24/7 markets endpoint.

6. What the licence permits

Read the terms before the pricing page. The questions that matter are whether commercial use is allowed at all, whether you may serve the data to your own customers, and whether there is a separate licence for that. Some providers restrict the free tier to non-commercial use, which is easy to miss and awkward to discover after launch.

Ask them: Can I use this in a commercial product, and may I show the data to my users?

Our answer: Commercial use is permitted on every plan including Free, with no separate licence and no cap on end users. The only restriction is reselling access to the API itself or republishing the raw data as a competing feed.

7. Whether stale data announces itself

Every provider has a feed that stops sometime. What separates them is whether you find out from the response or from one of your customers. A timestamp on the request tells you nothing. You want a timestamp on the underlying data, and a flag when a series has gone quiet.

Ask them: Does the response tell me how old the data is?

Our answer: Where a series can go quiet, responses carry asOf and a stale flag instead of a bare array. We added that after shipping an endpoint that served a decade-old archive formatted exactly like a live feed.

Common questions

What is the best metals price API?

It depends on whether you need a price or a picture of the market. If all you want is XAU/USD on a page, almost any provider will do and you should pick on cost and uptime. If you are building something that explains or trades on metals, the differentiator is exchange data: COMEX inventory and deliveries, LBMA vaults, Shanghai and Indian premiums, and CFTC positioning. Very few metals APIs carry those.

Is there a free metals API?

Several providers offer a free tier, typically 50 to 100 requests a month. MetalCharts allows 1,000 a month with no credit card, covering ten metals with bid and ask, currency conversion and market status. Check whether a free tier permits commercial use, because some do not.

How much should a metals API cost?

Providers that meter by request volume start near a few dollars a month. Providers that sell data breadth and history depth price higher, because the cost is in collecting and correcting the data rather than serving it. Work out which model you are buying: a cheap per-request plan gets expensive at scale, and a breadth-priced plan is poor value if you only ever need spot.

What should I check before integrating a metals API?

Make one real request against the documented example before you write any code. Confirm the history depth matches the claim, the symbol you need is accepted, the rate limit headers exist, and the licence covers what you intend to build. Those four checks take ten minutes and catch nearly every mismatch.

Check our answers yourself

Every figure above is one request away. Start with the free tier, no card required, and verify the history depth before you commit.