Prediction Hunt/ API
REST API / Trades / Trades (Unified)

Trades (Unified)

Unified, per-trade feed across Polymarket and Kalshi in one consistent schema.

GET/v2/trades

Query Parameters

platformstring

polymarket | kalshi. Optional — omit for both.

market_idstring

condition_id (Polymarket) or ticker (Kalshi).

token_idstring

Outcome token ID (Polymarket only).

walletstring

Maker or taker wallet address. Polymarket-only data.

start_timeinteger

Unix seconds. Clamped to >= 2026-05-19 (the served floor).

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.

Response Schema

tradesobject[]

Per-trade rows in requested order.

platformstring

polymarket | kalshi.

trade_idstring

Stable per-platform trade identifier.

market_idstring

condition_id (Polymarket) or ticker (Kalshi).

token_idstring | null

Outcome token ID (Polymarket only).

sidestring | null

yes | no | null.

taker_sidestring | null

yes | no | null. Often null for Polymarket.

pricenumber

Execution price in [0, 1].

sharesnumber

Trade size in shares.

amount_usdnumber

Notional USD (price * shares).

maker_addrstring | null

Maker wallet (Polymarket only; null for Kalshi).

taker_addrstring | null

Taker wallet (Polymarket only; null for Kalshi).

executed_atstring

ISO8601 UTC timestamp.

timestampinteger

Unix seconds.

paginationobject

Cursor-based keyset pagination state.

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.

data_available_fromstring

ISO8601 served floor — earlier ranges are not served (2026-05-19T00:00:00Z).

warningstring

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

Error Responses

All errors return the same envelope. The code field is stable and programmatically branchable; error and message are human-readable. errors[] is present only on validation failures with field-level detail. See the full error code reference →

successboolean

Always `false` on error responses.

errorstring

Short, human-readable title (e.g. 'Invalid API Key.').

messagestring

Human-readable explanation for the error. Safe to surface in UIs.

codestring

Stable, hierarchical machine-readable code (e.g. 'validation.invalid_enum'). Use for programmatic handling.

doc_urlstring

Link to this code's entry in the Error Reference.

errorsobject[]

Optional. Present only on validation failures with field-level detail.

fieldstring

Name of the offending parameter.

codestring

Field-level machine code.

messagestring

Human-readable explanation.

Authentication

API Key

To secure your requests, we strongly recommend passing your API key via the X-API-Key header. This prevents sensitive keys from being exposed in access logs or browser history.

Request HeaderX-API-Key: pmx_test_5e8f...

Rate Limits

API rate limits are enforced based on the tier associated with your API key. Limits are tracked on two dimensions: requests per second and requests per month. Each completed request counts toward the global monthly quota. Separate endpoint-group monthly limits (matched markets, arbitrage, EV) only advance when the response body has success: true.

Usage is returned on responses via headers such as:

Response Headers (global)X-RateLimit-Limit-Second: 10X-RateLimit-Remaining-Second: 9X-RateLimit-Limit-Month: 1000X-RateLimit-Remaining-Month: 842Example (endpoint-group, when applicable)X-RateLimit-Limit-Arb-Month: 500X-RateLimit-Remaining-Arb-Month: 412

If you exceed a rate limit, the API returns a 429 status with a Retry-After header indicating when you can resume.

Request

Live API Key

Demo Mode
Verified

Filters

Platform
Market ID
Token ID
Wallet
Start (unix seconds)
End (unix seconds)
Min notional (USD)
Limit
Order
Pagination key

Response

Click EXECUTE to send a request →