Metals Prices Template
- Next.js
- TypeScript
Live gold, silver and platinum spot prices, with a calculator for what your metal is worth today.
A Next.js app that shows precious metal spot prices. See gold, silver and platinum per troy ounce, gram or kilogram, with the 24-hour move and whether the market is open, then work out what your coins, bars or jewellery are worth at today's price. Use it as a price board, or lift the route to add live metal prices to a dealer or jewellery site.

What it does
- Three metals at once
- Gold, silver and platinum load together from one route, which calls the three price APIs in parallel.
- Any unit
- Switch between troy ounces, grams and kilograms; every price on the board follows.
- What is it worth?
- Enter a weight and a metal to value it at spot. The math runs in the browser, so it costs no extra calls.
- Cached for everyone
- One answer serves every visitor for 10 minutes, so a busy page still makes only a few calls an hour.
- Keeps your key private
- The browser only talks to your own API route, which holds the key and limits each visitor to 10 lookups a minute.
How it works
The route: it calls Gold Price, Silver Price and Platinum Price together and caches the answer.
/** GET /api/metals: gold, silver and platinum spot prices in USD, from three APIVerve APIs at once. */
export async function GET(request: Request) {
const hit = fromCache('metals', TTL_MS);
if (hit) return Response.json(hit);
const blocked = guard(request);
if (blocked) return blocked;
return respond(async () => {
const prices = await Promise.all(METALS.map((m) => callApi<Metal>(`${m}price`)));
const data = Object.fromEntries(METALS.map((m, i) => [m, prices[i]]));
toCache('metals', data);
return data;
});
}Deploy it
- Get a free API key
The free plan includes 200 credits a month, no card needed. Create your key.
- Deploy it
Click Deploy to Vercel. Vercel copies the repo to your GitHub account and asks for
APIVERVE_API_KEY: paste your key there. - Open your app
Vercel builds it and gives you a live URL, usually in about a minute. Every push to the repo redeploys it.
Try the Gold Price API — the call this template makes
No key required to try it. Get a key to use it in your app.
{
"status": "ok",
"error": null,
"data": {
"currency": "USD",
"gram": 129.25,
"kilogram": 129251.92,
"ounce": 4020.19,
"lastUpdated": "2026-10-27T12:00:00.000Z",
"change24h": 11.88,
"change24hPct": 0.3,
"changeDirection": "up",
"high24h": 4020.19,
"low24h": 4008.31,
"change7d": -102.49,
"change7dPct": -2.49,
"change30d": -265.95,
"change30dPct": -6.2,
"high30d": 4198.91,
"low30d": 3993.62,
"average30d": 4132.9,
"volatility30d": 0.7777,
"daily": [
{
"date": "2026-09-28",
"price": 4198.34
},
{
"date": "2026-09-29",
"price": 4129.1
},
{
"date": "2026-09-30",
"price": 4181.49
},
{
"date": "2026-10-01",
"price": 4182.57
},
{
"date": "2026-10-02",
"price": 4185.41
},
{
"date": "2026-10-03",
"price": 4137.55
},
{
"date": "2026-10-04",
"price": 4137.54
},
{
"date": "2026-10-05",
"price": 4131.88
},
{
"date": "2026-10-06",
"price": 4122.7
},
{
"date": "2026-10-07",
"price": 4132.77
},
{
"date": "2026-10-08",
"price": 4125.82
},
{
"date": "2026-10-09",
"price": 4198.91
},
{
"date": "2026-10-10",
"price": 4195.82
},
{
"date": "2026-10-11",
"price": 4195.81
},
{
"date": "2026-10-12",
"price": 4186.27
},
{
"date": "2026-10-13",
"price": 4188.41
},
{
"date": "2026-10-14",
"price": 4158.44
},
{
"date": "2026-10-15",
"price": 4144.7
},
{
"date": "2026-10-16",
"price": 4182.94
},
{
"date": "2026-10-17",
"price": 4164.68
},
{
"date": "2026-10-18",
"price": 4164.67
},
{
"date": "2026-10-19",
"price": 4180.55
},
{
"date": "2026-10-20",
"price": 4122.68
},
{
"date": "2026-10-21",
"price": 4120.33
},
{
"date": "2026-10-22",
"price": 4091.63
},
{
"date": "2026-10-23",
"price": 4010.3
},
{
"date": "2026-10-24",
"price": 3993.62
},
{
"date": "2026-10-25",
"price": 3993.62
},
{
"date": "2026-10-26",
"price": 4008.31
},
{
"date": "2026-10-27",
"price": 4020.19
}
],
"marketStatus": "open",
"karatGram": {
"24k": 129.25,
"22k": 118.48,
"21k": 113.09,
"18k": 96.94,
"14k": 75.4,
"10k": 53.85
},
"formatted": {
"ounce": "$4,020.19",
"gram": "$129.25",
"kilogram": "$129,251.92",
"ounceWords": "four thousand, twenty dollars",
"kilogramWords": "one hundred twenty-nine thousand, two hundred fifty-two dollars"
}
}
}