Skip to main content
By the end you have a review queue of flagged Polymarket trades. Each row carries the wallet’s grade and how many markets it has traded, the direction large money is flowing on that market, and the graded wallets holding the same side. A flag is a lead, not proof. 0xinsider raises one when a trade’s suspicion score reaches 60, scored from the wallet’s age and the size and shape of the fill. Nothing in that score reads the news or knows how the market resolved. You need a Pro API key. See Authentication.

1. Pull suspicious live trades

Whale trades carries a stored suspicion score on every trade. Set suspicious_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 own scores 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. Use outcome=yes or outcome=no to keep one side; min_grade defaults to B, so raise it to A or S to narrow the list.
Every row carries 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 to suspicious_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 trader carries id, address, and username only. Read the grade from Trader, as step 3 does.
  • Return a watch severity. Every stored flag is flag, so filtering for watch returns an empty list.
  • Report how old the wallet is on chain. is_new_wallet counts from the wallet’s first trade as 0xinsider recorded it, which can be later than the wallet’s first transaction.
Alert bot posts each new trade to a channel. Scores explains review_score (formerly signal_score), which is a separate number from the suspicion score on this page.