Pool API
GET/pools/:chain/:address
A pool's metadata, both tokens, its live state, and its market: price, liquidity, and stats over 5m to 24h.
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) |
Response
| Field | Type | Meaning |
|---|---|---|
pool | object | chain, address, protocol, token0, token1, factory (or null), extra (protocol details: fee, tick spacing, vaults, hooks…). |
pool.createdBlock, createdAt, createdTx, creator | number | null, number | null, string | null, string | null | The pool's creation. Null when Aurelia first saw the pool through a swap, not its creation. |
token0, token1 | object | null | address, decimals, symbol, name, firstSeenBlock, and logo: an absolute URL, or null. |
state | object | null | After the last indexed event that touched the pool: atBlock, atIndex; reserve0, reserve1 (decimals applied); sqrtPrice and liquidity (raw, concentrated liquidity only), tick, activeBin, curveComplete where the pool type has them. null when unknown. |
price | object | null | The closes of the pool's charts: baseToken and quoteToken; usd, the base's USD price at the newest priced swap (null without one); quote, its price in quote-token units at the newest swap. null when the base of the pool's newest hour of swaps cannot be told. |
liquidityUsd | number | null | Value of the pool's real balances at both tokens' USD prices in its newest priced swap. null for concentrated liquidity and bins on BSC, whose reserves are virtual, and without both prices. |
windows | { 5m, 1h, 6h, 24h } | Each: volumeUsd, buyVolumeUsd, sellVolumeUsd, trades, buys, sells (a buy is the trader receiving the base), traders (approximate), priceChange (the base's, from 1-minute closes). |
Example
Captured 2026-09-28 18:03 UTC on a test instance.
curl -s -H 'Authorization: Bearer <key>' 'https://app.aurelia.build/api/pools/evm:56/0x702e6533e0182381606adbe3ccbb77f682ccc58b'
{
"pool": {
"chain": "evm:56",
"address": "0x702e6533e0182381606adbe3ccbb77f682ccc58b",
"protocol": "pancakeswap-v2",
"token0": "0xa9fcda9bd321adeb7cbbbd30ef2dd0ed1d657777",
"token1": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
"factory": null,
"createdBlock": 1000008,
"createdTx": null,
"creator": "0x0f325bd174c70440fa62c31dce9f69d54baf717e",
"extra": {},
"createdAt": 1790549261920
},
"token0": {
"address": "0xa9fcda9bd321adeb7cbbbd30ef2dd0ed1d657777",
"decimals": 18,
"symbol": "TAX",
"name": "Tax Token",
"firstSeenBlock": 1000002,
"logo": null
},
"token1": {
"address": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
"decimals": 18,
"symbol": "WBNB",
"name": "Wrapped BNB",
"firstSeenBlock": 1000001,
"logo": null
},
"state": {
"atBlock": 1000008,
"atIndex": 0,
"reserve0": "700000000",
"reserve1": "7"
},
"price": {
"baseToken": "0xa9fcda9bd321adeb7cbbbd30ef2dd0ed1d657777",
"quoteToken": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c",
"usd": 0.006,
"quote": 0.00001
},
"liquidityUsd": 4204200,
"windows": {
"5m": {
"volumeUsd": 600,
"buyVolumeUsd": 600,
"sellVolumeUsd": 0,
"trades": 2,
"buys": 2,
"sells": 0,
"traders": 1,
"priceChange": 0
},
"1h": {
"volumeUsd": 618,
"buyVolumeUsd": 612,
"sellVolumeUsd": 6,
"trades": 5,
"buys": 4,
"sells": 1,
"traders": 4,
"priceChange": -0.019999999999999907
},
"6h": {
"volumeUsd": 822,
"buyVolumeUsd": 762,
"sellVolumeUsd": 60,
"trades": 31,
"buys": 21,
"sells": 10,
"traders": 8,
"priceChange": 0
},
"24h": {
"volumeUsd": 1368,
"buyVolumeUsd": 1170,
"sellVolumeUsd": 198,
"trades": 102,
"buys": 69,
"sells": 33,
"traders": 8,
"priceChange": null
}
}
}
Notes
- Cached 5 s. The pool channel sends this answer again as it changes, and the price after each swap.
- Constant-product pools report real balances. Concentrated liquidity reports the active range's virtual reserves: take the price from
sqrtPrice,priceor trades, not from reserves. - Window stats count every swap of the pool, unpriced ones (0 USD) and those under $0.01 included;
priceChangefollows the candles, which leave those out. 404 {"error":"unknown pool"}for a pool Aurelia has never stored.