API & feeds
Free, no key, CORS enabled. Flags refresh every 15 minutes; /api/live.json returns the latest $10k+ trades with about 10 seconds of caching. Please link back to WhaleGrader when you use the data.
GET /api/v1/flags?limit=50Latest flags. Filters: venue (polymarket|kalshi|all), kind, min, status (pending|called|missed|excluded), band, q (title or wallet). Rows carry venue, result and excluded_reason.
GET /api/v1/flag/<id>/historyOne flag's price series for the traded outcome (t, p) from before entry to resolution, plus entry and resolution details.
GET /api/v1/leaderboardWallets ranked by price-adjusted edge (min sample 20).
GET /api/v1/market/<condition_id>One market: prices, biggest holders per side tagged PROVEN/LOSING, smart gap, and our flags on it.
GET /api/v1/scoreboardHeadline: called vs expected, edge, standard error. venue=kalshi or venue=all for per-venue.
GET /data/scoreboard.jsonBoth venue scoreboards plus scoreboard tables.
GET /api/v1/wallet/0x…One wallet's graded record plus its last 50 flags.
GET /feed.xmlRSS: latest 50 whale flags. Works with Slack, Discord and feed readers.
GET /feed.xml?sev=HIGHRSS: HIGH-severity flags only.
GET /badge/wallet/0x….svgEmbeddable SVG badge with a wallet's record.
Embed the live feed
Drop this on your site, Notion or blog. Free; please keep the attribution line.
<iframe src="https://whalegrader.com/embed/feed?n=8" width="100%" height="460" style="border:0;border-radius:12px" loading="lazy" title="WhaleGrader live whale trades"></iframe>
Options: n (rows, max 20), sev=HIGH for HIGH-severity only.
Example
curl https://whalegrader.com/api/v1/flags?status=pending&min=50000
Data only. Not financial advice. Source: Polymarket public APIs.