Pass-through, per source
Most metals APIs collect prices from several feeds, run a weighted median, throw away the inputs, and hand you one number. The blend is opaque. When prices disagree across exchanges (which happens daily around rollover, around settlement, around every market close), you can't tell whether the API's number reflects reality or the API's internal weighting.
Spot prices pass through one licensed primary source without blending or averaging. During outages, a licensed backup serves gold and silver. Copper has no backup. Add ?include=sources to see the source that produced the price, its price, fetched_at and source_timestamp.
GET /v1/prices?symbol=XAU-USD-SPOT&include=sources
{
"symbol": "XAU",
"price": "4803.94",
"is_stale": false,
"computed_at": "2026-05-01T02:34:02Z",
"sources": [
{ "source": "oracle.xau_usd", "display_name": "Live spot", "price": "4803.94", "fetched_at": "...", "source_timestamp": "..." }
]
}Sources we ingest
Source categories at each tier. Per-call proof of which feeds fired for any given price lives in your /v1/prices response.
| Source | Used for | Tier |
|---|---|---|
| Primary live spot feed | Live gold, silver and copper spot prices | All plans; Free 15 minutes late, paid live |
| Backup spot feed | Gold and silver spot only while the primary is unavailable | All plans; Free 15 minutes late, paid live |
| Futures settlement reference (gold + silver + copper) | Daily settlement, futures continuity, settlement-vs-spot differentials | Legacy plans only |
| exchangerate.dev FX | Currency conversion for non-USD gold prices | All tiers |
Source identifiers, refresh cadences, and upstream endpoint details are documented internally and evolve with each release. If you need this depth for legal evaluation, email hello@goldprice.dev with your use case and we'll respond.
Non-USD prices on the currency pages are USD gold spot multiplied by live FX from exchangerate.dev, our sibling currency API. Non-USD spot rows use no stored FX fallback. If live FX stops, /v1/convert and /v1/carat use the newest stored rate up to 3 days old; non-USD spot rows retain a stale price.
Backup spot feed
Spot uses licensed primary market data. Bid/ask are paid-only and optional, requiring a coherent two-sided quote. If the primary stops, gold and silver switch to a licensed backup until it returns. The backup price can run up to about two minutes behind the market. While it is in use, responses have no bid or ask.
We do not use the backup when the metals market is closed: daily from 17:00 to 18:00 and from Friday 17:00 to Sunday 18:00, all in New York time. Copper has no backup. If its feed stops, the last copper price is marked stale.
Cross-source divergence
Rows with at least two fresh primary sources include divergence_bps: their spread in basis points relative to the mean. Spot rows use one source and omit it. GET /v1/prices/divergence lists symbols above a spread threshold on every tier.
divergence_flag stays false on XAU-USD-SPOT; non-USD gold uses USD spot × live exchangerate.dev FX.
On the LBMA fix
Staleness, per source
The top-level is_stale becomes true when the source serving the price falls behind its expected refresh window. Add ?include=sources to see that source's price, fetched_at and source_timestamp, and assess freshness yourself.
Forward view: futures curve
The market-implied forward price path is served by /v1/forward-view/{asset}. The breakdown below covers the math, source, and refresh cadence.
Futures curve
The next 5 forward gold contracts. Settle prices are ~15 minutes delayed via our primary delayed-feed series with a secondary fallback. Futures values come from publicly available delayed feeds and are not licensed real-time data. The dashed line connects the 5 settle points; gaps appear when both our primary and fallback feeds fail for a contract. Open interest and volume are best-effort null and are not surfaced in the response.
Data freshness
Futures settle prices fire weekdays at 20:30 UTC: a single year-round schedule, +2h post-settle in EDT, +1h in EST, DST-stable.
What we don't do
- LBMA fix. See above.
- Tick-level L2 order books. We publish prices, not depth. Tick-level order books are outside this API's coverage.
- Sub-second latency guarantees. We don't publish a numerical latency SLA.
- Silent blending. The whole point of this page.
Common questions
Where our prices come from and how backup coverage works.
Who are your primary and backup data providers?
We use one licensed primary market data provider for gold, silver and copper. A licensed backup provider covers gold and silver. We do not name either provider.
Is your spot price a composite rate or one contributor’s quote?
We pass through the primary provider’s price without blending or averaging. It is not an official benchmark or the LBMA fix. ?include=sources returns sources[] with fetched_at and source_timestamp.
What happens if your primary feed stops?
A licensed backup serves gold and silver while the primary is unavailable. It can lag about two minutes and has no bid or ask. Copper has no backup. is_stale turns true when the served source falls behind its expected refresh window.
Methodology changelog
| Version | Change |
|---|---|
| v3.3 | Updated data sources, backup coverage, group website use; current paid plans need no credit. |
| v3.2 | Copy corrected to match the API: Free delay, bid/ask availability, copper spot, source fields. |
| v3.1 | Added a backup spot feed for gold and silver. Retired the tokenized-gold fallback. |
| v3.0 | Tightened public methodology to source categories + divergence + staleness concepts. Per-source identifiers, refresh cadences, and aggregation specifics moved out of the public page. |
| v2.1 | Metals pivot. Added silver spot via XAG oracle and copper futures settlement. |
| v2.0 | Pivot to pass-through-per-source. Killed blended-median aggregation. Added live spot oracle, ECB FX, tokenized gold (informational). |
| v1.0 | Initial multi-source aggregation. Tier-1 weighted median (superseded). |
For API endpoint, tier, and product releases beyond methodology revisions, see the product changelog.
Spot something off, or have a source we should consider? Email hello@goldprice.dev. We publish material corrections here.
Questions about the API? Read the docs.