Aurelia

Pool candles API

GET/pools/:chain/:address/candles

OHLC bars of a pool's base token, in USD or in the quote token.

Parameters

NameInTypeDefaultAllowed values
chainpathstringrequiredevm:56 (BSC), solana, evm:8453 (Base), evm:4663 (Robinhood Chain) or evm:1 (Ethereum)
addresspathstringrequiredPool 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)
resquerystring1m1m, 5m, 15m, 1h, 4h, 1d
fromqueryintegerto − 500 barsUnix seconds
toqueryintegernowUnix seconds, ≥ from; at most 5,000 bars from from
currencyquerystringusdusd, quote
fillquerystringoff1 or true: repeat the previous close through empty intervals

Response

FieldTypeMeaning
chain, pool, res, currencystringThe request, echoed.
bars[]arrayAscending, from ≤ t ≤ to.
tnumberBar start, unix seconds, aligned to UTC multiples of res.
o, h, l, cnumberOpen, high, low, close. Each bar opens at the previous bar's close.
vnumberUSD volume, in both currencies.
nnumberTrades: 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. In quote, every interval with a trade has one. With fill, empty intervals repeat the previous close with v and n at 0. Swaps worth under $0.01 do not set a price.
  • from and to are seconds; milliseconds are not detected. An unknown pool answers 200 with no bars. 400 for a bad res, currency or range, or more than 5,000 bars.

Try it in the interactive docsCreate a free account