---
title: "Get Wallet DEX Trades"
method: POST
path: "/api/v1/profiler/dex-trades"
tags: ["Profiler"]
---

# Get Wallet DEX Trades

`POST /api/v1/profiler/dex-trades`

Get DEX trade history for a wallet address on a specific chain. Each record includes the bought/sold tokens, amounts, symbols, token age, market cap, FDV, and the USD value of the trade.

**What it helps to answer:**

1. **What DEX trades has this wallet executed on a chain within a date range?**
2. **Which tokens are being bought and sold, and at what sizes?**
3. **What is the USD value of each trade, and what was the token's market cap and FDV at trade time?**

## Request body

- ProfilerDexTradeRequest — Request model for the Profiler DEX Trades endpoint.
  - `address` string, required — Trader address
  - `chain` 'arbitrum' | 'avalanche' | 'base' | 'bnb' | 'ethereum' | 'hyperevm' | 'injective' | 'iotaevm' | 'linea' | 'mantle' | 'mantra' | 'monad' | 'near' | 'optimism' | 'plasma' | 'polygon' | 'robinhood' | 'sei' | 'solana' | 'sonic' | 'starknet' | 'sui' | 'ton' | 'tron', required — Chains supported in profiler DEX trades analysis.
  - `date` DateRange, required — Date range model matching the API schema.
    - `from` string — Start date in ISO 8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01)
    - `to` string — End date in ISO 8601 format (e.g., 2025-01-31T23:59:59Z or 2025-01-31)
  - `filters` ProfilerDexTradeFilters — Filters for DEX trades.
    - `token_bought_address` string — Filter by bought token address
    - `token_sold_address` string — Filter by sold token address
    - `token_bought_symbol` string — Filter by bought token symbol
    - `token_sold_symbol` string — Filter by sold token symbol
    - `token_bought_amount` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `token_sold_amount` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `token_bought_age_days` IntegerRangeFilter — Filter for integer values with optional min/max bounds. Use for counts, numbers of items, and other whole number values. - Values between 5 and 100
      - `min` integer — Minimum value (inclusive)
      - `max` integer — Maximum value (inclusive)
    - `token_sold_age_days` IntegerRangeFilter — Filter for integer values with optional min/max bounds. Use for counts, numbers of items, and other whole number values. - Values between 5 and 100
      - `min` integer — Minimum value (inclusive)
      - `max` integer — Maximum value (inclusive)
    - `token_bought_market_cap` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `token_sold_market_cap` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `token_bought_fdv` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `token_sold_fdv` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
    - `trade_value_usd` NumericRangeFilter — Filter for numeric values (floats) with optional min/max bounds. Use for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75
      - `min` number — Minimum value (inclusive)
      - `max` number — Maximum value (inclusive)
  - `pagination` PaginationRequest — Pagination parameters for API requests.
    - `page` integer — Page number (1-based)
    - `per_page` integer — Number of records per page (max 1000)
  - `order_by` SortOrderProfilerDexTradeSortField[] — Sort order for the trades
    - `field` 'chain' | 'block_timestamp' | 'transaction_hash' | 'token_bought_amount' | 'token_sold_amount' | 'token_bought_symbol' | 'token_sold_symbol' | 'token_bought_age_days' | 'token_sold_age_days' | 'token_bought_market_cap' | 'token_sold_market_cap' | 'token_bought_fdv' | 'token_sold_fdv' | 'trade_value_usd', required — Enum for DEX trade sort fields.
    - `direction` 'ASC' | 'DESC', required — Enum for sort directions.

## Response `200`

DEX trade history for the address

- ProfilerDexTradeResponse — Response model for the Profiler DEX Trades endpoint.
  - `pagination` PaginationInfo, required — Pagination information for API responses.
    - `page` integer — Current page number
    - `per_page` integer — Number of records per page
    - `is_last_page` boolean — Whether this is the last page
  - `data` ProfilerDexTrade[], required — List of DEX trades
    - `chain` string, required — Chain on which the trade occurred
    - `block_timestamp` string, required — Block timestamp of the trade
    - `transaction_hash` string, required — Transaction hash of the trade
    - `trader_address` string, required — Address that executed the trade
    - `trader_address_label` string — Label associated with the trader address
    - `token_bought_address` string, required — Address of the bought token
    - `token_sold_address` string, required — Address of the sold token
    - `token_bought_amount` number — Amount of the bought token
    - `token_sold_amount` number — Amount of the sold token
    - `token_bought_symbol` string — Symbol of the bought token
    - `token_sold_symbol` string — Symbol of the sold token
    - `token_bought_age_days` integer — Age (in days) of the bought token
    - `token_sold_age_days` integer — Age (in days) of the sold token
    - `token_bought_market_cap` number — Market cap of the bought token at trade time
    - `token_sold_market_cap` number — Market cap of the sold token at trade time
    - `token_bought_fdv` number — Fully diluted valuation of the bought token
    - `token_sold_fdv` number — Fully diluted valuation of the sold token
    - `trade_value_usd` number — USD value of the trade

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed request
- `401` — Authentication error - No API key found in request
- `402` — Payment Required - This endpoint supports pay-per-request via x402 and MPP. x402 responses advertise payment options in `Payment-Required`; MPP responses advertise a fresh `WWW-Authenticate: Payment ...` challenge. Successful MPP responses may include `Payment-Receipt`.
- `403` — Forbidden - User does not have required subscription tier or has exceeded credit limit
- `404` — Not Found - The requested resource was not found
- `422` — Validation error - Invalid request parameters
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/nansen/apis/nansen-api.md) · [All operations](https://skmtc.net/nansen/apis/nansen-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nansen/nansen-api/revisions/02a4d2e7d827/schema)
