1. Pull suspicious live trades
Whale trades carries a stored suspicion score on every trade. Setsuspicious_only=true to keep only the rows scoring 60 or more, which is the threshold that makes a trade a flag.
suspicion_track names which of the three scorers produced the score.
2. Pull the flagged trades
Suspicious trades returns the same flagged trades, highest suspicion score first, and adds the scorer’s ownscores and evidence. To read one flag on its own, Suspicious trade takes its rf_ id.
3. Add the wallet and the market
A flag names the wallet but does not grade it, so read the wallet and its market before you act on the lead.
Then compare the flagged trade’s
side and outcome with sharp_money.direction. A flagged wallet buying the side the net flow is already on is a different story from one taking the other side of it.
4. Check who else holds that side
Market holders lists every S, A, and B wallet holding open shares in the market, from a complete scan of Polymarket’s holders. Useoutcome=yes or outcome=no to keep one side; min_grade defaults to B, so raise it to A or S to narrow the list.
side, grade, shares, and current_value_usd. A wallet holding both outcomes is listed once, on whichever side it nets to. is_new_wallet appears only on a wallet that earns at least one badge, and it is true when the wallet’s first trade was under 30 days ago.
5. Get push alerts
Subscribe a webhook tosuspicious_trade_flagged to hear about a flag as it is raised instead of polling. It fires the first time a trade’s suspicion score crosses the flag threshold, and it is Pro only. insider_radar_flag_raised is the older spelling of the same event, and an endpoint subscribed to it keeps receiving that spelling.
The delivery’s data object carries trade_id, wallet, trader_id, condition_id, suspicion_score, track, side, size, and price. Two of those read differently from the fields with the same names on a whale trade: side is the outcome traded, yes or no, and size is a share count rather than a USD amount. track takes the same three values as suspicion_track in step 1.
See Webhooks for creating the destination and checking the signature.
What this does not do
- Prove anything. The score is a heuristic over wallet age, trade size, conviction, clustering, and fill pattern. It reads no news and knows nothing about the outcome.
- Place an order. No endpoint on this API does, so what you do with a lead is yours to code.
- Grade the wallet on the flag. A flagged trade’s
tradercarriesid,address, andusernameonly. Read the grade from Trader, as step 3 does. - Return a
watchseverity. Every stored flag isflag, so filtering forwatchreturns an empty list. - Report how old the wallet is on chain.
is_new_walletcounts from the wallet’s first trade as 0xinsider recorded it, which can be later than the wallet’s first transaction.
Related
Alert bot posts each new trade to a channel. Scores explainsreview_score (formerly signal_score), which is a separate number from the suspicion score on this page.