adona-robot — market data by capacity
From CHF 500 a month,
redistribution allowed.
Relay the feed, keep the data.
One-second OHLC candles and a live quote socket, foreign exchange and metals. Show them in your product, relay them to your own clients, keep what you receive: every plan allows it, with no connection to negotiate and nobody to call. A feed you relay around the clock is priced per symbol.
Specification
- Instruments
- 46 FX pairs, 5 metals
- Timeframes
- 1s · 1m · 5m · 15m · 1h · 4h · 1d
- Quotes
- bid and ask, live
- History 1s
- since 06.09.2026, kept 180 days rolling
- History 1m+
- since 16.05.2025 for EURUSD, GBPUSD, USDJPY and XAUUSD; since 17.03.2026 or 17.05.2026 for the others
- End users
- included, no per-seat fee
- Redistribution
- allowed: relay and keep
Before 21.05.2026 (22.05.2026 for EURUSD), the 1m history comes from a different price feed than the live series, and so do some 1m bars filled in afterwards, until 04.06.2026 at the latest. Each symbol's page gives its own dates.
Measured 03.10.2026. Every number above has one owner; none is restated.
One second, redrawn five times a second
Your end users
They read the data inside your product, or wherever you relay it, on every paid tier. Nothing more to sign, nobody to call.
- Billing
- at your peak of simultaneous connections, never per declared user. 500 people registered with you of whom 40 are online at the same moment bill as 40.
- Refusals
- none. No connection is ever refused on a paid tier: going over moves you to the next tier on the following invoice, and coming back down moves you back.
- Visibility
- the connection count continuously, and an alert at 80% then at 100% of your tier. No surprise invoice.
What this is not
- No
- No bulk export or download: history comes through the metered API only.
- No
- No one-second history before 06.09.2026, when the archive started.
- No
- No reconstruction after an incident at the one-second step: if our database is unavailable for several minutes, the one-second candles for that period are lost and do not come back. One minute and above reconstruct.
- No
- No traded volume, no order book, no market depth. The volume of a candle is a tick volume: the number of price updates received in the bar.
- No
- No support for your end users. Support goes through one named contact on your side, during business hours.
- No
- No investment advice and no recommendation. Prices are supplied for information.
Capacity
Sold by capacity, not by seat: your peak of simultaneous connections and slices of 1 000 bars. How many people are registered with you is not our business; what counts is how many are online at the same moment.
| Tier | Connections | Slices / min | Slices / month | Price |
|---|---|---|---|---|
| Trial | 3 | 60 | 2 500 / j | 7 days, free |
| Starter | 30 | 600 | 750 000 | CHF 500 |
| Growth | 100 | 2 000 | 2 500 000 | CHF 1 200 |
| Scale | 300 | 6 000 | 7 500 000 | CHF 2 400 |
| Enterprise + SLA | 1 000 | 20 000 | 25 000 000 | CHF 5 000 |
| Beyond | negotiated, dedicated instance, on request · sales@adona-robot.com | |||
One connection is one user online at the same moment, measured at the monthly maximum over a one-minute window. No connection is ever refused on a paid tier.
Table dated 03.10.2026. A slice is 1 000 bars, rounded up; an empty response costs nothing. Enterprise adds an SLA: an answer to every request within 24 h, and a dedicated support agent.
Prices exclude VAT. Swiss VAT is added for a customer established in Switzerland or Liechtenstein; a business established elsewhere pays no Swiss VAT (reverse charge). A company number is asked at payment.
Continuous feed
Redistribution is allowed on every plan. A feed you relay around the clock has its own line on the invoice: each symbol followed live for more than 80% of its open hours in the month.
- What counts
- a symbol one of your connections is subscribed to on the live stream, even while its price does not move, or that a REST call returns live: the bar still forming, or a one-second bar closed less than 10 s ago. It counts while its market is open and our service is up, during the part of the month you were on a paid plan. One connection or a thousand on the same symbol count the same; history, bars closed longer ago, never counts.
- Price
- CHF 150 per symbol and month, on top of the plan, no cap, on the invoice that follows the month, or on the closing invoice when the subscription ends. Reaching the threshold never cuts the feed.
- Our outages
- a moment our service was down, or we did not measure, is never billed to you.
| Case | Plan | Continuous feeds | Month |
|---|---|---|---|
| App, 200 users, chart open during the day | Scale | none | CHF 2 400 |
| Worldwide app, 200 users, 5 pairs around the clock | Scale | 5 × CHF 150 | CHF 3 150 |
| Server, one socket, relays 24 symbols | Starter | 24 × CHF 150 | CHF 4 100 |
| Server, one socket, relays all 51 | Starter | 51 × CHF 150 | CHF 8 150 |
| 1 000 users, all 51 around the clock | Enterprise | 51 × CHF 150 | CHF 12 650 |
Table dated 30.09.2026. Every total is the plan's price plus the continuous feeds.
Symbols
Every paid plan carries every symbol below. The trial carries EURUSD · XAUUSD.
FX pairs · 46
- AUDCADAUD / CAD
- AUDCHFAUD / CHF
- AUDJPYAUD / JPY
- AUDNZDAUD / NZD
- AUDSGDAUD / SGD
- AUDUSDAUD / USD
- CADCHFCAD / CHF
- CADJPYCAD / JPY
- CHFJPYCHF / JPY
- EURAUDEUR / AUD
- EURCADEUR / CAD
- EURCHFEUR / CHF
- EURDKKEUR / DKK
- EURGBPEUR / GBP
- EURJPYEUR / JPY
- EURNOKEUR / NOK
- EURNZDEUR / NZD
- EURSEKEUR / SEK
- EURSGDEUR / SGD
- EURUSDEUR / USD
- GBPAUDGBP / AUD
- GBPCADGBP / CAD
- GBPCHFGBP / CHF
- GBPDKKGBP / DKK
- GBPJPYGBP / JPY
- GBPNOKGBP / NOK
- GBPNZDGBP / NZD
- GBPSEKGBP / SEK
- GBPSGDGBP / SGD
- GBPUSDGBP / USD
- NOKJPYNOK / JPY
- NOKSEKNOK / SEK
- NZDCADNZD / CAD
- NZDCHFNZD / CHF
- NZDJPYNZD / JPY
- NZDUSDNZD / USD
- SEKJPYSEK / JPY
- SGDJPYSGD / JPY
- USDCADUSD / CAD
- USDCHFUSD / CHF
- USDDKKUSD / DKK
- USDHKDUSD / HKD
- USDJPYUSD / JPY
- USDNOKUSD / NOK
- USDSEKUSD / SEK
- USDSGDUSD / SGD
Metals · 5
Questions
- Can we show the data to our own clients?
- On every paid plan, yes: show it in your product, relay it to your clients and keep what you receive. The trial is for testing an integration. A symbol you follow live for more than 80% of its open hours in a month adds CHF 150, on the invoice that follows the month.
- Is there a free trial?
- Yes: 7 days on EURUSD · XAUUSD, for a company address, one per company. Its key is issued from the account page.
- What sets the plan we pay?
- Every paid plan starts on Starter; after that, your monthly reading of peak connections and slices sets the plan, as the plans above explain. A paid plan never refuses a connection.
- How do we cancel?
- From the account page, on our payment provider's billing page, with no commitment. The plan runs to the end of the month, and the closing invoice arrives on the first of the next one.
- Can the API key go in our front-end?
- No. The key stays on your server, which exchanges it for a twelve-hour token per end user; the browser uses that token. The door that takes the key refuses a browser's call.
- Which instruments?
- The 51 symbols listed above, foreign exchange and metals, all of them on every paid plan.
First call
A key, a token, then candles. Your server holds the key and never puts it in a browser.
# 1. your server exchanges the key for a short-lived token
curl -s https://api.adona-robot.com/v1/tokens \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer adk_live_...' \
-d '{"end_user_id":"u-42"}'
# 2. the token reads candles
curl -s 'https://api.adona-robot.com/v1/candles?symbol=EURUSD&timeframe=S1&limit=1000' \
-H 'Authorization: Bearer <token>'MCP server, for AI agents
An agent connects to https://api.adona-robot.com/mcp as a remote MCP server. Three tools answer without a key; get_candles reads history with your API key and is billed exactly like the REST call.
- get_offerno key needed
- list_symbolsno key needed
- quote_price_forno key needed
- get_candlesyour API key, billed like the REST history
The configuration below is for Claude Code (.mcp.json) and Cursor. Your key goes in the agent's configuration, on your machine or server, never in a web page; without it, the three keyless tools still answer.
{
"mcpServers": {
"adona-robot": {
"type": "http",
"url": "https://api.adona-robot.com/mcp",
"headers": {
"Authorization": "Bearer adk_live_..."
}
}
}
}