The Automated Kalshi Trading Bot
Find mispriced Kalshi contracts and auto-execute FOK/FAK orders in under 25ms.
Why this Kalshi bot beats the alternatives
Most tools that claim to be a Kalshi trading bot fall into two camps. Either they're half-built Python scripts that place single orders when you manually press a button, or they're odds-scraper SaaS products that show you a list of opportunities but leave the execution to you. Claw Arbs is different: it's an execution engine first, a detection tool second. The UI is pretty, but the point is that orders actually go out.
| Feature | Claw Arbs | DIY Python script | OddsJam-style tool |
|---|---|---|---|
| Auto-execution (both legs) | Yes | Manual code | Detection only |
| WebSocket orderbook latency | ~25ms | Depends on code | N/A |
| Paper trading mode | Built in | DIY | None |
| Fee-aware edge detection | Kalshi fee tiers baked in | Must code | Partial |
| Naked leg tracking | 14-step pipeline | Manual | None |
| Cross-venue arb (Polymarket, sportsbooks) | Yes | No | Varies |
| Community-shared configs | Yes | N/A | No |
| Price | Free | Free | $99+ / month |
The difference shows up in the part of the workflow that actually makes money. A DIY script can detect a 2-cent arb between Kalshi and Polymarket, but by the time you've eyeballed the spread, clicked to Kalshi, placed leg A, tabbed to Polymarket, and placed leg B, the price has moved. Claw Arbs runs the whole loop in the same async event handler, usually in under 25ms. Detection-only SaaS tools have the opposite problem: they see the edge, but the human touching the mouse is still the bottleneck.
There's a second reason the bot is different. Kalshi fees are tiered, and the default tier eats 7% of every profitable trade. A 3-cent raw edge is frequently a losing trade once fees and slippage get subtracted. The bot bakes the Kalshi fee tier into every single edge calculation (configurable via kalshi_fee_tier), so the edges you see are the edges you actually collect. If you'd rather verify the math yourself first, run the numbers through our Kalshi fair odds calculator before connecting your keys.
How it works in 3 steps
Connect your Kalshi API keys
Generate an RSA keypair from your Kalshi account settings, drop the public key ID and private key file into the local secrets directory, and the bot picks them up on startup. Credentials never leave your machine. Every API request is signed locally, so there's no proxy or intermediate service that sees your private key.
Choose a strategy
Pick arbitrage (lock in a cross-venue edge), value betting (take directional bets when Kalshi diverges from sharp lines), or both at once. The Settings panel exposes per-strategy thresholds: minimum edge, maximum edge (to filter obvious errors), minimum orderbook depth, and per-market cooldowns. You can start with defaults and tune as you learn.
Go live (or paper trade first)
Set paper_trading=True to run the full pipeline without sending orders to Kalshi. You'll see simulated fills, paper P&L, and edge-log events exactly as they'd appear live. Flip to live_execution=True when you're ready. Most users spend at least a week in paper mode before committing real capital.
What contracts it covers
Kalshi's contract universe is large and still growing. The bot subscribes to the WebSocket feed for every active market and filters down to whatever you've enabled in settings. Out of the box, coverage spans:
- Sports: NFL, NBA, MLB, NHL, EPL spreads, moneylines, totals
- Politics: elections, congressional races, nomination odds
- Macro: Fed rates, GDP, CPI, jobs reports
- Weather: daily max temperatures for major cities
- Misc: entertainment awards, cultural events
For cross-venue strategies, the same contract on Kalshi gets matched automatically to its equivalent on Polymarket using game keys and market types (see the prediction market arbitrage deep dive for how matching works). When prices diverge past your threshold, the bot fires both legs.
Prediction market + sportsbook = the killer combo
Kalshi on its own is a good venue, but its pricing is only as sharp as the users trading on it. The contracts are binary (0 to 100 cents), the fee schedule is known, and the liquidity varies wildly by category. A Kalshi-only bot is playing a single-venue game with structural limits. It's fine, but it's not where the edge lives.
The edge lives at the intersection. Pair Kalshi with Polymarket (deeper liquidity on politics, crypto-native flow) and you get cross-venue arbitrage opportunities that persist because the two user bases barely overlap. Pair Kalshi with Pinnacle/PS3838 (the sharpest sportsbook in the world on major events), devig their lines to get a fair probability, and use that fair as the reference for Kalshi value bets. That's where repeatable +EV lives. The bot does all three at once automatically: it scans Kalshi, Polymarket, PS3838, and BetInAsia every ~30 seconds for new pairs, then holds a WebSocket-triggered event loop that fires the instant an edge appears. Our prediction markets hub explains how these venues complement each other.
There's a second reason to anchor on Kalshi rather than a sportsbook. Traditional sportsbooks (FanDuel, DraftKings, Bet365, William Hill) limit or ban winning accounts. Win too much, too fast, too consistently, and your stakes get capped to pennies or your account gets closed. Kalshi is an exchange, not a bookmaker. Every trade has a counterparty on the other side, and the exchange makes money on volume regardless of who wins. You can run a bot there without worrying about getting gubbed. Same story on Polymarket. For the full breakdown on why this matters for long-term profitability, see our guides on Kalshi value betting and Kalshi vs Polymarket arbitrage.
Safety & risk controls
Automated trading without risk controls is a way to burn through a bankroll quickly. The bot runs every trade attempt through a layered pipeline:
- Kill switch: a single toggle that halts all new orders instantly. Useful when you see something weird and want time to investigate.
- Naked leg tracking: if leg A fills on Kalshi but leg B on Polymarket fails, the match is flagged as naked. Both arb engines halt new trades on that match until it's resolved.
- Cooldowns per market: after a fill (or a near-miss), the market enters a cooldown window to avoid firing on the same stale price twice.
- Exposure limits by venue and total: cap how much capital can sit on Kalshi, Polymarket, each sportsbook, and across everything combined.
- Per-match rate limiting: stops the bot from trading the same match 20 times in a row during a fast-moving window.
- Deduplication of opportunities: the same arb can trigger from multiple price updates; dedup ensures only one order goes out.
- Paper trading mode: run the whole pipeline against live data without sending orders. Required reading before going live.
Together these 14 checks run on every attempted trade. If any step fails, the opportunity is dropped and logged. You can review every decision in the edge log, which is useful for tuning thresholds. If you want the full picture of how the engine works end to end, the Claw Arbs homepage has the architecture diagram and live-run screenshots.
FAQ
How do I get Kalshi API access? +
Sign up at Kalshi.com and complete identity verification (Kalshi is CFTC-regulated, so KYC is required). Once your account is active, go to account settings and generate an RSA keypair. You'll get a public key ID and a private key file. Claw Arbs reads both from your local secrets directory and uses them to sign every API request. No proxy, no third party, your keys stay on your machine.
Does the bot support FOK and FAK orders? +
Yes. Both Fill-Or-Kill (FOK) and Fill-And-Kill (FAK) order types are supported natively. FOK is used when you need the whole order filled at your price or cancelled. FAK fills what's available at your price and cancels the rest. The bot picks the right type per strategy: arbitrage legs typically use FOK to avoid partial fills, value-betting shots use FAK to capture whatever's there.
Can I paper trade before going live? +
Yes. Paper trading is a first-class mode. Set paper_trading=True in settings and the bot simulates every order against live market data without sending anything to Kalshi. You get realistic fills based on current orderbook depth, fee calculations that match live behavior, and a full paper P&L view. Run paper mode for a week before flipping live_execution=True.
What strategies does the bot support? +
Three strategies are built in. Cross-venue arbitrage (Kalshi vs Polymarket, triggered on WebSocket updates with 25ms debounce). Sharp-vs-soft value betting (Kalshi against Pinnacle/PS3838 devigged fair odds). Intra-market bracket arbitrage for multi-outcome contracts. You can run one strategy or all three at once, per-market, with independent risk limits.
Is this a Kalshi arbitrage bot, a value betting bot, or both? +
Both. Arbitrage and value betting use the same price feeds, the same execution engine, and the same risk pipeline. You toggle strategies per market. Arbitrage gives you near-zero variance lock-ins when Kalshi disagrees with Polymarket or a sharp line. Value betting takes one-sided directional shots when a soft price deviates from the devigged fair. Most users run both and let the bot pick whichever edge appears first.
Related reading: Best Kalshi Trading Bot 2026, Kalshi Value Betting, Prediction Market Arbitrage. Also trading Polymarket? See our Polymarket trading bot page.