curl -sS \
-H "Authorization: Bearer $OXINSIDER_API_KEY" \
'https://api.0xinsider.com/api/v1/large-trades/history'import requests
url = "https://api.0xinsider.com/api/v1/large-trades/history"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.0xinsider.com/api/v1/large-trades/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.0xinsider.com/api/v1/large-trades/history",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xinsider.com/api/v1/large-trades/history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.0xinsider.com/api/v1/large-trades/history")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.0xinsider.com/api/v1/large-trades/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"id": "wt_392079",
"traded_at": "2026-09-22T02:05:52Z",
"size_usd": 19232.92,
"side": "BUY",
"outcome": "Rams",
"token_id": "43677542496120548237382622015301078356830156697348317225498679221043021866409",
"price": 0.9398,
"review_score": 0.3959,
"signal_score": 0.3959,
"recorded_review_score": 0.4041,
"recorded_signal_score": 0.4041,
"market_volume_share": 0.002852,
"suspicion_score": null,
"suspicion_track": null,
"trader": {
"id": "trd_0xabc1230000000000000000000000000000000abc",
"address": "0xabc1230000000000000000000000000000000abc",
"username": "example_trader",
"grade": "F",
"grade_at_trade": "F",
"grade_at_trade_status": "graded"
},
"market": {
"id": "mkt_0xdef4560000000000000000000000000000000def613f54180a6d82f81c586f87",
"condition_id": "0xdef4560000000000000000000000000000000def613f54180a6d82f81c586f87",
"title": "Giants vs. Rams",
"slug": "nfl-nyg-la-2026-09-22",
"category": "NFL"
}
},
{
"id": "wt_392077",
"traded_at": "2026-09-22T02:04:20Z",
"size_usd": 16292.73,
"side": "BUY",
"outcome": "Dallas Wings",
"token_id": "26603239767113701790776634803790654539492519362779665632490658212718064984767",
"price": 0.65,
"review_score": 0.33,
"signal_score": 0.33,
"recorded_review_score": 0.3383,
"recorded_signal_score": 0.3383,
"market_volume_share": 0.528557,
"suspicion_score": null,
"suspicion_track": null,
"trader": {
"id": "trd_0xdef4560000000000000000000000000000000def",
"address": "0xdef4560000000000000000000000000000000def",
"grade_at_trade": null,
"grade_at_trade_status": "unknown"
},
"market": {
"id": "mkt_0xdef4560000000000000000000000000000000def4c2638b15eda50ca1b7ce303",
"condition_id": "0xdef4560000000000000000000000000000000def4c2638b15eda50ca1b7ce303",
"title": "Dallas Wings vs. Phoenix Mercury",
"slug": "wnba-dal-phx-2026-09-21",
"category": "WNBA"
}
}
],
"data_quality": {
"status": "partial",
"field_groups": [
{
"group": "alert",
"owner": "whale_alerts.inserted_xid",
"status": "unknown",
"reason": "whale_alerts.inserted_xid is a transaction identifier rather than a timestamp"
},
{
"group": "trade",
"owner": "trades.ingested_at",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
},
{
"group": "trader",
"owner": "traders.last_synced",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
},
{
"group": "ranking",
"owner": "trader_rankings.computed_at",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
},
{
"group": "market",
"owner": "market_canonical.last_refreshed_at",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
},
{
"group": "volume",
"owner": "markets.volume_request_observed_at",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
}
]
},
"has_more": true,
"next_cursor": "2026-09-22T02:04:20+00:00_wth_392077",
"meta": {
"request_id": "req_example",
"cached": false,
"source": {
"kind": "local_replay",
"table": "whale_alerts",
"provider_fetch_at_request_time": false
},
"completeness": {
"status": "best_effort",
"reason": "Historical whale trades are replayed from local whale_alerts rows; provider backfill completeness can vary by market and time window."
}
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}Large trades history
List stored large trades for one market, wallet, category, or time window, newest first, for backtests, reports, and cache recovery.
curl -sS \
-H "Authorization: Bearer $OXINSIDER_API_KEY" \
'https://api.0xinsider.com/api/v1/large-trades/history'import requests
url = "https://api.0xinsider.com/api/v1/large-trades/history"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.0xinsider.com/api/v1/large-trades/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.0xinsider.com/api/v1/large-trades/history",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xinsider.com/api/v1/large-trades/history"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.0xinsider.com/api/v1/large-trades/history")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.0xinsider.com/api/v1/large-trades/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"id": "wt_392079",
"traded_at": "2026-09-22T02:05:52Z",
"size_usd": 19232.92,
"side": "BUY",
"outcome": "Rams",
"token_id": "43677542496120548237382622015301078356830156697348317225498679221043021866409",
"price": 0.9398,
"review_score": 0.3959,
"signal_score": 0.3959,
"recorded_review_score": 0.4041,
"recorded_signal_score": 0.4041,
"market_volume_share": 0.002852,
"suspicion_score": null,
"suspicion_track": null,
"trader": {
"id": "trd_0xabc1230000000000000000000000000000000abc",
"address": "0xabc1230000000000000000000000000000000abc",
"username": "example_trader",
"grade": "F",
"grade_at_trade": "F",
"grade_at_trade_status": "graded"
},
"market": {
"id": "mkt_0xdef4560000000000000000000000000000000def613f54180a6d82f81c586f87",
"condition_id": "0xdef4560000000000000000000000000000000def613f54180a6d82f81c586f87",
"title": "Giants vs. Rams",
"slug": "nfl-nyg-la-2026-09-22",
"category": "NFL"
}
},
{
"id": "wt_392077",
"traded_at": "2026-09-22T02:04:20Z",
"size_usd": 16292.73,
"side": "BUY",
"outcome": "Dallas Wings",
"token_id": "26603239767113701790776634803790654539492519362779665632490658212718064984767",
"price": 0.65,
"review_score": 0.33,
"signal_score": 0.33,
"recorded_review_score": 0.3383,
"recorded_signal_score": 0.3383,
"market_volume_share": 0.528557,
"suspicion_score": null,
"suspicion_track": null,
"trader": {
"id": "trd_0xdef4560000000000000000000000000000000def",
"address": "0xdef4560000000000000000000000000000000def",
"grade_at_trade": null,
"grade_at_trade_status": "unknown"
},
"market": {
"id": "mkt_0xdef4560000000000000000000000000000000def4c2638b15eda50ca1b7ce303",
"condition_id": "0xdef4560000000000000000000000000000000def4c2638b15eda50ca1b7ce303",
"title": "Dallas Wings vs. Phoenix Mercury",
"slug": "wnba-dal-phx-2026-09-21",
"category": "WNBA"
}
}
],
"data_quality": {
"status": "partial",
"field_groups": [
{
"group": "alert",
"owner": "whale_alerts.inserted_xid",
"status": "unknown",
"reason": "whale_alerts.inserted_xid is a transaction identifier rather than a timestamp"
},
{
"group": "trade",
"owner": "trades.ingested_at",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
},
{
"group": "trader",
"owner": "traders.last_synced",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
},
{
"group": "ranking",
"owner": "trader_rankings.computed_at",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
},
{
"group": "market",
"owner": "market_canonical.last_refreshed_at",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
},
{
"group": "volume",
"owner": "markets.volume_request_observed_at",
"status": "unknown",
"reason": "the page returned no large-trade row from which to read this writer clock"
}
]
},
"has_more": true,
"next_cursor": "2026-09-22T02:04:20+00:00_wth_392077",
"meta": {
"request_id": "req_example",
"cached": false,
"source": {
"kind": "local_replay",
"table": "whale_alerts",
"provider_fetch_at_request_time": false
},
"completeness": {
"status": "best_effort",
"reason": "Historical whale trades are replayed from local whale_alerts rows; provider backfill completeness can vary by market and time window."
}
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}{
"object": "error",
"error": {
"code": "bad_request",
"message": "<string>",
"doc_url": "<string>",
"param": "<string>",
"retry_at": "2023-11-07T05:31:56Z",
"freshness": {
"max_age_s": 1,
"data_quality_status": "fresh",
"actual_age_s": 1,
"as_of": "2023-11-07T05:31:56Z"
},
"reason": "cursor_expired"
},
"meta": {
"request_id": "<string>",
"cached": true,
"cost": 123,
"cache_age_s": 123,
"ranking_generation": 123,
"ranking_as_of": "2023-11-07T05:31:56Z",
"directional_source": "live",
"ranking_source": "live",
"category_skill_source": "live",
"category_skill_model_version": "<string>",
"category_skill_taxonomy_version": "<string>",
"category_skill_platform": "polymarket",
"category_skill_scope": "observed_goldsky_primary_taker_fill",
"category_skill_source_coverage": "partial_whale_threshold_fills",
"category_skill_observation_started_at": "2023-11-07T05:31:56Z",
"category_skill_model_operationally_degraded": true,
"category_skill_status_counts": {
"live": 1,
"insufficient": 1,
"stale": 1,
"unknown": 1,
"degraded": 1
},
"category_skill_base_payload_hash": "<string>",
"category_skill_enriched_base_payload_hash": "<string>"
}
}traded_at and then by id, or by market_volume_share when you send sort=market_volume_share.
These rows are a replay of what 0xinsider already stored, so nothing is fetched from Polymarket while your request is open. For the live feed with no window, use Large trades.
Parameters
| Parameter | Description |
|---|---|
from | The earliest traded_at to return, as an RFC3339 timestamp. The bound is inclusive. |
to | The first traded_at to exclude, as an RFC3339 timestamp. When both are sent, to must be after from, or you get 400 with error.param to. |
condition_id | The exact raw Polymarket condition_id. A market 0xinsider has no rows for returns an empty list, not an error. |
trader | One wallet, given as an address, a timestamp-suffixed wallet alias, a Polymarket username, or a trd_ id. A wallet 0xinsider does not know returns an empty list. |
platform | polymarket or all, which mean the same thing. Any other value returns 400 with error.param platform. |
category, min_grade, suspicious_only, min_size, min_market_volume_share | The same rules as Large trades. min_size defaults to 5000. |
sort | recent returns newest first and is the default. market_volume_share returns the biggest share of its own market first, with trades that have no share last, and reads the window you asked for, or the last 30 days when you send no from. |
limit | How many trades to return, from 1 to 100. The default is 20. |
cursor | The next_cursor value from the previous response. URL-encode it. See Pagination. A cursor belongs to the sort it was returned under, so sending it with the other sort is rejected. |
has_more and next_cursor describe the filtered result, so a full page always holds limit matching trades.
Key response fields
| Field | Meaning |
|---|---|
meta.source.kind | Always local_replay, and meta.source.table is always whale_alerts. The rows come from 0xinsider’s own store. |
meta.source.provider_fetch_at_request_time | Always false. Nothing is fetched from Polymarket while the request is open, so the response cannot be slowed by a provider. |
meta.completeness.status | Always best_effort, with meta.completeness.reason saying why. Coverage of a given market and window can have gaps, so do not treat an empty window as proof that nothing traded. |
data_quality | Page-level age and coverage beside data. The groups are alert, trade, trader, ranking, market, and volume. trades.ingested_at, traders.last_synced, trader_rankings.computed_at, market_canonical.last_refreshed_at, and markets.volume_request_observed_at provide the measurable clocks; whale_alerts.inserted_xid is a transaction identifier, so alert is unknown. The stored clocks are part of the ETag; cache facts remain in meta. |
market_volume_share | size_usd divided by a volume figure recorded at or after the trade, so it always reads between 0 and 1. It is absent when no such figure is stored. Filter on it with min_market_volume_share and rank by it with sort=market_volume_share. |
trader.grade_at_trade | The grade the wallet held when the trade happened. null unless trader.grade_at_trade_status is graded. |
trader.grade_at_trade_status | graded, ungraded (recorded without a grade then), or unknown (no record covers that moment). Every trade before September 19, 2026 23:00 UTC is unknown. |
recorded_review_score | The review score written when the row was stored (formerly recorded_signal_score, which still carries the same value). null before August 3, 2026 11:59 UTC, and never backfilled. |
trader.grade, review_score | Today’s values, on every row however old. review_score was formerly signal_score, which still carries the same value. |
Backtest without look-ahead
trader.grade, review_score, and the min_grade filter read the wallet as it is today. A rule like “follow S-grade wallets” tested on them selects wallets that were graded S after they won, so it looks better than it could have traded.
Select on trader.grade_at_trade and recorded_review_score instead. Grades are recorded from September 19, 2026 and recorded scores from August 3, 2026; before those dates the fields say unknown and null, never a guess. Nothing earlier can be rebuilt: the grade and the statistics the score reads were not kept per moment.
Capture rules by period
The size floor changed over the archive’s life, so month-to-month counts are not comparable at the defaultmin_size.
| Period | What was stored |
|---|---|
| Before February 2, 2026 | Sparse: at most a few hundred trades a month. |
| February 2 to July 5, 2026 | 3,000 USD and up (1.4% of rows are smaller), at any price. |
| From July 6, 2026 | 10,000 USD and up (1,000 USD in earnings markets), priced below 0.97 (0.99 in earnings markets). |
min_size=10000 for one size rule across the whole range. Counts still follow the sports calendar.
Until July 17, 2026, one match could be stored twice: once for each wallet. From May 1 to July 17, 27.7% of rows at $10,000 and up share a transaction and a market with another stored wallet, almost always a Yes buyer and a No buyer filled against each other.
From July 18, 2026 a row is the taker’s side only. Before May the transaction hash is mostly absent, so the share cannot be measured there.
Example
curl -H "Authorization: Bearer $OXINSIDER_API_KEY" \
"https://api.0xinsider.com/api/v1/large-trades/history?trader=swisstony&min_size=10000&from=2026-05-01T00:00:00Z&to=2026-06-01T00:00:00Z&limit=100"
What it does not return
- A live feed. These rows are a replay of what 0xinsider stored, and
meta.completeness.statusisbest_effortfor that reason. - A trade under
min_size, which defaults to5000. Any value down to0is accepted, but it cannot reach fills below the size at which a trade is recorded at all. - An error for an unknown
traderorcondition_id. You get an empty list and a200, so check the length ofdatarather than the status code. - The wallets on the other side of a trade. Open one row with Large trade.
- A grade or a recorded score for a moment nobody recorded. Before September 19, 2026 the grade at trade time is
unknown; before August 3, 2026recorded_review_scoreisnull. - A trade priced at 0.97 or above stored since July 6, 2026, outside earnings markets.
Caching
Send theETag from a response back in an If-None-Match header. If the list has not changed, you get 304 Not Modified with an empty body. data_quality is part of the representation and its stored clocks are included in the ETag; meta.cached and meta.cache_age_s describe the transport cache.Authorizations
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
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.
strict Conditional GET validator from a previous ETag. Matching values return 304 Not Modified with an empty body.
Query Parameters
Maximum number of historical large trades to return.
1 <= x <= 100Pagination cursor from previous response's next_cursor. Prefix: wth_. URL-encode when replaying as a query parameter.
Minimum trade size in USD. The capture floor was 3,000 USD before 2026-07-06 and 10,000 USD from then (1,000 USD in earnings markets), so 10000 gives one size rule across the whole archive. From 2026-09-23 a fill must also be at least 0.1% of its market's recorded traded volume (Polymarket's own share count); rows written before that date were not re-filtered.
Exact raw provider condition_id. Unknown markets return an empty list.
Trader wallet address, timestamp-suffixed wallet alias, username, or trd_-prefixed trader ID, resolved against the traders table. Unknown traders return an empty list.
Filter by market category (case-insensitive). A canonical bucket name (e.g. Basketball) matches every provider member that folds into it (NBA, WNBA, NCAAB); a raw provider value also resolves to its bucket.
Minimum trader grade as of today (trader.grade), not at trade time. On a historical window it selects wallets by a grade they may have earned after the trade; for a point-in-time rule filter on trader.grade_at_trade instead. A means S or A, B means S, A or B.
S, A, B, C, D, F When true, return only rows with persisted suspicion_score >= 60. The filter is applied before SQL-backed limit + 1 pagination.
Filter by whale_alerts.platform. all is equivalent to omitted.
polymarket, all Inclusive RFC3339 lower bound on whale_alerts.traded_at.
Exclusive RFC3339 upper bound on whale_alerts.traded_at. Must be after from when both are present.
Keep only trades whose market_volume_share is known and at least this. A fraction, not a percent: 0.01 is one percent of the market's traded volume. A trade whose share is unavailable is never returned by a non-zero value, because an unavailable share cannot be said to clear a floor.
0 <= x <= 1Order of the returned page. recent is newest first and is the default. market_volume_share ranks by each trade's share of its market's traded volume, biggest first, with a trade whose share is unavailable last. That ranking reads from, or the last 30 days when from is omitted, for the same reason. A cursor is bound to the order it was minted in, so a continuation cannot cross from one order into the other.
recent, market_volume_share Response
Historical large trade replay
"list"Show child attributes
Show child attributes
Writer-backed age and coverage for this page; it is part of the representation and the ETag, while transport cache facts remain in meta.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Total matching rows when the read model exposes a count; the key is absent when it does not.
Was this page helpful?