HomeBullion dealer price monitoring API

Bullion dealer price monitoring API

For a gold price API with dealer prices, GET /v1/physical/id returns Indonesian dealer sell and buyback quotes in IDR, with premiums over spot. Dealer quotes need Basic or above. For spot gold per gram in rupiah, use /v1/convert or /gold/idr.

Compare Indonesian bullion quotes from the physical price API instead of treating international spot as a dealer price. The Indonesia route is configured for three 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_grams to compare bars and gram products on a common basis.
  • Purity and product: keep product, brand, and price_basis with 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: sell is the dealer's selling price; buyback is the price offered when the dealer buys back. A source may return null when it does not publish a buyback quote.
  • Freshness: use data_updated_at for the source observation and fetched_at for 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"

This endpoint requires Basic, Plus or Pro. All allow commercial use without credit across your own websites and apps, including group companies. Redistribution and resale are prohibited. See the terms. 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": "pegadaian", "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. Dealer quotes and commercial use are included on Basic, Plus and Pro. See the terms.