Polymarket Trades

GET/gateway/v1/prediction-market/polymarket/trades

Trade and activity history for a Polymarket market or wallet.

Filter by market (condition_id), wallet (address), outcome (Yes/No), minimum trade size, and time range. Use type=redemption for splits/merges/redemptions, type=all for everything.

Data refresh: ~5 minutes

Query Parameters

condition_idstring

Market condition identifier

Example: 0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092
addressstring

Wallet address — returns trades where the address is maker or taker

typeenum<string>

Filter by activity type: `trade` (default, spot trades only), `redemption` (splits/merges/redemptions), or `all` (all activity). Use `redemption` or `all` to get non-trade wallet activity; `address` is required for these types.

Available options:traderedemptionall
outcome_labelenum<string>

Filter by outcome label: `Yes` or `No`

Available options:YesNo
min_amountnumber

Minimum trade amount in USD

fromstring

Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)

tostring

End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)

sort_byenum<string>

Field to sort results by

Available options:timestampnotional_volume_usd
Example: timestamp
limitinteger

Results per page

Example: 50
offsetinteger

Pagination offset

Example: 0
Polymarket Trades
const options = {method: 'GET'};

fetch('https://api.asksurf.ai/gateway/v1/prediction-market/polymarket/trades?condition_id=0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092&sort_by=timestamp&limit=50&offset=0', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
OK
{
  "$schema": "https://example.com/schemas/DataResponseInterface {}.json",
  "data": [],
  "meta": {
    "cached": true,
    "credits_used": 123,
    "empty_reason": "<string>",
    "has_more": true,
    "limit": 123,
    "offset": 123,
    "total": 123,
    "watermark": 123
  }
}