curl -X POST 'https://api.serialized.xyz/v1/pools/trades' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"markets": [{"chain": "evm:8453", "address": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"}], "from": 1786718000000, "perMarketLimit": 200}'
{
"data": [
{
"chain": "evm:8453",
"address": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64",
"trades": [
{
"id": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf:289",
"at": 1786718835000,
"maker": "0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09",
"isBuy": true,
"amountToken": 77.05662024406023,
"amountQuote": 0.000042612402192036,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4747124708872e-7,
"priceUsd": 0.00103052429,
"volumeNative": 0.000042612402192036,
"volumeUsd": 0.08021081608014609,
"feesNative": 0.0000021,
"isProTrader": false,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf",
"block": 49964744,
"logIndex": 289,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
}
]
}
],
"meta": {
"asOf": 1786718900120,
"usdBasis": "spot"
}
}
Market Trades
Batch Market Trades
The tape of up to 200 markets in a single call, since a timestamp - grouped per market, with a per-market row cap. One request replaces a full polling fan-out. Cross-chain; billed per market.
POST
/
v1
/
pools
/
trades
curl -X POST 'https://api.serialized.xyz/v1/pools/trades' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"markets": [{"chain": "evm:8453", "address": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"}], "from": 1786718000000, "perMarketLimit": 200}'
{
"data": [
{
"chain": "evm:8453",
"address": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64",
"trades": [
{
"id": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf:289",
"at": 1786718835000,
"maker": "0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09",
"isBuy": true,
"amountToken": 77.05662024406023,
"amountQuote": 0.000042612402192036,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4747124708872e-7,
"priceUsd": 0.00103052429,
"volumeNative": 0.000042612402192036,
"volumeUsd": 0.08021081608014609,
"feesNative": 0.0000021,
"isProTrader": false,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf",
"block": 49964744,
"logIndex": 289,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
}
]
}
],
"meta": {
"asOf": 1786718900120,
"usdBasis": "spot"
}
}
POST /v1/pools/trades · 1 per market credit
The tape of up to 200 markets in a single call, since a timestamp - the response groups trades per market and caps rows per market. One request replaces a whole polling fan-out. Rows are the exact /v1/pool/trades shape. This is a polling endpoint (from is bounded to 24h back); page the per-market tape for deep history.
Results come back in input order, one entry per requested market (
{chain, address, trades}); a market with no trades in the window returns an empty trades. Solana trades are valued at the SOL price at the time of each trade, EVM trades at the current native price: meta.usdBasis is trade when every requested market is on Solana, spot otherwise. Billed per market served: a market that comes back with an error costs nothing.curl -X POST 'https://api.serialized.xyz/v1/pools/trades' \
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"markets": [{"chain": "evm:8453", "address": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"}], "from": 1786718000000, "perMarketLimit": 200}'
{
"data": [
{
"chain": "evm:8453",
"address": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64",
"trades": [
{
"id": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf:289",
"at": 1786718835000,
"maker": "0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09",
"isBuy": true,
"amountToken": 77.05662024406023,
"amountQuote": 0.000042612402192036,
"quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
"priceNative": 5.4747124708872e-7,
"priceUsd": 0.00103052429,
"volumeNative": 0.000042612402192036,
"volumeUsd": 0.08021081608014609,
"feesNative": 0.0000021,
"isProTrader": false,
"isSniper": false,
"isWash": null,
"preconfirmed": false,
"txHash": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf",
"block": 49964744,
"logIndex": 289,
"poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
}
]
}
],
"meta": {
"asOf": 1786718900120,
"usdBasis": "spot"
}
}
Authorizations
Your raw API key (not needed on the demo server).
Body
application/json
List of {chain, address} pools (up to 200 per call).
Required array length:
1 - 200 elementsShow child attributes
Show child attributes
Example:
[{ "chain": "evm:8453", "address": "0x..." }]
Only trades at/after this time (unix MILLISECONDS, at most 24h back; a value in seconds is rejected with 400). Page the per-market tape for history.
Required range:
x >= 0Example:
1755000000000
Rows per market (default 100, max 500).
Required range:
1 <= x <= 500Example:
200
Response
200
Standard { data, meta } envelope.