DEX

List DEX swaps by pool or token

Keyset-paginated list of DEX swaps, queried by pool or by token contract. Exactly one of pool or token must be specified. For token, a block window is mandatory (from_block and to_block are both required, spanning at most 100,000 blocks). The parameter trader is not supported and will return 400 bad_request. The window's lower bound is computed for the swap dataset, not from the chain's start alone: it is above GET /chains coverage.from_block only when the swap dataset has a recorded build coverage starting higher (a chain whose first swap comes late is not a gap). A window entirely before it is 422 no_coverage; one that starts before it, or has no from_block, is served as far as it goes with meta.coverage = "partial". Limitation: during an ascending backfill the hole between the backfilled tail and the live start is not detected (the dataset's start is its lowest covered block), so a window inside that hole is still 200 with an empty list.

get/{chain}/dex/swaps

Request

  • Base URL: https://api.blockvectra.com/v1/data
  • URL: https://api.blockvectra.com/v1/data/{chain}/dex/swaps
  • Auth: API key in header x-api-key

Path parameters

chainstring required

Chain identifier: the chain value of an entry in GET /chains (for example robinhood_mainnet), which lists every value this API accepts, i.e. the exact lowercase form of that entry's chain_slug. Matching is exact and case-sensitive; other spellings, aliases and numeric chain IDs are not accepted and return 404 not_found (unknown or not-public chain). What the chain serves differs per chain: see that entry's features and coverage.

Query parameters

poolstring

Exactly one of pool/token is required. Accepts either a 20-byte pool address (left-zero-padded to 32 bytes, Uniswap V2/V3 convention) or a 32-byte pool key (Uniswap V4 poolId); 0x optional, either case.

tokenstring

20-byte address. 0x/0X prefix optional; either hex digit case is accepted.

Example:0xAbCdEf0123456789aBcDeF0123456789aBCDEF01

Exactly one of pool/token is required. 20-byte token address, 0x optional, either case.

traderstring

The 'trader' parameter is not supported; filter by 'pool' or 'token' instead.

from_blockinteger

Lower bound (inclusive). Optional for pool; required for token.

to_blockinteger

Upper bound (inclusive). Optional for pool (defaults to as_of_block, the newest fully written block); required for token. An explicit value above as_of_block is 409 not_indexed_yet. meta.finalized_block is a marker and never bounds the window.

limitinteger

Page size. Absent defaults to 50. 0 or a non-integer value is 400 bad_request. A value above 500 is clamped to 500, not rejected.

cursorstring

Opaque pagination token from the previous response's next_cursor; pass it back unchanged.

Response

Matching swaps, newest first.

next_cursorstring

Opaque pagination token from the previous response's next_cursor; pass it back unchanged.

Example response

{
  "data": [
    {
      "sqrt_price_x96": "9007199254740993",
      "liquidity": "9007199254740993",
      "block_timestamp": "2026-09-26T05:41:07Z"
    }
  ],
  "meta": {
    "chain": "robinhood_mainnet",
    "chain_slug": "ROBINHOOD_MAINNET",
    "chain_external_id": "eip155:4663",
    "refreshed_at": "2026-09-26T05:41:07Z"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.