curl -X POST 'https://api.serialized.xyz/v1/token/ohlcv' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"items": [{"chain": "evm:8453", "address": "0x4ed4e862860bed51a9570b96d89af5e1b0efefed"}, {"chain": "solana", "address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", "endTime": 1788976800}], "interval": "1h", "limit": 2}'
{
"data": [
{
"data": [
{
"time": 1788976800,
"open": 4.3436558420585994e-7,
"high": 4.3436619167141e-7,
"low": 4.343522033037e-7,
"close": 4.343522033037e-7,
"volume": 0.008163915862969941,
"volumeToken": 18904.773668395424,
"trades": 29
},
{
"time": 1788980400,
"open": 4.343522033037e-7,
"high": 4.343527131872e-7,
"low": 4.3434988550577997e-7,
"close": 4.3434988550577997e-7,
"volume": 0.001671651869433317,
"volumeToken": 3867.580839897786,
"trades": 25
}
],
"interval": "1h",
"count": 2,
"oldestTime": 1788976800,
"newestTime": 1788980400,
"hasMore": true,
"pools": [
"0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
]
},
{
"data": [
{
"time": 1788973200,
"open": 2.893641066501079e-8,
"high": 2.893641066501079e-8,
"low": 2.8929839822972252e-8,
"close": 2.8929839822972252e-8,
"volume": 0.047121352000000005,
"volumeToken": 1645080.7310600001,
"trades": 43
},
{
"time": 1788976800,
"open": 2.8929839822972252e-8,
"high": 2.8929839822972252e-8,
"low": 2.8929839822972252e-8,
"close": 2.8929839822972252e-8,
"volume": 0,
"volumeToken": 0,
"trades": 0
}
],
"interval": "1h",
"count": 2,
"oldestTime": 1788973200,
"newestTime": 1788976800,
"hasMore": true,
"nextEndTime": 1788973199,
"pools": [
"BqnpCdDLPV2pFdAaLnVidmn3G93RP2p5oRdGEY2sJGez"
]
}
],
"meta": {
"asOf": 1788981137801,
"interval": "1h",
"quote": "native"
}
}
Candles (OHLCV): batch
Batch twin - candles for up to 10 tokens in one call, across chains. Same options as the GET, shared for the lot; endTime, from and pools per token. Response in input order, one slot per token, per-item {error} slots.
curl -X POST 'https://api.serialized.xyz/v1/token/ohlcv' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"items": [{"chain": "evm:8453", "address": "0x4ed4e862860bed51a9570b96d89af5e1b0efefed"}, {"chain": "solana", "address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", "endTime": 1788976800}], "interval": "1h", "limit": 2}'
{
"data": [
{
"data": [
{
"time": 1788976800,
"open": 4.3436558420585994e-7,
"high": 4.3436619167141e-7,
"low": 4.343522033037e-7,
"close": 4.343522033037e-7,
"volume": 0.008163915862969941,
"volumeToken": 18904.773668395424,
"trades": 29
},
{
"time": 1788980400,
"open": 4.343522033037e-7,
"high": 4.343527131872e-7,
"low": 4.3434988550577997e-7,
"close": 4.3434988550577997e-7,
"volume": 0.001671651869433317,
"volumeToken": 3867.580839897786,
"trades": 25
}
],
"interval": "1h",
"count": 2,
"oldestTime": 1788976800,
"newestTime": 1788980400,
"hasMore": true,
"pools": [
"0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
]
},
{
"data": [
{
"time": 1788973200,
"open": 2.893641066501079e-8,
"high": 2.893641066501079e-8,
"low": 2.8929839822972252e-8,
"close": 2.8929839822972252e-8,
"volume": 0.047121352000000005,
"volumeToken": 1645080.7310600001,
"trades": 43
},
{
"time": 1788976800,
"open": 2.8929839822972252e-8,
"high": 2.8929839822972252e-8,
"low": 2.8929839822972252e-8,
"close": 2.8929839822972252e-8,
"volume": 0,
"volumeToken": 0,
"trades": 0
}
],
"interval": "1h",
"count": 2,
"oldestTime": 1788973200,
"newestTime": 1788976800,
"hasMore": true,
"nextEndTime": 1788973199,
"pools": [
"BqnpCdDLPV2pFdAaLnVidmn3G93RP2p5oRdGEY2sJGez"
]
}
],
"meta": {
"asOf": 1788981137801,
"interval": "1h",
"quote": "native"
}
}
POST /v1/token/ohlcv · 5 per item credits
Batch twin of Candles (OHLCV): the candles of up to 10 tokens in one call, chains mixable in the same lot. interval, limit, quote and fill are shared by the lot; endTime, from and pools are per token, so every series keeps its own pagination. The response is in input order: each slot is the body of the GET (data plus its own count, oldestTime, newestTime, hasMore, nextEndTime, pools), or { "error": { "code", "message" } } for that token alone (unknown token, malformed address, quote=usd on a chain without USD history). A bad item never costs you the rest of the lot.
interval or a lot of more than 10 items is refused with 400 for the whole call (it is a shared option). Everything else is judged per item.curl -X POST 'https://api.serialized.xyz/v1/token/ohlcv' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"items": [{"chain": "evm:8453", "address": "0x4ed4e862860bed51a9570b96d89af5e1b0efefed"}, {"chain": "solana", "address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", "endTime": 1788976800}], "interval": "1h", "limit": 2}'
{
"data": [
{
"data": [
{
"time": 1788976800,
"open": 4.3436558420585994e-7,
"high": 4.3436619167141e-7,
"low": 4.343522033037e-7,
"close": 4.343522033037e-7,
"volume": 0.008163915862969941,
"volumeToken": 18904.773668395424,
"trades": 29
},
{
"time": 1788980400,
"open": 4.343522033037e-7,
"high": 4.343527131872e-7,
"low": 4.3434988550577997e-7,
"close": 4.3434988550577997e-7,
"volume": 0.001671651869433317,
"volumeToken": 3867.580839897786,
"trades": 25
}
],
"interval": "1h",
"count": 2,
"oldestTime": 1788976800,
"newestTime": 1788980400,
"hasMore": true,
"pools": [
"0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
]
},
{
"data": [
{
"time": 1788973200,
"open": 2.893641066501079e-8,
"high": 2.893641066501079e-8,
"low": 2.8929839822972252e-8,
"close": 2.8929839822972252e-8,
"volume": 0.047121352000000005,
"volumeToken": 1645080.7310600001,
"trades": 43
},
{
"time": 1788976800,
"open": 2.8929839822972252e-8,
"high": 2.8929839822972252e-8,
"low": 2.8929839822972252e-8,
"close": 2.8929839822972252e-8,
"volume": 0,
"volumeToken": 0,
"trades": 0
}
],
"interval": "1h",
"count": 2,
"oldestTime": 1788973200,
"newestTime": 1788976800,
"hasMore": true,
"nextEndTime": 1788973199,
"pools": [
"BqnpCdDLPV2pFdAaLnVidmn3G93RP2p5oRdGEY2sJGez"
]
}
],
"meta": {
"asOf": 1788981137801,
"interval": "1h",
"quote": "native"
}
}
Authorizations
Your raw API key (not needed on the demo server).
Body
1 to 10 of {chain, address, pools?, endTime?, from?}. pools: optional CSV of up to 50 pool addresses to aggregate (default: the pool we price the token from, tracked across a bonding-curve migration). endTime / from: unix seconds (a millisecond value is accepted and normalized), per item, so each series paginates on its own with the oldestTime - 1 of its slot.
1 - 10 elementsShow child attributes
Show child attributes
[
{ "chain": "evm:8453", "address": "0x4ed4…" },
{
"chain": "solana",
"address": "DezXAZ…",
"endTime": 1788976800
}
]
Shared by the lot: 1s|5s|15s|30s|1m|3m|5m|15m|30m|1h|2h|4h|6h|12h|1d|1w|1M (default 5m). 7d and 30d are accepted as aliases of 1w and 1M; meta.interval echoes the canonical key. An unknown interval is refused with 400 for the whole call.
"1h"
Candles per item, 1-2000 (default 200), shared by the lot.
1 <= x <= 20002
native (default) or usd (Solana), shared by the lot but judged per item: an item on a chain without USD history gets its own { error } slot, the others are served.
native "native"
Dense time axis (default true): a flat zero-volume candle for every bucket without a trade. false returns traded buckets only. Shared by the lot.
true
Response
Standard { data, meta } envelope.