To get live gold prices in Zapier, build a 2-step Zap: a Schedule trigger (hourly), then a Webhooks by Zapier → Custom Request GET to api.goldprice.dev/v1/spot/XAU-USD-SPOT with your API key in the X-API-Key header. The free tier covers 5,000 calls/month, no credit card. Tested April 2026 against Zapier (Webhooks by Zapier requires a paid plan; Schedule trigger is on Free).
Get your goldprice.dev API key
Sign up for a free account at goldprice.dev/onboarding. Your dashboard shows a key starting with ga_live_. You will paste it into the Zap's Webhooks step in step 3; Zapier stores headers as encrypted Zap settings, not in plaintext exports.
The free tier includes 5,000 calls/month and gold spot in 31 currencies. No credit card required.
Create the Zap with a Schedule trigger
From Create → Zap, pick the Schedule by Zapier trigger. Choose Every Hour (hourly is the safe free-tier default; every-15-min uses 2,880 calls/month, within Free). Pick a minute offset (e.g. :00). Test the trigger and continue.
Add Webhooks by Zapier → Custom Request GET
Add an action: Webhooks by Zapier → Custom Request. Custom Request mode is required because the simpler GET action does not expose Headers configuration. Fill the fields below.
# zapier: Webhooks by Zapier: Custom Request GET# curl-equivalent: https://api.goldprice.dev/v1/spot/XAU-USD-SPOTMethod: GETURL: https://api.goldprice.dev/v1/spot/XAU-USD-SPOTData Pass-Through?: falseData: (leave empty)Unflatten: yesBasic Auth: (leave empty)Headers: X-API-Key: ga_live_replace_with_your_key_here Accept: application/jsonTest the action and inspect parsed fields
Click Test action. Zapier auto-parses the JSON response and exposes every field as a usable token (price, bid, computed_at, etc.) for downstream steps. Add a third step to write the result somewhere, Slack message, Google Sheets row, Airtable record. Free Zapier supports 2 steps; multi-step Zaps require Starter or higher.
Switch currency or metal
Symbols are METAL-CURRENCY-SPOT. To track multiple symbols, duplicate the Zap (one per symbol), Zapier does not natively iterate URLs in a single Zap unless you add a Looping by Zapier step (paid). Multi-currency examples below.
# USD spot, defaultURL: https://api.goldprice.dev/v1/spot/XAU-USD-SPOTURL: https://api.goldprice.dev/v1/spot/XAU-INR-SPOTURL: https://api.goldprice.dev/v1/spot/XAU-EUR-SPOT# Silver in USDURL: https://api.goldprice.dev/v1/spot/XAG-USD-SPOTExpected output
{ "symbol": "XAU", "quote_currency": "USD", "unit": "troy_ounce", "contract_type": "spot", "price": "4012.75", "is_stale": false, "computed_at": "2026-10-23T07:00:18.221118+00:00"}Zapier displays the parsed response in the Test panel. Downstream steps reference fields by name, the price token is what you typically pipe into a Slack message body or a Sheets cell value.
Common errors
| Code | What you see | Fix |
|---|---|---|
| 401 | Test action returns 401 Unauthorized in the run log | API key missing or invalid. Edit the Webhooks step → Headers, replace the value of X-API-Key with a fresh key from your dashboard. Re-test. Zapier caches the previous test response, clicking Test action again re-fires. |
| 429 | Sporadic 429 Too Many Requests in the Zap run history | Schedule cadence too aggressive for your tier. Hourly = 720 calls/month (inside free tier). Every-15-min = 2,880/month (also inside Free). Count other Zaps and retries; see /pricing for paid plans. Add a Filter by Zapier step after the Webhook with Status code is 200 to halt downstream steps on transient errors. |
| N/A | Webhooks step shows raw JSON string instead of parsed fields in downstream tokens | You used the simpler GET action instead of Custom Request, or you set Unflatten to no. Custom Request with Unflatten = yes exposes nested fields (e.g. sources__0__display_name) to downstream tokens. |
Going further
- Add a Filter step after the Webhook for
price > thresholdto convert this into a price-alert Zap - Pipe the response into a Google Sheets row-append for an audit log of every refresh
- Add a Formatter by Zapier step to format the timestamp from ISO 8601 into a friendly date for Slack messages
- Duplicate the Zap once per metal (gold, silver, copper) for a multi-asset alerting setup
- Use Looping by Zapier (paid) to iterate over a list of symbols in one Zap instead of duplicating