Skip to main content
Returns fills where the wallet participated as maker, taker, or both. Each trade is enriched with market metadata, computed price/size in USD, buy/sell direction, and the order hash.

Request

Query parameters

order_hash is applied in the database before pagination. Combine it with any other wallet-trade filter; all supplied filters are intersected. Hex characters are case-insensitive and the response uses the normalized lowercase hash. A well-formed hash with no matching fills returns 200 with an empty trades array. An empty or malformed hash returns 400. Combo trades do not expose a Polymarket order hash, so order_hash cannot be combined with include_combos=true; that combination returns 400.

Example

List every fill where one wallet participated in a specific order:
Add filters normally—for example, maker fills for that order inside one market and time window:
The unfiltered wallet feed has the same response shape:

Maker-only trades

Trades for a specific token

Trades in a time window

Include combo trades

Combo trades are returned in combo_trades so existing consumers of the standard trades array do not need to change parsing logic.

Response fields

Top-level combo fields

Trade data

Market context

Sort fills by order hash

Groups all fills belonging to the same limit order together visually, sorted by most recent order first. Returns individual fill rows.

User-visible trades

Returns one row per user-visible trade, matching the Polymarket-style wallet trade feed. This removes complementary order-side rows that can appear in raw CTF fills and merges fills that represent the same user action. Use this grouping for UI trade history and user-facing volume math. group_by=transaction_hash is accepted as an alias for this behavior.

Aggregate fills by order hash

Returns one row per wallet-visible order with aggregated totals. Complementary order-side rows are collapsed from the queried wallet’s perspective before order aggregation, so UI volume and share counts do not double-count both sides of the same user action. Use group_by=user_trade when you want one row per user-visible fill without order-level rollup.

Grouped response fields

Filter by market condition

Filter by market slug