
Search Reddit for a gold price API and the thread is nearly always the same shape. Someone is building a dashboard, a price alert, a trading bot, or a storefront that quotes bullion, and they want a live gold price they can pull from code. Before wiring anything in, they ask the same handful of questions in r/algotrading, r/webdev, and r/golang: is there a free tier, how fresh is the number, what are the limits, can I use it commercially, and can I trust the data.
This post answers those questions directly, using goldprice.dev as the worked example. No sign-up is needed to read it, and the first API call below runs without a key.
What goldprice.dev is, and what it isn't
It is a commodity pricing API for developers: gold, silver, and copper, over a single authenticated REST endpoint at https://api.goldprice.dev. Every response carries a cross-validated staleness flag, and you can ask for per-source prices and timestamps or a divergence figure with ?include=, so your code can tell when one upstream is lagging instead of failing silently. An MCP server ships on every plan, including the free one.
It is not a brokerage or a settlement feed. The prices are indicative reference data, published for display, analytics, and alerts. If you need an executable dealing quote to settle a trade, no public gold price API is the right tool, this one included.
Is there a free tier?
Yes, with no card. Free includes 5,000 calls a month at 10 requests a minute and gold, silver, and copper spot 15 minutes late. Paid plans add live prices, dealer prices, and higher limits:
| Plan | Price | Calls / month | What it adds |
|---|---|---|---|
| Free | $0 | 5,000 | XAU/XAG/HG spot, MCP, 30-day daily history |
| Basic | $19/mo | 100,000 | Live spot, dealer prices, 1-year daily history |
| Plus | $39/mo | 300,000 | Full daily history (gold from 1996); 1h/4h bars, 30 days; 1 stream |
| Pro | $89/mo | 1,000,000 | Full intraday; 5 SSE + 5 WebSocket; dealer streams |
How often does the price update?
Live spot prices come from licensed primary market data. Paid plans get live prices; Free, anonymous calls and this website get them 15 minutes late. Every response carries computed_at and sets is_stale when a value is older than its expected refresh window. ?include=sources gives per-source timestamps so you can check freshness.
What are the rate limits?
Free allows 10 requests a minute; Basic 60, Plus 120, and Pro 300. Every response returns the standard X-RateLimit-Remaining header, so the correct pattern is to read that header and back off when it runs low rather than polling blind and eating 429s. For most apps a short client-side cache, matched to how often the underlying value actually moves, keeps you well inside the free tier.
How do I authenticate?
A bearer token. Keys are prefixed ga_live_ and go in the Authorization header. There is also an anonymous surface, limited per IP to 30 requests/minute, 100/hour and 1,000/month, that returns price, timestamps and staleness fields. Bid/ask are optional, paid-only and require a coherent two-sided quote. Authentication unlocks ?include=stats for open, high, low, previous close, change, and the cross-source divergence fields, ?include=sources and ?include=karat are available either way.
Can I see where the number comes from?
Yes, and this is the part most APIs hide. Add ?include=sources and the response includes a sources[] array, one row per upstream, each with its own price and timestamp. When sources disagree, ?include=stats (authenticated) carries divergence_bps and a divergence_flag, so you can decide your own tolerance instead of trusting a single blended number with no provenance. If you are building anything where a wrong price has a cost, that visibility is the reason to use a structured API over scraping a webpage.
Can I use it commercially?
Every plan allows commercial use. No plan requires a credit link. Redistribution or resale of the data itself needs a separate agreement: email hello@goldprice.dev.
Can my LLM agent use it?
Yes. The MCP server is included on every plan, including free. You add one config block to Claude, Cursor, or any MCP-capable runtime and the agent fetches the live price directly, with no hand-rolled tool code. The data is the same one the REST API serves. There is a full MCP walkthrough if you want the setup detail.
The shortest call
No key, no dependencies:
curl https://api.goldprice.dev/v1/prices?symbol=XAU-USD-SPOTYou get JSON with price and a staleness flag, 15 minutes late. Optional bid/ask require a paid plan and a coherent two-sided quote. Add ?include=karat for a per-gram breakdown by karat or ?include=sources for the contributing sources. When you want the full shape and higher limits, a free key takes a minute.
For the language-specific version, Fetch live gold prices in JavaScript covers the REST path end to end, and Caching gold prices and staying inside rate limits covers doing it at volume.
Live gold prices, historical OHLC, and multi-source aggregation, available via REST and SSE.