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

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.