eToro market routes
Search instruments, read quotes, list exchanges, and retrieve candle history from eToro.
The /etoro namespace exposes four public market-data routes backed by eToro's
official instrument search and market rates APIs. StonkTrader keeps the eToro
credentials server-side and returns a normalized response contract.
Search instruments
curl "https://api.stonktrader.finance/etoro/instruments?q=AAPL&limit=10"| Parameter | Default | Description |
|---|---|---|
q | required | Symbol or company-name search text |
limit | 10 | Maximum results, from 1 to 50 |
Results contain the eToro instrumentId, symbol, displayName,
instrumentType, exchange, and current tradability state.
{
"code": 0,
"message": "ok",
"data": {
"items": [
{
"instrumentId": 1001,
"symbol": "AAPL",
"displayName": "Apple",
"instrumentType": "Stocks",
"exchange": "NASDAQ",
"isTradable": true
}
]
}
}Get a quote
curl "https://api.stonktrader.finance/etoro/quote?symbol=AAPL"The normalized quote includes the eToro instrument ID, current price, bid, ask, spread, absolute and percentage daily change, exchange, tradability state, and the official rate timestamp.
{
"code": 0,
"message": "ok",
"data": {
"quote": {
"instrumentId": 1001,
"symbol": "AAPL",
"displayName": "Apple",
"exchange": "NASDAQ",
"isTradable": true,
"price": 325.1,
"bid": 325,
"ask": 325.22,
"spread": 0.22,
"change": 4,
"changePercentage": 1.25,
"timestamp": "2026-09-03T09:03:00Z"
}
}
}List exchanges
curl "https://api.stonktrader.finance/etoro/exchanges"Returns the eToro exchange ID and display name for each supported exchange.
{
"code": 0,
"message": "ok",
"data": {
"items": [{ "exchangeId": 4, "displayName": "NASDAQ" }]
}
}Get candle history
curl "https://api.stonktrader.finance/etoro/candles?symbol=AAPL&interval=OneDay&count=30&direction=desc"interval accepts OneMinute, FiveMinutes, TenMinutes, FifteenMinutes,
ThirtyMinutes, OneHour, FourHours, OneDay, or OneWeek. count ranges
from 1 to 1000. Each candle contains timestamp, open, high, low, close, and
volume.
{
"code": 0,
"message": "ok",
"data": {
"instrumentId": 1001,
"symbol": "AAPL",
"interval": "OneDay",
"direction": "desc",
"candles": [
{
"timestamp": "2026-09-03T00:00:00Z",
"open": 320,
"high": 326,
"low": 319,
"close": 325,
"volume": 100
}
]
}
}Caching
Search results are cached for five minutes and quotes for 15 seconds. Upstream
rate limits return HTTP 429 and preserve Retry-After when provided.
Exchange metadata is cached for 24 hours and candle history for one minute.
When REDIS_URL is configured, Redis shares these caches across API replicas;
otherwise, the API uses its bounded in-memory fallback.
x402 access
All four capabilities are also available as per-request paid resources under
/x402/etoro/*. They return the same normalized data, use the backend's eToro
credentials, and cost 0.001 USDG per successful request. See the
x402 paid API for payment discovery and settlement headers.
Errors
| HTTP status | Meaning |
|---|---|
400 | Invalid query parameters |
404 | Instrument, quote, or candle history not found |
429 | eToro rate limit reached; inspect Retry-After |
502 | eToro returned an unavailable or invalid response |
503 | Credentials are missing or rejected |
504 | eToro did not respond before the backend timeout |