Polymarket & Kalshi Odds Scraper — Prices & Arbitrage avatar

Polymarket & Kalshi Odds Scraper — Prices & Arbitrage

Pricing

from $3.00 / 1,000 result rows

Go to Apify Store
Polymarket & Kalshi Odds Scraper — Prices & Arbitrage

Polymarket & Kalshi Odds Scraper — Prices & Arbitrage

Scrape live prediction-market odds from Polymarket and Kalshi in one run: yes/no prices, implied probabilities, spread, 24h volume, liquidity and close time for every open market, plus cross-venue matches with the net arbitrage return. Public APIs, no login, JSON output.

Pricing

from $3.00 / 1,000 result rows

Rating

0.0

(0)

Developer

Galter Time

Galter Time

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Polymarket & Kalshi Odds Scraper — prices, implied probabilities and cross-venue arbitrage

Scrape live prediction-market odds from Polymarket and Kalshi in a single run and get clean JSON: every open market's yes/no prices, implied probability, bid–ask spread, 24-hour volume, liquidity, close time and link — plus cross-venue rows that pair the same question on both venues and compute the probability gap and the net arbitrage return after Kalshi fees. No login, no API keys, public endpoints only, ~10 seconds per run.

Polymarket & Kalshi odds table

What can you do with Polymarket and Kalshi odds data?

  • Track election, Fed, crypto and sports probabilities over time — schedule the Actor hourly and chart implied_prob_yes.
  • Find prediction-market arbitragevenue: cross_venue rows show where buying YES on one venue and NO on the other costs less than $1 (net_return_pct > 0, arb: true).
  • Compare venuesprob_gap_pts shows where Kalshi and Polymarket disagree by 5, 10, 20 points.
  • Feed dashboards, alerts, spreadsheets and AI agents — stable schema, one row per market, MCP-ready.

How to get Polymarket odds as JSON (quick start)

Run with the defaults: you get the ~300 most-traded open markets on each venue plus cross-venue pairs. Narrow with keyword (e.g. "Fed", "Bitcoin", "Super Bowl") or categories (["sports"], ["economics"], ["nfl"]).

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("galterapp/polymarket-kalshi-odds-scraper").call(run_input={"keyword": "Fed", "maxMarketsPerVenue": 100})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["venue"], row["question"], row["implied_prob_yes"])
const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('galterapp/polymarket-kalshi-odds-scraper').call({ categories: ['sports'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
curl -X POST "https://api.apify.com/v2/acts/galterapp~polymarket-kalshi-odds-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "content-type: application/json" -d '{"keyword":"Bitcoin"}'

Sample market row

{"venue":"polymarket","market_id":"will-the-fed-cut-rates-in-september","event":"Fed decision in September?",
"question":"Will the Fed cut rates in September?","category":"economy","yes_bid":0.62,"yes_ask":0.63,
"implied_prob_yes":0.625,"spread":0.01,"volume_24h_usd":1834211.5,"liquidity_usd":412560.2,
"close_time":"2026-09-17T18:00:00Z","url":"https://polymarket.com/event/fed-decision-in-september","ts":1788400000}

Sample cross-venue row

{"venue":"cross_venue","match_score":0.71,"kalshi_question":"Will the Fed cut rates at the September meeting?",
"polymarket_question":"Will the Fed cut rates in September?","kalshi_prob_yes":0.66,"polymarket_prob_yes":0.625,
"prob_gap_pts":3.5,"best_direction":"polymarket_yes+kalshi_no","net_return_pct":0.84,"arb":true}

Input

FieldDefaultMeaning
venuesbothpolymarket, kalshi
keywordsubstring filter on event + question
categoriesallKalshi categories or Polymarket tag slugs
minVolume24hUsd0drop thin markets
maxMarketsPerVenue300rows per venue, most-traded first
includeCrossVenuetrueadd paired rows with net_return_pct
matchThreshold0.5question-similarity needed to pair venues

How the numbers are computed

  • implied_prob_yes = YES mid price (Kalshi: (bid+ask)/2, fallback last trade; Polymarket: outcome price).
  • Cross-venue net_return_pct = 1 − (YES ask on A + NO ask on B) − Kalshi fee (0.07·p·(1−p)) − 0.5% slippage buffer, best of both directions.
  • Pairing is by word overlap of the questions (match_score). Always verify resolution rules and dates on both sites before trading — a pair with a high gap is often two different questions.

Notes

  • Public market data only (Polymarket Gamma API, Kalshi trade API v2). Nothing stored, no wallet, no account.
  • Not financial advice. Kalshi is US-regulated; Polymarket availability depends on your jurisdiction.
  • Pricing: pay per row. A default run is ~600 market rows + a few dozen cross-venue rows.