adona-robot · market data by capacity

A precious metals price API

Gold against the dollar and the euro, silver, platinum and palladium: the live bid and ask and candles from one second to one day, by REST and on one WebSocket, beside 46 currency pairs, on every paid plan.

Who uses it
A precious metals dealer pricing its shop, a jeweller updating a catalogue, a treasury tool watching a hedge, a commodities dashboard, a market news site with a metals panel, an app that tracks a holding of gold or silver for its users.
The metals
5 metals: XAUUSD, XAUEUR, XAGUSD, XPTUSD and XPDUSD, each priced against the currency in its name, each with its own page giving its measured history and its one-second activity.
What a metal price is
Each metal is quoted as its market quotes it, against the currency named second in its symbol: dollars for gold, silver, platinum and palladium, euros for gold against the euro. Gold in euros is a symbol of its own, so you do not compute it from gold in dollars and the euro yourself.
Bid, ask and candles
The stream sends the live bid and ask as they change, and candles as they close on S1, M1, M5, M15, H1, H4, D1. REST serves the same candles back in time, up to 5 000 a page with a cursor, so a chart drawn from history joins the live price without a seam.
Drawing a metals chart
Read the recent candles of a metal by REST to draw the chart, then subscribe to candle:SYMBOL:TIMEFRAME on the stream: the bars that close afterwards join the history without a seam, and quote:SYMBOL moves the last price between them.
Metals and currencies on one connection
The metals and the 46 currency pairs share one stream and one API: a single subscribe frame takes up to 64 channels, so a screen that shows gold, silver and the dollar against the euro needs one connection, counted once in the month's peak, not one per market.
How far back
Gold against the dollar has one-minute bars since 16.05.2025 and one-second bars since 06.09.2026; one-second history is kept 180 days rolling. Each metal's page gives its own dates, measured on the candle store.
Where the history changes feed
Before 21.05.2026, gold's one-minute history comes from a different price feed than the live series, and the tick volume of those candles is that feed's, not counted the same way. Each metal's page gives the date its own history changes feed. A candle's volume is a tick volume, the number of price updates in the bar, not a traded volume.
Quiet hours
Metals trade almost around the clock on weekdays and stop at the weekend. A second without a price change has no one-second bar, so a thinner metal such as palladium shows gaps that are not outages; their pages give the measured number of one-second bars a week.
Showing them to your users
Display a metal in your product, relay it to your clients and keep it, on every paid plan. A metal your connections follow live for more than 80% of its open hours in a month adds CHF 150 to the next invoice, on top of the plan.
What it costs
Sold by capacity, from CHF 500 a month: the monthly peak of simultaneous connections, and slices of 1 000 bars. Every paid plan carries every metal and every currency pair.
The trial
The free trial carries EURUSD · XAUUSD for 7 days: gold against the dollar is in it, the other metals start with a paid plan, which carries all of them.

Facts as of 06.10.2026.

First call

# 1. your server exchanges the key for a short-lived token
export ADONA_API_KEY="${ADONA_API_KEY:-adk_live_...}"
RESP=$(curl -s https://api.adona-robot.com/v1/tokens \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $ADONA_API_KEY" \
  -d '{"end_user_id":"u-42"}')
TOKEN=$(echo "$RESP" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4)
[ -n "$TOKEN" ] || echo "refused: $RESP"

# 2. the token reads candles
curl -s 'https://api.adona-robot.com/v1/candles?symbol=XAGUSD&timeframe=S1&limit=1000' \
  -H "Authorization: Bearer $TOKEN"

The quickstart: from the key to the live stream, step by step

Start the free trial

Related guides

Metals