GET
/v2/activity/combosList combo activity
Keyset-paginated combo lifecycle + redemption feed for a user, in the standard `{ data, pagination }` envelope. Pass `?cursor=` from a prior response's `next_cursor` to fetch the next page. Unlike the activity feed, the anchor behind the cursor is `(block_number, log_index)`; this endpoint's total order.
- Base URL
- https://data-api.polymarket.com
- Auth
- Public, no key
- Rate limit
- 200 req / 10s (20 per second)
- Limit applies to
- /v2/activity, /v2/activity/combos
Things to know
Every v2 response wraps its payload in a data field. Paginated reads return an opaque cursor in pagination and do not accept offset. Under load the API answers 429 with a Retry-After header.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user | query | stringnull | yes | Required; the feed is user-anchored. |
| limit | query | integernull | no | First-page size. Ignored when `cursor` is supplied. |
| cursor | query | stringnull | no | Opaque pagination cursor from a prior response's `next_cursor`. |
| condition | query | stringnull | no | Combo condition id(s), comma-separated (at most 20 distinct values). `condition_id` / `conditionId` are accepted aliases. |
user is listed as optional in Polymarket's OpenAPI spec, but the API returns 400 without it (checked 2026-10-04).
Example
curl -X GET "https://data-api.polymarket.com/v2/activity/combos?user=<user>"Returns a list of objects with these fields
| Field | Type | Description |
|---|---|---|
| amount_usdc | numbernull | Cash amount of the action in USDC; `null` where no cash leg applies. |
| block_number | integer | Block number of the action. |
| combo_condition_id | string | On-chain combo condition id (structural, `0x03`-prefixed). |
| combo_position_id | string | Token id of the combo position the action touched. |
| id | string | `tx_hash-log_index`. |
| legs | object[] | The combo's legs, in leg order, with market and event enrichment. |
| payout_usdc | numbernull | Redemption payout in USDC on REDEEM rows; `null` otherwise. |
| proxy_wallet | string | Proxy wallet the action belongs to. |
| timestamp | integer | Event time (epoch seconds). |
| transaction_hash | string | Hash of the settling transaction. |
| type | string | Canonical action verb; SPLIT / MERGE / CONVERT / COMPRESS / WRAP / UNWRAP / REDEEM. The only action field on the wire; `timestamp` is the served event clock. |
Responses
| Status | Meaning |
|---|---|
| 200 | A page of combo activity |
| 400 | Invalid query params or cursor, a malformed 'condition' combo id, or a 'user' that is a known protocol contract address |
| 429 | Service is at heavy-query capacity; retry after `Retry-After` |
| 500 | Internal server error |
| 503 | Timed out (the request deadline, the datastore statement timeout, or the connection pool's acquire budget) or a serving dependency is unavailable; retry after `Retry-After` |
Related endpoints
- GET /v2/activity Data API v2
From Polymarket's published OpenAPI spec and rate-limit tables, synced 2026-10-04.