↑ ↓ move · Enter open · Esc close

REST API / Prices and books / Trades

Trades (Unified)

Unified, per-trade feed across Polymarket and Kalshi in one consistent schema. After the trade source switch (v11.0.0), Polymarket rows are finalized on-chain fills with 137_<block>_<log> IDs and block times. Market and token reads cover retained venue history from June 2023 for Polymarket and January 2023 for Kalshi (with platform=kalshi); global and wallet-only reads cover 35 days. Restart pagination after the switch: earlier pagination keys return 400.

GET/v2/trades

Parameters

platformstring

polymarket | kalshi. Optional - omit for both.

market_idstring

condition_id (Polymarket) or ticker (Kalshi). A Polymarket outcome token ID is also accepted and returns the same trades as token_id. Tokens without current market metadata use unresolved:<token>.

token_idstring

Outcome token ID (Polymarket only).

walletstring

Maker or taker wallet address. Polymarket-only data.

start_timeinteger

Unix seconds. Earlier ranges are clamped to _meta.data_available_from, or return 422 history_outside_hot_window when explicit coverage errors are enabled. Omit for the last 48 hours, or the full served range when filtering by market_id, token_id, or wallet.

end_timeinteger

Unix seconds. Default: now.

min_totalnumber

Minimum notional USD (>= 0).

limitinteger

1..500. Default: 100.

orderstring

asc | desc. Default: desc.

pagination_keystring

Cursor returned by a prior call. A key issued before the trade source switch returns 400 validation.invalid_cursor; repeat the request without it.

Response

tradesobject[]

Per-trade rows in requested order.

Show 13 fields
platformstring

polymarket | kalshi.

trade_idstring

Opaque, stable per-platform ID. After the trade source switch (v11.0.0), Polymarket IDs use scheme version 1: 137_<block>_<log>. Kalshi IDs do not change.

market_idstring

condition_id (Polymarket) or ticker (Kalshi). Tokens without current market metadata use unresolved:<token>.

token_idstring | null

Outcome token ID (Polymarket only).

sidestring | null

Kalshi outcome side (yes/no). Polymarket after the source switch: the maker participant's action (BUY/SELL).

taker_sidestring | null

yes | no | null. Null for Polymarket.

pricenumber

Execution price in [0, 1].

sharesnumber

Trade size in shares.

amount_usdnumber

Notional USD (price * shares).

maker_addrstring | null

Maker participant wallet, including a trader's own taker-order fills (Polymarket only; null for Kalshi).

taker_addrstring | null

Taker address recorded for the fill; the exchange contract for a trader's own taker-order fill (Polymarket only; null for Kalshi).

executed_atstring

ISO8601 UTC timestamp. Polymarket after the source switch: the block time of the fill, usually 0 to 2 seconds after the venue match time.

timestampinteger

Unix seconds.

paginationobject

Cursor-based keyset pagination state.

Show 4 fields
limitinteger

Echoed page size.

countinteger

Number of trades in this page.

pagination_keystring | null

Pass into the next call to get the following page. Null when has_more is false.

has_moreboolean

True if more rows exist beyond this page.

_metaobject

Data window and caveats.

Show 2 fields
data_available_fromstring

Current ISO8601 served floor. This moves with retention; read it from each live response before planning historical backfills.

warningstring

Plain-text coverage note and the Polymarket-only wallet-filter caveat.

Full API response