Goldprice API / Use cases / Indonesia dealer monitoring
Bullion dealer price monitoring API
Compare Indonesian bullion quotes from the physical price API instead of treating international spot as a dealer price. The Indonesia route is configured for four local sources. Returned quotes vary as sources publish; each quote includes its product, denomination, sell price, optional buyback price, and source timestamps.
What to compare
- Comparable weight: use
denomination_gramsto compare bars and gram products on a common basis. - Purity and product: keep
product,brand, andprice_basiswith the quote. The response does not expose a universal purity field; confirm a product's stated purity before comparing it with another. - Sell and buyback:
sellis the dealer's selling price;buybackis the price offered when the dealer buys back. A source may returnnullwhen it does not publish a buyback quote. - Freshness: use
data_updated_atfor the source observation andfetched_atfor when Goldprice retrieved it. Update cadence is source-dependent.
Request Indonesia dealer quotes
curl -H "Authorization: Bearer $GOLDPRICE_API_KEY" \
"https://api.goldprice.dev/v1/physical/id"The endpoint requires the Physical tier or higher. Physical supports evaluation and internal monitoring; commercial use requires Pro or Realtime Pro. The current terms require visible goldprice.dev attribution when data is displayed to end users, with an internal-business-use exception. Keep each source and timestamp in your monitoring records. Store the API key on your server.
Response shape
This response is a production-shaped example with values from the physical API fixture; prices and timestamps change as sources update.
{
"result": "success",
"country": "ID",
"currency": "IDR",
"spot_reference": { "xau_usd": "4123.50", "fx_usd_local": "16250.00", "spot_per_gram_local": "2154917.00" },
"quotes": [{
"source": "treasury_id", "brand": null, "product": "digital_gram",
"denomination_grams": null, "price_basis": "per_gram",
"sell": "2497154", "buyback": "2414599", "premium_over_spot_bps": 1588,
"data_updated_at": "2026-07-04T02:14:02Z", "fetched_at": "2026-07-04T02:15:09Z"
}]
}Build a monitoring check
const key = process.env.GOLDPRICE_API_KEY;
if (!key) throw new Error("GOLDPRICE_API_KEY is required");
const response = await fetch("https://api.goldprice.dev/v1/physical/id",
{ headers: { Authorization: "Bearer " + key } },
);
if (!response.ok) throw new Error("Goldprice returned " + response.status);
const { quotes } = await response.json();
for (const quote of quotes) {
const observed = Date.parse(quote.data_updated_at);
const stale = !Number.isFinite(observed) || Date.now() - observed > 60 * 60 * 1000; // example policy
console.log(quote.source, quote.product, quote.price_basis, quote.denomination_grams,
quote.sell, quote.buyback ?? "N/A", quote.data_updated_at, stale);
}Alert on a stale or missing quote according to your own policy, and keep the source and timestamps with every stored observation. The API is a monitoring input; it is not a settlement or trading system.
Continue with the API
Read the physical price API reference, review Indonesia coverage, or start with the plan details. Commercial use of dealer quotes requires Pro or Realtime Pro; review the terms and attribution guidance for your display.