Polymarket × Kalshi Arbitrage Scanner avatar

Polymarket × Kalshi Arbitrage Scanner

Pricing

from $0.10 / scan run

Go to Apify Store
Polymarket × Kalshi Arbitrage Scanner

Polymarket × Kalshi Arbitrage Scanner

Scans Polymarket and Kalshi, matches equivalent binary markets and surfaces risk-free arbitrage opportunities and price divergences.

Pricing

from $0.10 / scan run

Rating

0.0

(0)

Developer

Franclim Diogo

Franclim Diogo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Polymarket × Kalshi Arbitrage Scanner — Prediction Market Arbitrage Finder

Scan Polymarket and Kalshi in one run, automatically match equivalent binary (Yes/No) prediction markets across both platforms, and get back two kinds of actionable signals:

  1. Risk-free arbitrage opportunities — pairs where buying YES on one platform and NO on the other costs less than $1.00 total (Kalshi taker fees included), locking in a guaranteed return no matter the outcome.
  2. Price divergences — pairs where the implied probability differs by 3% or more between platforms, useful for traders with a directional view or for tracking where the "wisdom of crowds" disagrees with itself.

Run it on a schedule (hourly is recommended) and pipe results to webhooks, spreadsheets, or your own alerting.

Why this Actor?

Cross-platform prediction market arbitrage is real, but the hard part is matching: knowing that Polymarket's "Will the Fed cut rates in September?" and Kalshi's "Fed decision — September: Cut" are the same bet. This Actor takes a deliberately transparent approach: every result row shows you the similarity score, the exact shared terms that drove the match, and a confidence level — so you can verify the match yourself before risking a cent. No black-box embeddings silently pairing markets that resolve on different terms.

How it works

  1. Fetches the top Polymarket markets by 24h volume (Gamma API), keeping only strictly binary Yes/No markets above your liquidity threshold.
  2. Fetches all open Kalshi markets with live two-sided quotes (public trade API), excluding multivariate parlay combos.
  3. Matches each Polymarket market to its best Kalshi counterpart by lexical similarity (Jaccard over normalized title tokens, with a penalty when numeric thresholds/years disagree).
  4. For each matched pair, computes both hedge strategies — YES@Polymarket + NO@Kalshi and YES@Kalshi + NO@Polymarket — with Kalshi taker fees included, and keeps the cheaper one.
  5. Outputs arbitrage rows (total cost < $1.00) sorted by guaranteed return, and divergence rows (probability gap ≥ 3%) sorted by gap size.

Input

FieldDefaultDescription
minSimilarity"0.6"Minimum title similarity (0–1) to accept a cross-platform match. Raise to 0.75+ for high-confidence pairs only.
minPmLiquidity500Skip Polymarket markets below this liquidity (USD).
minKalshiVolume24h0Skip Kalshi markets below this 24h volume.
pmMarketsToScan600How many top-volume Polymarket markets to scan (max 2000).
maxResults100Cap per category (arbitrage / divergence).

Output fields

Each dataset row includes:

FieldDescription
categoryarbitrage or divergence
strategye.g. YES@Polymarket + NO@Kalshi — the cheaper hedge
total_costTotal cost per $1 payout, Kalshi fee included
guaranteed_return_pct(arbitrage only) locked-in return %
prob_gap_pct(divergence only) implied-probability gap %
kalshi_feeKalshi taker fee applied to the Kalshi leg
pm_question, pm_url, pm_yes_price, pm_liquidity, pm_volume_24h, pm_end_datePolymarket side
kalshi_title, kalshi_ticker, kalshi_url, kalshi_yes_ask, kalshi_no_ask, kalshi_liquidity, kalshi_volume_24h, kalshi_end_dateKalshi side
similarityMatch score (0–1)
shared_termsThe actual tokens both titles share — inspect these!
confidencehigh (≥ 0.75) or medium
warningReminder to verify both markets resolve on identical terms

A full run report (counts, parameters, errors, all rows) is also saved to the key-value store as REPORT.

Honest limitations

  • Polymarket prices are midpoints. The Gamma API returns outcome prices, not a live order book; treat them as midpoints and expect some slippage on execution.
  • Matching is lexical (v1). Jaccard similarity over title tokens catches most equivalent markets but can pair markets that resolve on subtly different terms (different deadlines, different resolution sources). Always read both markets before trading — that's why every row carries shared_terms and a warning.
  • True arbs are rare and close fast. A single manual run will usually find zero arbitrage rows. Schedule hourly runs and act on alerts quickly.
  • Fees: Kalshi taker fees are included; Polymarket gas/relayer costs and withdrawal frictions are not.

This is a market-scanning tool, not financial advice. Trading prediction markets involves risk, including from mismatched market pairs. Verify everything yourself.

Roadmap

  • Semantic entity matching (v2) — LLM/embedding-assisted pairing with entity and date extraction
  • More platforms: PredictIt, Limitless
  • Webhook alerts for new arbitrage opportunities
  • Order-book depth-aware sizing

Pricing

Pay-per-event: a small flat fee per scan run, plus a per-row fee for each opportunity found. You only pay for signal.