BlogDeveloper

XAUUSD OHLC 1-minute data: access and requests

Get XAUUSD 1-minute OHLC bars on Pro. Compare plan access, request spot gold candles, page results, check closed bars, and find deeper intraday history.

28 Oct 2026 · 2 min read

XAUUSD OHLC 1-minute data: access and requests

1-minute XAU/USD OHLC bars are available on Pro through GET /v1/bars?symbol=XAU-USD-SPOT&interval=1m; Free and Basic get daily bars, while Plus adds 1-hour and 4-hour bars for the last 30 days.

What 1-minute OHLC means here

The symbol is XAU-USD-SPOT. Each bar contains the open, high, low and close for its interval. Prices are decimal strings, quoted in US dollars per troy ounce.

These are spot gold bars. They do not represent a contract traded on one exchange. The volume field is always null because spot gold has no consolidated exchange volume. Do not interpret that value as zero trading activity.

A 1-minute interval describes the bar duration. It does not mean that every returned bar is complete. The current bar can still be forming.

Which plan gets which interval

PlanDaily gold barsIntraday bars
FreeLast 30 daysNot included
BasicLast 1 yearNot included
PlusFrom 19961h and 4h, last 30 days
ProFrom 1996All supported intervals at full depth

The supported intervals are 1m, 5m, 15m, 30m, 1h, 2h, 4h and 1d. Free and keyless callers receive bars 15 minutes late.

Choose the interval and date window together. Plus access to intraday bars does not include 1-minute bars. Daily history also has a different starting point from intraday history.

Request example

Set FROM and TO to the dates or ISO timestamps you need. Set LIMIT to your requested page size and GOLDPRICE_API_KEY to your Pro key.

Shell
curl --get 'https://api.goldprice.dev/v1/bars' \  --header "X-API-Key: $GOLDPRICE_API_KEY" \  --data-urlencode 'symbol=XAU-USD-SPOT' \  --data-urlencode 'interval=1m' \  --data-urlencode "from=$FROM" \  --data-urlencode "to=$TO" \  --data-urlencode "limit=$LIMIT"

Each bar has these fields:

  • bar_start: the start of the interval.
  • open, high, low, close: prices as decimal strings.
  • volume: always null for spot.
  • is_closed: whether the bar has finished forming.

An empty range returns HTTP 200 with bars: []. Handle that result without assuming that every successful request contains observations.

Paging and closed bars

Results arrive newest first. If the response includes next_cursor, pass that value as cursor on the next request to continue paging.

For calculations that need chronological order, arrange the collected bars by bar_start before processing them. Check is_closed before using a bar in a backtest or treating its close as final. A forming bar can change before its interval ends.

Deeper history through bulk files

Deeper intraday history is available through bulk files at /v1/download. Intraday history begins in 2006. Use the historical documentation to distinguish the bars endpoint's plan depth from the deeper files.

The deprecated /v1/prices/history endpoint should be replaced with /v1/bars.

Common mistakes

Do not replace volume: null with an assumed volume. Do not use a forming bar as a completed candle. An intraday request older than your plan's depth returns HTTP 400 with range_too_deep; check your plan window before retrying the same range.

Next

Live gold prices, historical OHLC, and multi-source aggregation, available via REST and SSE.

Keep reading

Start with a free API key

5,000 requests a month on the free plan. No credit card.

Get a free key