Smart Activity Markets (Polymarket)
Discover markets where profitable wallets are active. Ranks Polymarket markets by recent whale-sized trading from smart-money wallets (those with a strong lifetime PnL track record), with net buy/sell pressure per market. Cost-basis PnL/ROI fields are not yet computed and are returned as null.
/v2/polymarket/markets/smart-activityQuery Parameters
Optional. 1d (default), 7d, 30d, or all_time. Longer windows favor recently-active wallets.
Optional. smart_volume (default), smart_wallet_count, smart_trade_count, or last_active.
Optional. desc (default) or asc.
Optional. Filter by market status: open or closed.
Optional. Only markets with at least this many distinct smart wallets. Default 1.
Optional. Page size, 1–100, default 50.
Optional. Pagination offset, default 0.
Response Schema
The thresholds defining a smart-money wallet for this response.
Minimum lifetime PnL (USD) for a wallet to count as smart money.
Minimum per-fill notional (USD) for a trade to be counted.
The rolling window applied (1d, 7d, 30d, or all_time).
Markets ranked by smart-money activity in the window.
Market condition ID.
Market title (null if not resolved).
Market slug for URL construction (null if not resolved).
Market status (e.g. open, closed).
Distinct smart-money wallets active in this market.
Total whale-sized notional (USD) from smart wallets.
Number of smart-money fills.
Fraction of smart wallets net-buying (buy volume > sell volume), 0–1.
Mean lifetime PnL (USD) across the active smart wallets.
Unix timestamp of the most recent smart-money fill in this market.
Realized PnL from smart wallets. Not yet computed — returned as null (see _meta.unavailable_fields).
Total PnL from smart wallets. Not yet computed — returned as null.
Average ROI across smart wallets. Not yet computed — returned as null.
Average win rate across smart wallets. Not yet computed — returned as null.
Offset-based pagination over the ranked list.
Requested page size.
Page offset.
Markets returned in this page.
Total markets matching the filters.
True when more markets exist beyond this page.
Source, data floor, and field-availability metadata.
Data source identifier.
ISO timestamp; trade data is served from this point onward.
Fields returned as null because they require per-wallet cost-basis accounting not yet computed.
Which fields are exact vs. not yet available.
How smart-wallet coverage relates to the chosen window.
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 →
Always `false` on error responses.
Short, human-readable title (e.g. 'Invalid API Key.').
Human-readable explanation for the error. Safe to surface in UIs.
Stable, hierarchical machine-readable code (e.g. 'validation.invalid_enum'). Use for programmatic handling.
Link to this code's entry in the Error Reference.
Optional. Present only on validation failures with field-level detail.
Name of the offending parameter.
Field-level machine code.
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.
X-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:
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: 412If 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
Parameters
Response
—Click EXECUTE to send a request →