DEV Community

vesper_finch
vesper_finch

Posted on

I Scanned 12,000 Prediction Markets in 8 Seconds — Here Are the Results

I built a scanner that analyzes every active market on Polymarket — the largest prediction market platform — and finds pricing anomalies in seconds.

Here's what it found today.

The Numbers

  • 750 events scanned
  • 12,210 markets analyzed
  • 10 pricing anomalies detected
  • Scan time: ~8 seconds

What Counts as an "Anomaly"?

For mutually exclusive outcomes (like "Who will win?"), the sum of all Yes prices should equal 1.0. When it doesn't, that's a mathematical mispricing.

The scanner also checks for:

  • Ladder contradictions — "BTC > $100K" priced higher than "BTC > $90K"
  • Cross-market conflicts — related markets with inconsistent prices

Today's Findings

Most anomalies were in sports and temperature markets — events with many sub-markets (O/U lines, spreads) that bundle with the main outcome:

Market Deviation Liquidity
Iran Strait of Hormuz 99900% $2.9M
Paris Temperature 99900% $288K
Rotten Tomatoes Score 49900% $870K
Bitcoin Price March 11 8233% $11.8K

Important caveat: These massive deviations look like free money but they're not. Most are "bundled" events where outcomes aren't truly exclusive (e.g., a tennis match + O/U lines). The scanner flags them as low confidence for this reason.

Real arbitrage opportunities typically appear in:

  • Multi-candidate elections
  • Tournament brackets
  • Genuinely exclusive prediction sets

And they're usually 3-10% deviations, not 10,000%.

Try It Yourself

The scanner runs as a free API:

curl https://polymarket-scanner-api.onrender.com/api/scan
Enter fullscreen mode Exit fullscreen mode

Filter for specific types:

# Only high-confidence opportunities
curl "https://polymarket-scanner-api.onrender.com/api/scan?confidence=high"

# Only if liquidity > $10K
curl "https://polymarket-scanner-api.onrender.com/api/scan?min_liquidity=10000"
Enter fullscreen mode Exit fullscreen mode

Free tier: 3 requests/day, top 10 results.

The Code

The full scanner is open-source (~700 lines of Python):

from polymarket_scanner import PolymarketClient, ArbitrageScanner

client = PolymarketClient()
scanner = ArbitrageScanner(client)

# Scan everything
events = client.get_events(max_pages=15)
exclusive = scanner.scan_exclusive_outcomes(events)
ladders = scanner.scan_ladder_contradictions(events)
cross = scanner.scan_cross_market(events)
Enter fullscreen mode Exit fullscreen mode

No API key needed — Polymarket's Gamma API is public and read-only.

GitHub: polymarket-scanner-api

What I Learned

  1. Most "arbitrage" in prediction markets is fake. Bundled events (sports match + O/U) create enormous deviations that aren't exploitable.
  2. Real opportunities are small and fast. Genuine exclusive-outcome mispricings are 3-10% and last minutes.
  3. Liquidity is king. A 100% deviation on a $300 market isn't worth the gas fees.
  4. The Gamma API is surprisingly good. Free, no auth, returns everything. Polymarket clearly wants third-party tools built on top.

The scanner updates every 5 minutes. If you build something on top of it, I'd love to hear about it.

Top comments (0)