Skip to main content
GET
/
polymarket
/
market
/
trades
Get market trades
curl --request GET \
  --url https://api.struct.to/v1/polymarket/market/trades
[
  {
    "id": "<string>",
    "hash": "<string>",
    "trader": {
      "address": "<string>",
      "name": "<string>",
      "pseudonym": "<string>",
      "profile_image": "<string>",
      "x_username": "<string>",
      "verified_badge": true
    },
    "side": "<string>",
    "position_id": "<string>",
    "usd_amount": 123,
    "shares_amount": 123,
    "price": 123,
    "exchange": "CTFExchange",
    "trade_type": "OrderFilled",
    "block": 1,
    "confirmed_at": 1,
    "received_at": 1,
    "log_index": 1,
    "block_index": 1,
    "order_hash": "<string>",
    "taker": "<string>",
    "condition_id": "<string>",
    "outcome": "<string>",
    "outcome_index": 1,
    "question": "<string>",
    "image_url": "<string>",
    "slug": "<string>",
    "event_slug": "<string>",
    "probability": 123,
    "fee": 123,
    "fee_shares": 123,
    "fee_pct": 123,
    "builder_code": "<string>",
    "builder_fee": 123
  }
]

Documentation Index

Fetch the complete documentation index at: https://docs.struct.to/llms.txt

Use this file to discover all available pages before exploring further.

Query Parameters

condition_ids
string

Comma-separated condition IDs (max 20)

slugs
string

Comma-separated market slugs

position_ids
string

Comma-separated position IDs

traders
string

Comma-separated trader addresses (max 25)

builder_codes
string

Comma-separated builder codes (max 25)

side
enum<string>

Trade side: 0 (Buy), 1 (Sell)

Available options:
0,
1
outcome
string

Outcome name filter (e.g. Yes, No)

outcome_index
enum<string>

Outcome index: 0 (Yes), 1 (No)

Available options:
0,
1
trade_types
string

Comma-separated trade types: OrderFilled, Redemption, Merge, Split, Cancelled, PositionsConverted, OrdersMatched

min_usd_amount
number<double>

Min USD amount

max_usd_amount
number<double>

Max USD amount

min_shares_amount
number<double>

Min shares amount

max_shares_amount
number<double>

Max shares amount

min_price
number<double>

Min price (0.0-1.0)

max_price
number<double>

Max price (0.0-1.0)

from
integer<int64>

Start timestamp (ms)

to
integer<int64>

End timestamp (ms)

limit
integer<int32>

Results per page (default: 10, max: 250)

Required range: x >= 0
offset
integer<int32>

Pagination offset (number of results to skip). Takes precedence over pagination_key.

Required range: x >= 0
pagination_key
string

Cursor-based pagination key obtained from previous response's pagination.pagination_key

sort_desc
boolean

Sort newest first (default: true)

ai
boolean

Return truncated response optimized for AI consumers (default: false)

Response

200 - application/json

Prediction trades matching filters

Tagged enum for all trade types — serializes with "trade_type": "..." discriminator and only includes fields relevant to each type.

id
string
required
hash
string
required
trader
object
required

Trader profile info - backwards compatibility

side
string
required
position_id
string
required
usd_amount
number<double>
required
shares_amount
number<double>
required
price
number<double>
required
exchange
enum<string>
required

Polymarket exchange contract types. repr(u8) discriminants double as the database column value — DO NOT renumber existing variants. New variants get fresh numbers.

Available options:
CTFExchange,
NegRiskExchange,
ConditionalTokens,
NegRiskAdapter,
CTFExchangeV2,
NegRiskExchangeV2,
Unknown
trade_type
enum<string>
required
Available options:
OrderFilled
block
integer<int64> | null
Required range: x >= 0
confirmed_at
integer<int64> | null
Required range: x >= 0
received_at
integer<int64> | null
Required range: x >= 0
log_index
integer<int64> | null
Required range: x >= 0
block_index
integer<int64> | null
Required range: x >= 0
order_hash
string | null
taker
string | null
condition_id
string | null
outcome
string | null
outcome_index
integer<int32> | null
Required range: x >= 0
question
string | null
image_url
string | null
slug
string | null
event_slug
string | null
probability
number<double> | null
fee
number<double> | null
fee_shares
number<double> | null
fee_pct
number<double> | null
builder_code
string | null

CLOB V2 builder code (lower-cased "0x..." bytes32 hex). Always absent for V1 trades and may be 0x0000… for V2 trades placed without a builder code.

builder_fee
number<double> | null

Builder fee in USDC. Absent when no builder code is attached.

Last modified on May 1, 2026