curl 'https://api.serialized.xyz/v1/pool/ohlcv?chain=evm:8453&address=0x0ca6485b7e9cf814a3fd09d81672b07323535b64&interval=5m&limit=300' \
-H 'Authorization: YOUR_API_KEY'
{
"data": [
{
"time": 1786715700,
"open": 5.4747109625568e-7,
"high": 5.4747124708872e-7,
"low": 5.4747109625568e-7,
"close": 5.4747124708872e-7,
"volume": 0.000042612402192036,
"volumeToken": 77.84,
"trades": 13
},
{
"time": 1786716000,
"open": 5.4747124708872e-7,
"high": 5.4749102229931e-7,
"low": 5.4747124708872e-7,
"close": 5.4749102229931e-7,
"volume": 0.013277451554902,
"volumeToken": 24251.37,
"trades": 30
}
],
"meta": {
"asOf": 1786716301220,
"interval": "5m",
"count": 300,
"oldestTime": 1786626000,
"newestTime": 1786716000,
"hasMore": true,
"quote": "native",
"pools": ["0x0ca6485b7e9cf814a3fd09d81672b07323535b64"]
}
}
Market Candles
Historical OHLCV for one market, addressed by pool. Same engine, intervals (1s to 1M) and candle shape as /v1/token/ohlcv - here the pool IS the market (no curve stitching, no aggregation), for exact per-market charts.
curl 'https://api.serialized.xyz/v1/pool/ohlcv?chain=evm:8453&address=0x0ca6485b7e9cf814a3fd09d81672b07323535b64&interval=5m&limit=300' \
-H 'Authorization: YOUR_API_KEY'
{
"data": [
{
"time": 1786715700,
"open": 5.4747109625568e-7,
"high": 5.4747124708872e-7,
"low": 5.4747109625568e-7,
"close": 5.4747124708872e-7,
"volume": 0.000042612402192036,
"volumeToken": 77.84,
"trades": 13
},
{
"time": 1786716000,
"open": 5.4747124708872e-7,
"high": 5.4749102229931e-7,
"low": 5.4747124708872e-7,
"close": 5.4749102229931e-7,
"volume": 0.013277451554902,
"volumeToken": 24251.37,
"trades": 30
}
],
"meta": {
"asOf": 1786716301220,
"interval": "5m",
"count": 300,
"oldestTime": 1786626000,
"newestTime": 1786716000,
"hasMore": true,
"quote": "native",
"pools": ["0x0ca6485b7e9cf814a3fd09d81672b07323535b64"]
}
}
GET /v1/pool/ohlcv · 5 credits
Historical OHLCV for one market, addressed by pool. Same engine, intervals (1s to 1M) and candle shape as /v1/token/ohlcv - the difference is scope: this endpoint charts exactly one pool, with no curve stitching or multi-pool aggregation. A page of /v1/pool/ohlcv is byte-identical to /v1/token/ohlcv?pools=<this pool>. Each candle carries volume (traded value on the quote side, native asset or USD with quote=usd), volumeToken (traded amount in units of the token, never converted) and trades (number of swaps executed against the market in the bucket; a transaction that swaps twice counts twice, like its volume).
404 (never a silently-empty 200). The time axis is dense by default (flat zero-volume candles where the pool did not trade), so a dormant pool is carried forward at its last close; pass fill=false to get its last traded candles instead. meta.nextEndTime, when present, is the next endTime to page a very deep scan and always points at real history; otherwise page with oldestTime - 1 (meta.oldestTime and meta.newestTime are null on an empty page). Every candle opens at the close of the previous traded candle, the first candle of a page included, so paging backwards yields one continuous series (exact in the native series; with quote=usd each candle is converted at its own window’s SOL/USD rate, so consecutive USD opens step by the rate’s move between windows). endTime and from are unix seconds; a value in milliseconds is accepted too and normalized (candle time is always seconds). Up to 2000 candles per page. 1w candles are epoch-aligned weeks (Thursday to Thursday, UTC) and 1M candles are calendar months (UTC); 7d and 30d are accepted aliases.curl 'https://api.serialized.xyz/v1/pool/ohlcv?chain=evm:8453&address=0x0ca6485b7e9cf814a3fd09d81672b07323535b64&interval=5m&limit=300' \
-H 'Authorization: YOUR_API_KEY'
{
"data": [
{
"time": 1786715700,
"open": 5.4747109625568e-7,
"high": 5.4747124708872e-7,
"low": 5.4747109625568e-7,
"close": 5.4747124708872e-7,
"volume": 0.000042612402192036,
"volumeToken": 77.84,
"trades": 13
},
{
"time": 1786716000,
"open": 5.4747124708872e-7,
"high": 5.4749102229931e-7,
"low": 5.4747124708872e-7,
"close": 5.4749102229931e-7,
"volume": 0.013277451554902,
"volumeToken": 24251.37,
"trades": 30
}
],
"meta": {
"asOf": 1786716301220,
"interval": "5m",
"count": 300,
"oldestTime": 1786626000,
"newestTime": 1786716000,
"hasMore": true,
"quote": "native",
"pools": ["0x0ca6485b7e9cf814a3fd09d81672b07323535b64"]
}
}
Authorizations
Your raw API key (not needed on the demo server).
Query Parameters
Public chain id - evm:<id> or solana.
Pool / pair address (the stable market id on its chain - Uniswap V4 poolIds supported).
1s|5s|15s|30s|1m|3m|5m|15m|30m|1h|2h|4h|6h|12h|1d|1w|1M (default 5m). 1w buckets are epoch-aligned weeks (Thursday 00:00 UTC to Thursday); 1M buckets are calendar months (UTC). 7d and 30d are accepted aliases; meta.interval echoes the canonical key.
Candles per page, 1-2000 (default 200). Honoured whenever the history allows it, however quiet the token is.
1 <= x <= 2000Unix seconds, inclusive upper bound (pagination: prev oldestTime - 1); a millisecond value is accepted and normalized. At most 1 day ahead.
x >= 0Unix seconds, inclusive lower bound (scans stop there); a millisecond value is accepted and normalized.
x >= 0usd serves the candle as it traded in dollars, every swap at the SOL/USD rate of its own minute (available on Solana); volume follows the quote, volumeToken never does
native Dense time axis (default true): a flat zero-volume candle for every bucket without a trade. false returns traded buckets only.
Response
Standard { data, meta } envelope.