Quickstart
Preview Polymarket activity with recent trade events for a market token. Swap in any token, condition, or event type from the endpoint catalog below.
1curl 'https://api.pinax.network/v1/polymarket/markets/activity?token_id=53342136288932702007624506186417846874594504126387502748453102780630218207922&event_type=trade&limit=10&page=1' \2 -H 'Authorization: Bearer <YOUR_JWT>' \3 -H 'Accept: application/json'
Outcome User Lookup
PREVIEWAt least one of `user`, `outcome_id`, or `question_id` is required — calls without any of these return 400.
Returns trading aggregates per outcome with both side legs (Yes/No or custom labels) collapsed into one row per (user, outcome). Includes fill count, buys/sells split, volume bought/sold, realized PnL, and first/last trade times.
Filters compose additively. Sorted by sort_by descending (default total_volume; also transactions, realized_pnl) — when user is omitted the response is a leaderboard for the given outcome / question scope.
SETTLEMENT events contribute to realized_pnl (the resolution payout is realized P&L for positions held to resolution) but do not count toward transactions / buys / sells / volume_* — those reflect actual taker trade activity. SPLIT/MERGE/MERGE_QUESTION/NEGATE composition events are excluded from every aggregate.
interval selects the lookback window applied at MV refresh time: 1h, 1d, 1w, 30d. Omit for all-time. Each interval is a sliding window of fills whose fill_time >= now() - interval at the most recent MV refresh; rows have up to one hour of staleness (and up to six hours for the all-time aggregate). Backed by state_user_by_coin.
Every row embeds the compact outcome context (outcome_id, outcome_name, question_id, question_name, status, settle_fraction). For full outcome metadata (description, side_specs, named_outcome_ids, etc.) call /v1/hyperliquid/outcomes?outcome_id=....
Optional parameters
| Name | Type | Description |
|---|---|---|
user query | string · evm-address | Filter by address Single value or array of values* (separate multiple values with ,)*Plan restricted. e.g. 0xd8da6bf26964af9d7eed9e03e53415d37aa96045 |
outcome_id query | string · uint64 | HIP-4 outcome id (UInt64). One outcome has two side coins, #<id*10> and #<id*10+1>.Single value or array of values* (separate multiple values with ,)*Plan restricted. e.g. 172 |
question_id query | string · uint64 | HIP-4 question id (UInt64). Groups multi-outcome questions (e.g. World Cup). Binary single-outcome markets have no question id. Single value or array of values* (separate multiple values with ,)*Plan restricted. e.g. 32 |
interval query | Enum · 4 | Lookback window for user statistics (1 hour, 1 day, 1 week, 30 days). Omit for all-time. 1h1d1w30d |
sort_by query | Enum · 3 | total_volumetransactionsrealized_pnl |
limit query | integer | Number of items* returned in a single request. *Plan restricted. |
page query | integer | Page number to fetch. Empty data array signifies end of results. |
Response
200 OK{ "data": [ { "user": "0xfcecc2a54724cf0502eb7c916e2717ef76a510ed", "transactions": 276, "buys": 30, "sells": 246, "volume_bought": 62980.97, "volume_sold": 194043.55, "total_volume": 257024.52, "realized_pnl": 61796.11, "first_trade": "2026-06-12 09:36:14", "last_trade": "2026-06-14 18:15:01", "outcome": { "outcome_id": 318, "outcome_name": "Germany", "question_id": null, "question_name": null, "status": "settled", "settle_fraction": 1 } } ] }