Skip to main content
GET
cURL
Use this when a reader can switch between a day, a week, and a month in the same view, so one request path covers all three. A whale trade is one large Polymarket fill that 0xinsider recorded, and Whale trades lists them one at a time. For a fixed range, Daily report snapshot, Weekly report snapshot, and Monthly report snapshot all stay available.

Parameters

A weekly from,to range includes both dates and can be at most 31 days wide. A wider one answers 400 with error.reason invalid_query and error.param period. For the same period, the body is the same as the matching single-period route apart from meta.request_id. The row caps match too: 50 trades for daily, 100 for weekly, and 200 for monthly.

When the numbers stop changing

A report is final only once its body is built after the period has closed and after the trades from those dates have had time to arrive. That cutoff is snapshot.final_after: the period’s UTC close plus the 7,530-second ingestion budget. Until that instant snapshot.status is rolling and every number can still move. A closed period refreshes every 5 minutes until final_after, is rebuilt once after it, and is then frozen.

Key response fields

Example

What it does not return

  • A 404 for a quiet period. A period with no large trades answers 200 with completeness.status empty.
  • A trimmed range. A weekly from,to range wider than 31 inclusive UTC days answers 400 invalid_query instead of being cut down to fit.
  • A different body from the single-period route. The caps and the date window are the same for the same period.
  • A settled figure for the period you are still in. A rolling body changes until final_after passes, then is rebuilt once and frozen.
  • Polymarket’s own volume figures. Every total here is built from the large trades 0xinsider recorded.
  • A weekly from,to range on every request. When too many custom ranges are being computed at once, you get 503 with error.reason read_model_warming and a Retry-After of 5 seconds.

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

granularity
enum<string>
required

Report granularity selector.

Available options:
daily,
weekly,
monthly
period
string
required

Period token for the granularity. daily: UTC date YYYY-MM-DD. weekly: ISO week YYYY-WW for a durable canonical snapshot, or a from,to YYYY-MM-DD pair for an exact ephemeral range limited to 31 inclusive UTC days. A wider explicit range returns 400 invalid_query. monthly: UTC month YYYY-MM. A period that ends before 2024-03-01, the first day report data covers, or starts after tomorrow UTC returns 400 bad_request with error.param=period.

Minimum string length: 1

Response

Daily report snapshot

object
string
required
Allowed value: "report_snapshot"
data
object
required
meta
object
required