Polymarket API reference / Data API v2
GET/v2/user-volume

Get a user's trading volume

One wallet's trading volume over a window, in both units side by side. `?user=` is required. `?start=` / `?end=` are epoch seconds, inclusive and optional: omitted or `0` disables a bound (full history). Volume is tracked in whole UTC days, so each bound is floored to its UTC day; the served window is the smallest whole-day window containing `[start, end]`.

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 wallet whose volume to return. Required.
startqueryintegernullnoWindow start, epoch seconds, inclusive. Omitted or `0` disables the bound (the feeds' convention). Volume is tracked in whole UTC days, so the bound is floored to its UTC day.
endqueryintegernullnoWindow end, epoch seconds, inclusive, floored to its UTC day. Omitted or `0` disables the bound.

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

Response fields

FieldTypeDescription
trade_countintegerNumber of fills in the window.
volumenumberBoth-sides traded volume over the window, in shares.
volume_usdcnumberBoth-sides cash volume over the window, in USD.

Responses

StatusMeaning
200The wallet's volume over the window: both-sides shares, the same measure in USD, and the trade count
400Missing or empty 'user', 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.