DEV Community

g4dr
g4dr

Posted on

Scrape Polymarket Odds: Build a Prediction Market Tracker (and Find Arbitrage)

Prediction markets move billions and their odds are data gold — elections, sports, crypto, weather. Polymarket has an API, but it's rate-limited and incomplete for history and order books. Apify actors fill the gap: live odds, whale trades, and Kalshi-vs-Polymarket arbitrage detection.

🤖 Try it live — free Poe bots that generate the exact pipeline for your use case: Lead List Generator · Job Postings Miner · Amazon Product Miner · SERP Rank Tracker · Social Lead Finder

The stack

  • Apify — dedicated prediction-market actors, some with 800+ users. Free monthly credits.
  • Python — odds → CSV, alerts, dashboards.

Step 1 — Token

Create an Apify account → Settings → Integrations → API token.

Step 2 — Pull live market odds

curl -X POST "https://api.apify.com/v2/acts/scrapemint~polymarket-market-monitor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"category": "politics", "maxItems": 100}'
Enter fullscreen mode Exit fullscreen mode

Fields per market: question, outcomes (YES/NO prices), volume, liquidity, endDate, url.

Step 3 — Detect mispriced markets

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("scrapemint/polymarket-market-monitor").call(run_input={
    "category": "crypto", "maxItems": 200
})

for m in client.dataset(run["defaultDatasetId"]).iterate_items():
    prices = [o.get("price", 0) for o in m.get("outcomes", [])]
    # binary market where YES+NO != $1 = inefficiency
    if prices and abs(sum(prices) - 1.0) > 0.03:
        print("GAP:", m["question"][:70], "| prices:", prices,
              "| vol:", m.get("volume"))
Enter fullscreen mode Exit fullscreen mode

The arb play

congism/polymarket-kalshi-arb-finder (800+ users — the proven demand) compares the same event on both platforms. If Kalshi says YES at $0.52 and Polymarket says NO at $0.45, buying both locks ~3% risk-free. The actor outputs the pairs; you decide.

Whale watching

jy-labs/polymarket-whale-tracker surfaces the largest positions — when a wallet that called the last three elections moves $50k, that's a signal worth having before the odds move.

Who uses this

  • Traders — arb alerts, momentum on whale entries.
  • Journalists/analysts — prediction odds beat polls for breaking stories.
  • Data sellers — cleaned odds history = a sellable dataset.

Schedule the monitor hourly → diff snapshots → odds-movement alerts. Cost: cents.

More tools: awesome-web-scraping. Skills: npx skills add g4dr/apify-skills (repo).

Which markets are you tracking — politics, crypto, or sports?

Top comments (0)