Polymarket API reference / Data API v2
GET/v2/activity/combos

List 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

NameInTypeRequiredDescription
userquerystringnullyesRequired; the feed is user-anchored.
limitqueryintegernullnoFirst-page size. Ignored when `cursor` is supplied.
cursorquerystringnullnoOpaque pagination cursor from a prior response's `next_cursor`.
conditionquerystringnullnoCombo 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

FieldTypeDescription
amount_usdcnumbernullCash amount of the action in USDC; `null` where no cash leg applies.
block_numberintegerBlock number of the action.
combo_condition_idstringOn-chain combo condition id (structural, `0x03`-prefixed).
combo_position_idstringToken id of the combo position the action touched.
idstring`tx_hash-log_index`.
legsobject[]The combo's legs, in leg order, with market and event enrichment.
payout_usdcnumbernullRedemption payout in USDC on REDEEM rows; `null` otherwise.
proxy_walletstringProxy wallet the action belongs to.
timestampintegerEvent time (epoch seconds).
transaction_hashstringHash of the settling transaction.
typestringCanonical action verb; SPLIT / MERGE / CONVERT / COMPRESS / WRAP / UNWRAP / REDEEM. The only action field on the wire; `timestamp` is the served event clock.

Responses

StatusMeaning
200A page of combo activity
400Invalid query params or cursor, a malformed 'condition' combo id, or a 'user' that is a known protocol contract address
429Service is at heavy-query capacity; retry after `Retry-After`
500Internal server error
503Timed 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

Polymarket's API serves current state only, so it cannot show what a market's book looked like after it resolved. PolyTest records Up/Down markets while they run and keeps the snapshots. Try it free, or read the full rate limit reference.

From Polymarket's published OpenAPI spec and rate-limit tables, synced 2026-10-04.