Data

Trades (one row per swap)

One row per user trade: spot buys and sells (SWAP.Traded) and cross-pair swaps (SWAP.CrossSwap). The pool legs of each trade are at /api/v1/tokens/{address}/trades and /api/v1/wallet/{address}/transactions. Leverage opens and loan or leverage partial sells emit neither event: they are legs (legRole leverage_open, leverage_exit, loan_exit) and rows of /api/v1/loans/events.

GET
/api/v1/trades
One row per user trade, newest first in chain order. With no filter: the latest trades platform-wide.
Auth: API Key

Query Parameters

ParamDescription
traderWallet address
tokenToken address; a cross swap matches on tokenIn or tokenOut
mainMain key or address; a cross swap matches main or mainOut
kindspot or cross
includeprotocol: also return trades made by protocol contracts (hidden by default)
fromWindow start, unix seconds (inclusive), on blockTime; combinable with the cursor
toWindow end, unix seconds (exclusive)
cursorblockNumber:logIndex, from pagination.nextCursor
limitPage size (default 20)

Response

Response
{
  "data": [
    {
      "kind": "spot",
      "trader": "0x...",
      "traderIsProtocol": false,
      "traderPending": false,
      "side": "buy",
      "tokenIn": "0x...",
      "tokenOut": "0x...",
      "amountIn": "100000000000000000000",
      "amountOut": "4150000000000000000000",
      "tax": "600000000000000000",
      "taxToken": "0x...",
      "token": "0x...",
      "main": "0x...",
      "pairAsset": "0x...",
      "pairDecimals": 6,
      "mainOut": null,
      "pairAssetOut": null,
      "recipient": "0x...",
      "valuePair": "100000000",
      "valuePairOut": null,
      "pairDecimalsOut": null,
      "sellFee": null,
      "buyFee": null,
      "sellOut": null,
      "buyIn": null,
      "valueUsdE18": "100000000000000000000",
      "usdSource": "fixed",
      "valueUsdOutE18": null,
      "usdSourceOut": null,
      "isPresale": false,
      "viaContract": null,
      "txHash": "0x...",
      "logIndex": 9,
      "blockNumber": 41234567,
      "blockTime": "2026-10-01T12:00:00.000Z"
    }
  ],
  "pagination": { "limit": 20, "hasMore": true, "nextCursor": "41234567:9" }
}

Units: amountIn, amountOut and tax are raw decimal strings in the units of tokenIn, tokenOut and taxToken. valuePair is in raw units of pairAsset (valuePairOut of pairAssetOut, cross swaps only). valueUsdE18 is USD × 1e18 at the time of the trade, null when unknown, with its usdSource. Cross swaps only: sellFee, buyFee, sellOut, buyIn (raw), and valueUsdOutE18 / usdSourceOut for the buy side. traderPending marks a hub leg whose wallet is still resolving (a protocol row until it resolves). side is null on a cross swap. viaContract is the contract the transaction was sent to when it was not ASwap (a router or another wrapper), null when the trade went straight to ASwap. tax and taxToken are null on a cross swap: see sellFee / buyFee. A cross swap whose tokenIn has no main (a pair asset, an outside token or native) is valued on its buy side (valuePair, pairAsset, valueUsdE18 are mainOut's).

200 Trades returned400 An invalid parameter or cursor401 Missing or invalid API key503 Trading not deployed on this network