Skip to main content

Trades API

The REST history side of the live trades feed: recent tracked-wallet trades across all wallets, newest first. It returns the same concealed payload the live WebSocket feed pushes, so you can backfill what happened before you connected and then keep the table live over the socket without reshaping anything.

This endpoint requires your API key (Authorization: Bearer <API_KEY>) and costs heavier credits, the same as /tokens/{mint}/swaps.

REST for history, WebSocket for live

Use this endpoint to load a starting page (and to page back through older trades). For real-time trades as they happen, subscribe to the WebSocket feed instead of polling.


Recent trades

GET /trades

One page of recent tracked-wallet trades, newest first. Cursor paginated.

curl "https://api.prysmatic-sol.xyz/trades?limit=25" -H "Authorization: Bearer <API_KEY>"

Query parameters

NameTypeDefaultDescription
limitint25Number of rows to return (1..100).
cursorstringnoneCursor from the previous response's next_cursor.

Response

{
"count": 1,
"limit": 25,
"has_more": true,
"next_cursor": "eyJ0IjoxNzgxNDA0NTExLCJpIjo5MzQyfQ",
"items": [
{
"block_time": 1781404511,
"wallet": "W240",
"side": "buy",
"mint": "4Sm4YsjRrvSRQ4x1P86ncqumV3ZVgXxtFMKjiL8vpump",
"token_amount": "20415437641764",
"decimals": 6,
"sol_amount": 4.063765757,
"quote_mint": "So11111111111111111111111111111111111111112",
"quote_amount": "4063765757",
"program": "pump.fun"
}
]
}
FieldMeaning
block_timeTrade time (unix seconds).
walletWallet alias (never a real address).
sidebuy or sell.
mintThe traded token (memecoin).
token_amountRaw token amount (divide by 10 ^ decimals).
sol_amountAlready in SOL (not lamports); 0 when the quote is not WSOL.
quote_mintThe quote coin (WSOL / USDC / USDT), or null.
quote_amountRaw quote amount. For WSOL it is lamports (/ 1e9 for SOL).
programThe DEX / launchpad the swap routed through.

This is the exact shape of the WebSocket trades payload, so the same parsing works for both surfaces.

Pagination

The response is keyset paginated. When has_more is true, pass the returned next_cursor to fetch the next (older) page:

curl "https://api.prysmatic-sol.xyz/trades?limit=25&cursor=eyJ0IjoxNzgxNDA0NTExLCJpIjo5MzQyfQ" -H "Authorization: Bearer <API_KEY>"

Keep following next_cursor until has_more is false. The cursor is opaque — treat it as a token, do not parse it. A malformed cursor returns 400 invalid_cursor.

New trades always arrive at the head of the first page; paging with the cursor walks strictly backwards in time, so it never skips or repeats a trade even as fresh trades come in.