Skip to main content
POST
Create an immutable whale dataset
Use this endpoint to export large trades from multiple wallets and markets as a gzip-compressed NDJSON file. It returns a job; check its status, then download the file when ready. You need active Pro or Max access. Integration keys and OAuth tokens need the export scope; a default API key needs no additional scope. For an enriched dataset about 1 wallet, use Trader exports.

Parameters

Send these fields in a JSON body. The selected time range and filters stay fixed for the job.

Key response fields

A new job returns 202. An identical request with the same normalized filters returns its existing live job with 200 and uses no additional export quota.

Limits

Dataset jobs and trader exports share a limit of 20 submissions per account per day. Dataset jobs also have a combined limit of 5 per hour, across all filters and keys on the account. Failed and cancelled jobs still count against those limits. A job can make up to 3 worker attempts. It fails if the result exceeds 1,000,000 rows or 256 MiB before compression, and publishes no partial file. Narrow the time range or filters before submitting another job.

Continue with deltas

The completed job includes a manifest with a generation.continuation object. Send its cursor, condition_id, and min_size to Event replay to collect trades inserted after the export’s selection point. Replay intentionally overlaps some exported rows, including trades committed after to while the job was waiting. Deduplicate with the dataset row’s id, expanded replay’s trade.id, or wt_<payload.whale_alert_id> without expansion. Save each returned replay cursor after processing its page. The original from and to do not filter replay events. A late-arriving trade can be older than the exported window. Replay reports insertions only and does not provide updates, deletions, or exactly-once delivery.

Example

What it does not return

  • A file in the submission response. Read the returned job, then download when ready.
  • Complete Polymarket trade history. The rows cover detected large trades stored in whale_alerts, with possible ingestion and retention gaps.
  • Current wallet grades or market enrichment. The file contains the trade’s stored source fields.
  • Guessed outcome indices. outcome_index is null when the stored source cannot establish it.
  • Rounded prices or USD sizes. price and size_usd are exact decimal strings.
  • Another account’s job. Status, download, and cancellation return 404 for it.

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).

Body

application/json

Finite past [from, to) window up to 31 days, with optional stable source filters. Identical live normalized requests reuse their job without another reservation. A failed or expired job can be resubmitted.

from
string<date-time>
required
to
string<date-time>
required
condition_id
string

Raw provider condition id or mkt_-prefixed id.

min_size
number

USD minimum, normalized to cents like replay.

Required range: 0 <= x <= 1000000000000000

Response

Reused identical live dataset job.

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