Polymarket API reference / Data API v2
GET/v2/approvals

Get wallet approvals

Polygon token/operator approval state for one wallet. `?user=` must be an EVM address. The complete served catalog is returned in canonical order under `{ data }`; this endpoint is not paginated.

Base URL
https://data-api.polymarket.com
Auth
Public, no key
Rate limit
800 req / 10s (80 per second)
Limit applies to
General (all /v2 endpoints)

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
userquerystringnullyesThe proxy wallet whose approval state to return. Required EVM address.

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/approvals?user=<user>"

Response fields

FieldTypeDescription
addressstringThe checked wallet.
chain_idintegerEVM chain id the state was read on (137 = Polygon).
checked_atstringWhen the on-chain state was read, RFC3339 UTC (20-second server cache).
contractsobject[]One row per catalog pair the wallet may need.

Responses

StatusMeaning
200Approval state for the wallet
400Missing or invalid 'user' address, or a 'user' that is a known protocol contract address
429Too many requests; 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`
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.