Pool candles API
GET/pools/:chain/:address/candles
OHLC bars of a pool's base token, in USD or in the quote token.
Parameters
| Name | In | Type | Default | Allowed values |
|---|---|---|---|---|
chain | path | string | required | evm:56 (BSC), solana, evm:8453 (Base), evm:4663 (Robinhood Chain) or evm:1 (Ethereum) |
address | path | string | required | Pool address (BSC; a 32-byte pool id for Uniswap V4, PancakeSwap Infinity CL, and four.meme TokenManager2 and flap.sh curves) or pool account (Solana) |
res | query | string | 1m | 1m, 5m, 15m, 1h, 4h, 1d |
from | query | integer | to − 500 bars | Unix seconds |
to | query | integer | now | Unix seconds, ≥ from; at most 5,000 bars from from |
currency | query | string | usd | usd, quote |
fill | query | string | off | 1 or true: repeat the previous close through empty intervals |
Response
| Field | Type | Meaning |
|---|---|---|
chain, pool, res, currency | string | The request, echoed. |
bars[] | array | Ascending, from ≤ t ≤ to. |
t | number | Bar start, unix seconds, aligned to UTC multiples of res. |
o, h, l, c | number | Open, high, low, close. Each bar opens at the previous bar's close. |
v | number | USD volume, in both currencies. |
n | number | Trades: priced ones in usd, all of them in quote. |
Example
Captured 2026-09-28 18:03 UTC on a test instance, trimmed to 3 bars.
curl -s -H 'Authorization: Bearer <key>' 'https://app.aurelia.build/api/pools/solana/8sN9549P3Zn6xpQRqpApN5jE6mHYrqJKeTsKr8idYDqi/candles?res=1h&from=1790611200&to=1790618400'
{
"chain": "solana",
"pool": "8sN9549P3Zn6xpQRqpApN5jE6mHYrqJKeTsKr8idYDqi",
"res": "1h",
"currency": "usd",
"bars": [
{
"t": 1790611200,
"o": 0.000006,
"h": 0.000006,
"l": 0.000005857142857142857,
"c": 0.000006,
"v": 9.15,
"n": 2
},
{
"t": 1790614800,
"o": 0.000006,
"h": 0.00000675,
"l": 0.000006,
"c": 0.00000675,
"v": 13.5,
"n": 1
}
]
}
Notes
- Bars are cached in pages of 500. A page the indexer has fully passed is cached for 24 h; the page holding now for up to a minute: tick it with the candles channel.
- In
usd, an interval without a priced swap has no bar. Inquote, every interval with a trade has one. Withfill, empty intervals repeat the previous close withvandnat 0. Swaps worth under $0.01 do not set a price. fromandtoare seconds; milliseconds are not detected. An unknown pool answers200with no bars.400for a badres,currencyor range, or more than 5,000 bars.