v1
latestOpenAPI 3.1.02026-07-243035381.4 MBGet wallet activity feed
/v4/data/prediction/wallets/{address}/activity
100 credits per API call
Full wallet event feed — covers every event type the upstream emits: TRADE, SPLIT, MERGE, REDEEM, REWARD, CONVERSION, MAKER_REBATE and REFERRAL_REWARD. Unlike /wallets/{address}/trades, this endpoint includes non-trade events and supports a native time-range filter — useful for activity logs, audit trails and tax exports.
Platform support
- Polymarket only. Kalshi wallets return 400.
Filtering, sorting and pagination
- market / eventId scope the response (mutually exclusive, up to 50 entries each).
- type is a comma-separated list of event types — up to 8 entries from the enum.
- side filters to BUY or SELL (relevant for trade-type rows; null on non-trade rows).
- start / end are unix-seconds (not milliseconds) — values that look like millisecond timestamps (~13 digits) are rejected with 400. end must be greater than or equal to start.
- sortBy accepts TIMESTAMP, TOKENS, CASH. Defaults to TIMESTAMP. Combine with sortDirection (defaults to DESC).
- Pagination is offset-based — limit (1..500, default 100) and offset (0..10000, default 0).
Other notes
- side is null on non-trade rows (e.g. REWARD, SPLIT, MERGE, REDEEM) — direction is undefined there.
- outcomeIndex can be null for rows that don't map to a position side. A sentinel value of 999 is occasionally emitted by the upstream for the same case.
- conditionId and asset can be null on rows that aren't market-scoped (e.g. some reward / referral rows).
- address is normalised to lowercase before being echoed in the response.
Path parameters
EVM wallet address — 0x-prefixed, 40 hex characters. Returned lowercased in response payloads. Non-EVM inputs (e.g. Kalshi user identifiers) return 400 from every wallets endpoint.
Wallet address (0x + 40 hex). Kalshi addresses return 400.
Query parameters
Comma-separated list of condition ids (0x + 64 hex). Up to 50 entries. Mutually exclusive with eventId.
Comma-separated list of Polymarket numeric event ids. Up to 50 entries. Mutually exclusive with market.
Comma-separated list of event types to include. Up to 8 entries from the PredictionActivityType enum.
Order direction (buy / sell). Distinct from the outcome-side enum.
Filter trade-type rows by direction. Non-trade rows always have side = null and are unaffected.
Inclusive lower bound on event timestamp, in unix-seconds. Values that look like milliseconds (~13 digits) are rejected with 400.
Inclusive upper bound on event timestamp, in unix-seconds. Must be ≥ start when both are provided.
Sort key for /wallets/{address}/activity.
Sort key. Defaults to TIMESTAMP.
Sort direction.
Sort direction. Defaults to DESC.
Page size. Defaults to 100.
Page offset. Defaults to 0.
Response
OK
Example response
{
"data": [
{
"proxyWallet": "0x56687bf447db6ffa42ffe2204a05edaa20f55839",
"timestamp": 1747569600,
"conditionId": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917",
"type": "TRADE",
"size": 250,
"usdcSize": 105,
"transactionHash": "0xabc123…",
"price": 0.42,
"asset": "71321045679252212594626385532706912750332728571942612009397583165281712267356",
"side": "BUY"
}
],
"pagination": {
"pageSize": 100
}
}