Skip to main content
GET
cURL
Use this endpoint to find wallets with recent profits, then request their profiles with Batch traders. Polymarket supplies the ranking and the 7-day or 30-day P&L total. For 0xinsider’s all-time grade ranking, use Leaderboard.

Parameters

Key response fields

When the cursor expires

A cursor is tied to the limit, the window, and the ranked list it was issued against. If you change any of those, or Polymarket refreshes its list between your requests, the next request returns 400 with error.reason cursor_expired. Discard the cursor, request page 1, and page forward again. A cursor issued before September 22, 2026 carried only a page number. Those answer 400 with error.param set to cursor and no error.reason. Restart from page 1.

When the list is not ready

The ranking is built when it is requested. A request that finds a ranking at least 2 minutes old gets it at once and starts a rebuild, so after a quiet period a ranking can be up to 24 hours old. meta.cached is true. When the original computation time is known, meta.cache_age_s is the ranking’s age in seconds; otherwise the age is omitted. A 503 with error.reason read_model_warming means the ranking is still being prepared. It happens only when no ranking was built in the last 24 hours. This is not a rate limit, so keep the retry separate from rate-limit handling. Wait the number of seconds in Retry-After, or until error.retry_at, and retry this route alone.

Example

What it does not return

  • More than 50 wallets for a window. That is the size of Polymarket’s list.
  • A P&L figure 0xinsider computed. Both trending_pnl_usd and the order are Polymarket’s.
  • A sparkline that adds up to the total. daily_pnl_series[] carries the shape of the run, not its arithmetic.
  • A 500 or an invented ranking when the list is not ready. You get the 503 described above.

Caching

Save the response’s ETag and send it in If-None-Match on your next request. If the list has not changed, the server returns 304 Not Modified with no body. HTTP freshness ends 120 seconds after the original computation. Any stale-while-revalidate allowance is limited by the ranking’s remaining retention. A response with unknown age grants no cache window. The same policy applies to 200 and 304.

Authorizations

Authorization
string
header
required

Legacy default or named integration API key, or OAuth 2.1 access token, in the Authorization header as Bearer oxi_sk_live_... or Bearer oxi_at_.... Default keys retain full access; integration keys are limited to their approved read, webhooks, export and usage scopes and expire within 90 days. All credentials share the owner's account limits. Data calls require an active Pro subscription and return live data. A 401 carries WWW-Authenticate: Bearer resource_metadata="https://api.0xinsider.com/.well-known/oauth-protected-resource" (RFC 6750 section 3, RFC 9728).

Headers

X-Query-Validation
enum<string>

Opt into strict query-name validation. The default is compatible: unknown names are ignored and reported in X-Query-Ignored. With strict, an unknown name returns 400 bad_request with error.reason unknown_query_parameter before the handler runs, including when its percent escape is incomplete.

Available options:
strict

Query Parameters

limit
integer
default:20

Polymarket's weekly leaderboard caps the ranked set at 50 wallets; requests above 50 still return at most 50. Out-of-range values are clamped to 1..50.

Required range: 1 <= x <= 50
cursor
string

Opaque pagination cursor from a previous response, bound to its effective limit, window and ranked-board generation. A changed board or request scope returns error.reason=cursor_expired; legacy page-only cursors must restart from page one.

window
enum<string>
default:7d

Trailing window.

Available options:
7d,
30d

Response

Trending wallets list

object
string
required
Allowed value: "list"
data
object[]
required
has_more
boolean
required
meta
object
required
next_cursor
string

Opaque cursor for the next page; absent on the last page.

total
integer

Total ranked rows when the read model exposes a count; may be absent.