MUSASHI

Polymarket vs Kalshi Arbitrage: How to Detect and Trade Price Discrepancies

Arbitrage between Polymarket and Kalshi occurs when the same event trades at different prices on each platform. Buy YES on the cheaper platform, sell YES on the more expensive one, and lock in the spread. Musashi's arbitrage API detects these opportunities automatically.

What Is Prediction Market Arbitrage?

Prediction markets like Polymarket and Kalshi let you buy and sell shares in the outcome of future events. Each share resolves to $1 if the event occurs, $0 if it doesn't. When both platforms price the same event differently, you can trade both sides simultaneously for a near-guaranteed profit.

Example: "Will the Fed cut rates in June?" trades at 63% YES on Polymarket and 70% YES on Kalshi. Buy 100 YES shares at $0.63 on Polymarket. Sell 100 YES shares (short) at $0.70 on Kalshi. You collect $70 from the short sale and spend $63 on the long, locking in a $7 gross spread up front. If YES resolves, the long pays $100 and the short owes $100. If NO resolves, both legs expire worthless. Gross spread: 7% regardless of outcome.

How Price Discrepancies Form

Polymarket and Kalshi have separate liquidity pools. When new information appears — a tweet, a news article, a data release — one platform typically reprices faster than the other. This creates a window, often lasting seconds to minutes, where both platforms have diverged on the same event.

Regulatory differences also play a role. US-only restrictions prevent some arbitrageurs from trading on Polymarket (which does not serve US users), reducing the pressure that would otherwise close spreads quickly.

Live Arbitrage Data from Musashi

Musashi's /api/markets/arbitrage endpoint polls both platforms every 15–20 seconds and surfaces cross-platform spreads. Each entry includes:

spread_pct

Gross spread in percentage points

polymarket_price

Current YES price on Polymarket

kalshi_price

Current YES price on Kalshi

direction

Which platform has the lower price to buy

liquidity

Available order book depth at posted price

category

Market category for filtering

Automating Arbitrage Detection

JavaScript
const res = await fetch(
  'https://musashi-api.vercel.app/api/markets/arbitrage?minSpread=0.05'
)
const { data } = await res.json()
const { opportunities } = data

for (const arb of opportunities) {
  console.log(`
    Market: ${arb.polymarketMarket.title}
    Spread: ${(arb.spread * 100).toFixed(1)}%
    Direction: ${arb.direction}
    Buy Polymarket YES at: ${arb.polymarketMarket.yesPrice}
    Sell Kalshi YES at: ${arb.kalshiMarket.yesPrice}
  `)
  // Execute both legs via Polymarket + Kalshi APIs
}

Risk and Slippage Considerations

Arbitrage in prediction markets is not risk-free in practice. Key risks:

  • Leg execution risk

    The spread may close before both legs fill. Execute the larger leg first (worse liquidity) to reduce exposure.

  • Liquidity limits

    Many spreads are only available at small sizes. The posted price may not fill at scale.

  • Withdrawal delays

    Kalshi withdrawals can take 1–3 business days. Capital is locked during resolution.

  • Market resolution risk

    Very rare, but markets can resolve differently than expected (e.g., a disputed outcome).

Start Detecting Arbitrage

The Musashi arbitrage endpoint is free and requires no authentication. Browse live spread data by market below.

Frequently Asked Questions

Is Polymarket vs Kalshi arbitrage profitable?

It can be, but execution risk is the primary constraint. Spreads above 5% on liquid markets are realistically tradeable. Below that, slippage, position limits, and withdrawal delays reduce or eliminate the edge. Use Musashi's arbitrage endpoint to surface only spreads above your minimum threshold.

How often do Polymarket–Kalshi spreads appear?

According to Musashi data, significant spreads (≥3%) appear on 15–30 markets at any given time, concentrated in crypto, politics, and economics categories. The number increases during high-news periods when market makers reprice slowly across platforms.

What is the minimum spread worth trading?

For manual trading, a spread of 5–7%+ is typically required to justify the effort and execution risk. For automated bots with fast execution, 3–4% spreads on liquid markets can be worth pursuing — but model slippage conservatively.

Can I automate Polymarket vs Kalshi arbitrage?

Yes. Musashi's /api/markets/arbitrage endpoint returns cross-platform spreads in real time. Pair it with the Polymarket CLOB API and Kalshi API to execute both legs automatically. The main risk is leg execution timing — ensure both legs fill within seconds of each other.

Why do price discrepancies form between Polymarket and Kalshi?

Both platforms have separate liquidity pools, market makers, and order books. News or sentiment can cause one platform to update prices before the other does, creating a temporary window. Regulatory restrictions also prevent some users from trading on one platform but not the other, limiting arbitrage pressure.