Polymarket + Kalshi Arbitrage Finder
Pricing
$1.80 / 1,000 arbitrage opportunities
Polymarket + Kalshi Arbitrage Finder
Compare public Polymarket and Kalshi binary markets. Get ranked theoretical arbitrage opportunities with prices, opposing legs, liquidity, match confidence, and direct market links.
Pricing
$1.80 / 1,000 arbitrage opportunities
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
🔎 Compare Polymarket and Kalshi opportunities
Built for prediction-market researchers, traders, and analysts, this Actor compares likely equivalent public binary markets on Polymarket and Kalshi. It returns ranked theoretical arbitrage opportunities with observed prices, opposing YES/NO legs, estimated economics, liquidity, volume, match evidence, warnings, and direct market links—without marketplace API keys or trading-account credentials.
Use it to:
- Prediction market arbitrage finder — scan current public markets for positive theoretical cross-venue opportunities.
- Polymarket Kalshi arbitrage — compare likely equivalent contracts across both venues in one run.
- Prediction market price comparison — review observed YES/NO prices, spread, and total opposing-leg cost.
- Cross-platform prediction market arbitrage — rank opportunities by estimated return after applying quality thresholds.
- Prediction market opportunity scanner — schedule fresh scans and send qualifying opportunities into downstream workflows.
📊 What data does the Actor return?
Each qualifying dataset row includes:
opportunityId— identity for the matched pair and recommended directionpolymarketandkalshi— market IDs, questions, direct URLs, observed YES/NO prices, and nullable close time, liquidity, recent volume, and resolution summarylegs— exactly two opposing contracts, each with its venue,YESorNOoutcome, and observed pricetotalCost,profitPerPayout,rawReturn, andpriceSpread— unadjusted theoretical economics from observed pricesestimatedProfitPerPayoutandestimatedReturn— net estimates after your fee and slippage assumptionsmatch— confidence score, supporting reasons, and review warningsobservedAt— when the estimate's prices and context were observed
Rows are ranked by estimated return. The Actor evaluates both cross-venue directions and keeps only positive theoretical opportunities that pass your filters. Nullable source fields remain null when a venue does not expose them.
🚀 How to run the Actor
- Open the Actor in Apify Console.
- Adjust the opportunity and market-quality filters, or keep the defaults.
- Click Start.
- Review the linked contracts and warnings in the default dataset before making any decision.
A run scans one configuration. Run separate scans when you need different filter sets.
🎛️ Input
{"minPriceSpread": 2,"minEstimatedReturn": 2,"minMatchConfidence": 80,"minLiquidity": 1000,"minRecentVolume": 500,"feePercent": 0.5,"slippagePercent": 0.5,"maxResults": 25}
| Field | Meaning |
|---|---|
minPriceSpread | Minimum opposing-leg edge in percentage points, from 0 to 100 |
minEstimatedReturn | Minimum theoretical return on total opposing-leg cost, as a percentage |
minMatchConfidence | Minimum market-equivalence confidence from 0 to 100 |
minLiquidity | Minimum source-reported USD liquidity on each venue; 0 allows any reported amount |
minRecentVolume | Minimum source-reported recent USD volume on each venue; 0 allows any reported amount |
feePercent | Conservative combined fees as a percentage of opposing-leg cost; raw economics remain available |
slippagePercent | Conservative combined adverse slippage as a percentage of opposing-leg cost |
maxResults | Maximum ranked opportunities to return, from 1 to 5,000 |
When a liquidity or volume threshold is above zero, a market with no reported value cannot pass that filter.
📦 Output
A shortened example of one conforming dataset item:
{"opportunityId": "123456__KXPRESELECT-28-A__polymarket-yes","polymarket": {"marketId": "123456","question": "Will Candidate A win the 2028 election?","url": "https://polymarket.com/event/example-market","yesPrice": 0.47,"noPrice": 0.53,"closeTime": "2028-11-08T00:00:00Z","liquidityUsd": 125000.5,"recentVolumeUsd": 48500,"resolutionSummary": "Resolves Yes if Candidate A is declared the winner."},"kalshi": {"marketId": "KXPRESELECT-28-A","question": "Will Candidate A win the 2028 presidential election?","url": "https://kalshi.com/markets/kxpreselect","yesPrice": 0.55,"noPrice": 0.45,"closeTime": "2028-11-08T00:00:00Z","liquidityUsd": 98000,"recentVolumeUsd": 32200,"resolutionSummary": "Resolves Yes if Candidate A wins the election."},"legs": [{ "venue": "polymarket", "outcome": "YES", "price": 0.47 },{ "venue": "kalshi", "outcome": "NO", "price": 0.45 }],"totalCost": 0.92,"profitPerPayout": 0.08,"rawReturn": 8.695652,"priceSpread": 8,"estimatedProfitPerPayout": 0.0708,"estimatedReturn": 7.695652,"match": {"confidence": 91,"reasons": ["Questions identify the same candidate and election", "Close times align"],"warnings": ["Review each venue's resolution rules before acting"]},"observedAt": "2026-07-17T14:30:00Z"}
Export results as JSON, CSV, Excel, XML, or RSS from the Apify dataset, or retrieve them through the dataset API.
💳 Pricing
The Actor uses pay-per-event pricing. You are charged $0.0018 for each successful visible arbitrage opportunity written to the default dataset. A successful scan with no qualifying opportunities returns an empty dataset and has no opportunity charge. Platform usage charges may still apply according to your Apify plan.
🔌 Integrations
Use Apify's API, schedules, webhooks, dataset exports, and integrations with spreadsheets or automation tools. The Actor identifies opportunities but does not place trades, access private accounts, manage portfolios, or maintain change-only monitoring state between runs.
❓ FAQ
Why can a high-return opportunity still be risky?
The calculations use observed source prices and do not guarantee simultaneous fills. Fees, slippage, market movement, trading restrictions, and fill timing can reduce or eliminate an apparent edge.
Does a high match-confidence score prove the contracts are identical?
No. Confidence, reasons, timing evidence, and warnings help screen likely matches, but they are not an authoritative determination that resolution rules are legally or economically identical. Inspect both linked contracts before acting.
Why did my run return no rows?
There may be no positive theoretical opportunity that meets every configured spread, return, confidence, liquidity, and volume threshold. A missing source-reported liquidity or volume value also fails a nonzero threshold. An empty successful scan is valid and has no opportunity charge.
Does the Actor need Polymarket or Kalshi credentials?
No. It reads public market data and does not require marketplace API keys, wallets, or trading-account credentials.
Does the Actor cover every prediction-market venue?
No. Its cross-venue comparison is limited to public Polymarket and Kalshi binary markets that can be paired with enough evidence for evaluation.
Is this financial advice or an automated trading bot?
No. The output is research data, not financial advice, executable profit, or a guarantee. The Actor never executes trades or holds funds.
📝 Changelog
- 0.1: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Stocktwits Scraper — collect public ticker messages, source sentiment, and trending symbols for adjacent market research.
- Crypto Fear and Greed Index Scraper — add current or historical crypto sentiment context to research workflows.
- FEC Campaign Finance Scraper — inspect source-backed candidate, committee, contribution, and spending data when researching political markets.
- Polymarket Market Monitor + Whale & Arbitrage Signals — monitor Polymarket activity, price changes, and market signals between scans.
- Polymarket Sports Odds Scanner & Divergence Finder — compare Polymarket sports contracts with sportsbook odds for divergence research.
Made with ❤️ by Maxime Dupré