Skip to content
Bullion API

Bullion API prices in Zapier

Build a no-code Zap that fetches metal prices on a schedule and sends them to Slack, Gmail or a spreadsheet. Prices refresh hourly on weekdays, and each value keeps its observation time.

Prices refresh hourly on weekdays. No refresh runs at 22:00 UTC on weekdays or at 23:00 UTC on Friday, so those runs return the last price with its earlier observation time. Each value is sent with its observation time, so readers can see how old it is.

Zapier names its steps as they appear in the Zap editor. If a name differs, look for the same step.

A weekday message, with its observation time

Synthetic example. The Zap fills these fields from the API response: the value, its observation time and the change.

Plain text
Gold: 4,100.00 USD per troy oz
Observed 2026-11-05 14:00 UTC
Change over 1 day: +0.45%

Build the Zap in seven steps

  1. Start with a schedule

    Add a Schedule by Zapier trigger and choose the Every Hour event. Set the time offset to a few minutes past the hour. Leave Trigger on weekends? off, so the Zap runs on weekdays only and makes no request at weekends.

  2. Optional: check weekdays in UTC

    The schedule follows your Zapier account's timezone, and the refresh pauses are set in UTC. If your account is not on UTC, add Formatter by Zapier: choose Date / Time, the Format transform and the ddd format, map the date from the Schedule step, and set the timezone to UTC. Then add Filter by Zapier and continue only when the day is not Sat and not Sun. Runs on a UTC weekend stop here, before the price request.

  3. Fetch the price

    Add Webhooks by Zapier, choose the GET event and set the URL to the price endpoint. In Headers, add X-API-Key with your key.

    GEThttps://bullionapi.dev/v1/gold/price?currency=USD&unit=troy_ozShell
    curl "https://bullionapi.dev/v1/gold/price?currency=USD&unit=troy_oz" \
      -H "X-API-Key: bullion_YOUR_API_KEY"
  4. Map the value and the time

    From the Webhooks step, map the value and the date of the first observation in the first series. Keep them as text: the API sends each value as a decimal string with up to eight decimal places. To show two decimals, use the Numbers tools in Formatter by Zapier, then check the step's preview before you turn the Zap on.

  5. Send the message

    Add a Slack, Gmail or Google Sheets action and place the mapped fields in it. The example above is one message.

  6. Optional: alert on a rise of more than 1%

    Add a second Webhooks by Zapier GET to the change endpoint with period set to 1d. Then add Filter by Zapier and continue only when change_percent is greater than 1. change_percent is a percentage, so 1 means 1%. This filter alerts on a rise only. To alert on a fall of more than 1%, use less than -1 instead. The check adds one request for each run.

    GEThttps://bullionapi.dev/v1/gold/change?currency=USD&unit=troy_oz&period=1dShell
    curl "https://bullionapi.dev/v1/gold/change?currency=USD&unit=troy_oz&period=1d" \
      -H "X-API-Key: bullion_YOUR_API_KEY"
  7. Test, then turn it on

    Test each step with its sample data and check the previews. Each test calls the API, so each one uses requests from your allowance.

What the API sends back

The price response holds one series with one observation. The value is a decimal string in the requested unit, and the date is the UTC time of the observation.

JSON
{
  "status": "success",
  "metric": "price",
  "metal": "gold",
  "currency": "USD",
  "unit": "troy_oz",
  "start": null,
  "end": null,
  "series": [
    {
      "id": "gold_price",
      "label": "Gold spot price",
      "unit": "troy_oz",
      "frequency": "hourly",
      "method": "latest",
      "observations": [{ "date": "2026-11-05T14:00:00.000Z", "value": "4100" }]
    }
  ]
}

Keep your key private

  1. Create an API key in your dashboard.
  2. Put the key only in the Zapier step. Zapier stores what you type into a step, so treat anyone with access to the Zap as having the key. Never paste it into shared documents, screenshots or client-side code.
  3. If the Zap is shared or the key leaks, revoke the key in your dashboard and add a new key to the step.

Errors you may see

A failed Webhooks step shows the status code and the API's message. Check the status code first, then the message.

Common API errors and what to check
StatusMessageWhat to check
401Missing API keyThe Headers field has no X-API-Key row.
401Invalid or revoked API keyCopy the key again from your dashboard, or create a new one.
403Your free trial has ended. Choose a plan at https://bullionapi.dev/pricing to keep using the API.Choose a paid plan, then turn the Zap on again.
404The requested API path was not found.Check the URL, including the metal name and the path.
404The change check has no stored price for one or both days.Wait for the next refresh, then run the Zap again. The price step still works.
429Rate limit exceededWait for the window to reset (see the retry-after header), then run the Zap again.
429Your monthly usage limit has been reached. Please upgrade your subscription plan.Your plan has used its monthly requests. Choose a larger plan.

For every endpoint and parameter, see the API reference. For a spreadsheet workflow instead, see Google Sheets.