curl -X POST 'https://api.serialized.xyz/v1/wallet/closed-positions' \\
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \\
-d '{"items":[{"wallet":"0xd13da05b9288ba4961973110594bd0fe3428791f","chain":"evm:8453"},{"wallet":"GuhieZDx6nwJV14WjeUQH2ted6CGPKoGCCTaPSPNgG2E","chain":"solana"}],"limit":1,"sort":"pnl"}'
{
"data": [
{
"data": [
{
"chain": "evm:8453",
"address": "0x940181a94a35a4569e4529a3cdfb74e38fd98631",
"symbol": "AERO",
"name": "Aerodrome",
"iconUrl": null,
"decimals": 18,
"totalBuyUsd": 0,
"totalSellUsd": 386683376.976055,
"totalBuyNative": 0,
"totalSellNative": 154148.93611,
"realizedPnlUsd": 386683376.976055,
"realizedPnlNative": 154148.93611,
"realizedPnlPercent": 0,
"buyCount": 0,
"sellCount": 332133,
"lastTradeAt": 1788936321000,
"buyFeesUsd": null,
"sellFeesUsd": null,
"totalFeesUsd": null
}
],
"hasMore": true,
"oldestAt": 1788936321000
},
{
"data": [
{
"chain": "solana",
"address": "Ls8ZWkthUviRsL3Rb62VzrTVZggiwb8KzYtGNzKpump",
"symbol": "HIPPO",
"name": "disappointed hippo",
"iconUrl": null,
"decimals": 6,
"totalBuyUsd": 204.930108,
"totalSellUsd": 291.328612,
"totalBuyNative": 1.955556,
"totalSellNative": 2.780017,
"realizedPnlUsd": 86.398504,
"realizedPnlNative": 0.824462,
"realizedPnlPercent": 42.159986,
"buyCount": 2,
"sellCount": 2,
"lastTradeAt": 1786904394000,
"buyFeesUsd": null,
"sellFeesUsd": null,
"totalFeesUsd": null
}
],
"hasMore": true,
"oldestAt": 1786904394000
}
],
"meta": {
"asOf": 1788937642860
}
}
Wallet Closed Positions
Wallet Closed Positions: batch
Batch twin: up to 20 wallets per call, response array in input order. Each slot is { data, hasMore, oldestAt }, the body of the single GET for that wallet, or { error } when that wallet failed, so one wallet never fails the others. limit, offset and sort apply to every wallet of the call. Billed per wallet.
POST
/
v1
/
wallet
/
closed-positions
curl -X POST 'https://api.serialized.xyz/v1/wallet/closed-positions' \\
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \\
-d '{"items":[{"wallet":"0xd13da05b9288ba4961973110594bd0fe3428791f","chain":"evm:8453"},{"wallet":"GuhieZDx6nwJV14WjeUQH2ted6CGPKoGCCTaPSPNgG2E","chain":"solana"}],"limit":1,"sort":"pnl"}'
{
"data": [
{
"data": [
{
"chain": "evm:8453",
"address": "0x940181a94a35a4569e4529a3cdfb74e38fd98631",
"symbol": "AERO",
"name": "Aerodrome",
"iconUrl": null,
"decimals": 18,
"totalBuyUsd": 0,
"totalSellUsd": 386683376.976055,
"totalBuyNative": 0,
"totalSellNative": 154148.93611,
"realizedPnlUsd": 386683376.976055,
"realizedPnlNative": 154148.93611,
"realizedPnlPercent": 0,
"buyCount": 0,
"sellCount": 332133,
"lastTradeAt": 1788936321000,
"buyFeesUsd": null,
"sellFeesUsd": null,
"totalFeesUsd": null
}
],
"hasMore": true,
"oldestAt": 1788936321000
},
{
"data": [
{
"chain": "solana",
"address": "Ls8ZWkthUviRsL3Rb62VzrTVZggiwb8KzYtGNzKpump",
"symbol": "HIPPO",
"name": "disappointed hippo",
"iconUrl": null,
"decimals": 6,
"totalBuyUsd": 204.930108,
"totalSellUsd": 291.328612,
"totalBuyNative": 1.955556,
"totalSellNative": 2.780017,
"realizedPnlUsd": 86.398504,
"realizedPnlNative": 0.824462,
"realizedPnlPercent": 42.159986,
"buyCount": 2,
"sellCount": 2,
"lastTradeAt": 1786904394000,
"buyFeesUsd": null,
"sellFeesUsd": null,
"totalFeesUsd": null
}
],
"hasMore": true,
"oldestAt": 1786904394000
}
],
"meta": {
"asOf": 1788937642860
}
}
POST /v1/wallet/closed-positions · 2 per wallet credits
Batch twin: up to 20 wallets per call, response array in input order. Each slot is { data, hasMore, oldestAt }, the body of the single GET for that wallet, or { error } when that wallet failed, so one wallet never fails the others. limit, offset and sort apply to every wallet of the call. Billed per wallet.
A slot’s
data, hasMore and oldestAt are exactly what GET /v1/wallet/closed-positions returns for that wallet with the same options; see that page for the row fields.curl -X POST 'https://api.serialized.xyz/v1/wallet/closed-positions' \\
-H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \\
-d '{"items":[{"wallet":"0xd13da05b9288ba4961973110594bd0fe3428791f","chain":"evm:8453"},{"wallet":"GuhieZDx6nwJV14WjeUQH2ted6CGPKoGCCTaPSPNgG2E","chain":"solana"}],"limit":1,"sort":"pnl"}'
{
"data": [
{
"data": [
{
"chain": "evm:8453",
"address": "0x940181a94a35a4569e4529a3cdfb74e38fd98631",
"symbol": "AERO",
"name": "Aerodrome",
"iconUrl": null,
"decimals": 18,
"totalBuyUsd": 0,
"totalSellUsd": 386683376.976055,
"totalBuyNative": 0,
"totalSellNative": 154148.93611,
"realizedPnlUsd": 386683376.976055,
"realizedPnlNative": 154148.93611,
"realizedPnlPercent": 0,
"buyCount": 0,
"sellCount": 332133,
"lastTradeAt": 1788936321000,
"buyFeesUsd": null,
"sellFeesUsd": null,
"totalFeesUsd": null
}
],
"hasMore": true,
"oldestAt": 1788936321000
},
{
"data": [
{
"chain": "solana",
"address": "Ls8ZWkthUviRsL3Rb62VzrTVZggiwb8KzYtGNzKpump",
"symbol": "HIPPO",
"name": "disappointed hippo",
"iconUrl": null,
"decimals": 6,
"totalBuyUsd": 204.930108,
"totalSellUsd": 291.328612,
"totalBuyNative": 1.955556,
"totalSellNative": 2.780017,
"realizedPnlUsd": 86.398504,
"realizedPnlNative": 0.824462,
"realizedPnlPercent": 42.159986,
"buyCount": 2,
"sellCount": 2,
"lastTradeAt": 1786904394000,
"buyFeesUsd": null,
"sellFeesUsd": null,
"totalFeesUsd": null
}
],
"hasMore": true,
"oldestAt": 1786904394000
}
],
"meta": {
"asOf": 1788937642860
}
}
Authorizations
Your raw API key (not needed on the demo server).
Body
application/json
[{ "wallet": "…", "chain": "…" }] - 1 to 20 wallets, EVM and Solana mixed freely; chain optional (omit for all EVM chains).
Required array length:
1 - 20 elementsShow child attributes
Show child attributes
Page size per wallet, 1-100. Default 30.
Required range:
1 <= x <= 100Example:
30
Rows to skip per wallet. Default 0.
Required range:
x >= 0Example:
0
lastTradeAt (default) or pnl, applied to every wallet.
Available options:
lastTradeAt, pnl Example:
"lastTradeAt"
Response
200
Standard { data, meta } envelope.