CrossOdds

Kalshi–Polymarket gaps matched by embeddings, scored by an LLM, $20 a month with API.

Last updated

US persons
Yes
Taker fee
None
Settlement
Cash, Crypto
Liquidity
CLOB

What it is

A web dashboard and a one-endpoint REST API over Kalshi and Polymarket, selling three different outputs under one subscription:

  • Arbitrage pairs — the same question matched across the two venues, with the gross spread, a spread after estimated fees, both venues' best bid and ask on each side, which leg to buy where, and when the gap was first detected.
  • Whale trades — any Polymarket trade over 5,000 USD and any Kalshi trade over 5,000 USD notional, with Polymarket trades cross-referenced against the venue's all-time top-50 leaderboard.
  • Weather edges — Kalshi and Polymarket temperature, rain, snow and wind markets set against an 82-member ensemble forecast from the Open-Meteo Ensemble API, flagged when the two differ by more than 5 percentage points.

The matching is the part worth describing, because it is published. Embedding models pair questions across the two venues by semantic similarity, and a language model then verifies each pair and returns a qualityScore from 0 to 100 and a warnings list of caveats. The API returns both venues' question text separately, and an arbType of yes/no, no/yes, yes/yes or no/no — the last two covering pairs where one venue phrases the question as the negation of the other.

The operator is not named. The terms and privacy policy call it CrossOdds, support is a Gmail address, and the privacy policy names Google sign-in, Stripe, Supabase on AWS and Vercel as the services behind it.

Availability

A Google account and nothing else. The terms require you to be 18 or older and to sign in with Google; they name no restricted country, no governing law and no identity check. Pro is billed through Stripe.

The service reads venues; whether you may trade on them is each venue's question. Polymarket's international exchange does not serve US persons, and the API returns token ids for that order book rather than for Polymarket US, which is a separate exchange with its own book. A US reader shown a Polymarket leg may simply not be able to place it.

The API is live and gated: an unauthenticated request to the documented endpoint answered 401 with "Missing or malformed Authorization header" on 30 September 2026. The home page's public statistics call the same day returned one active arbitrage opportunity, 600 whale alerts, no weather edges and a count of 1,601,369 markets scanned.

Read from the vendor's terms and privacy policy, both last updated 10 March 2026, and its pricing and API pages, on 30 September 2026.

Pricing

  • Free — 0 USD. Five opportunities a day, arbitrage and whale trades, described on the pricing page as "moderate-ROI selections". Google sign-in, no card.
  • Pro — 20 USD a month. Every opportunity including what the page calls the highest-ROI ones, whale alerts on top-50 Polymarket traders, the weather screen, and full REST API access on up to ten keys at 60 requests a minute. The page says 20 to 50 live opportunities is typical.

Cancellation takes effect at the end of the billing period, and partial periods are not refunded. No annual price is published.

Against the other scanners in this catalogue that is the cheapest route to an API: 20 USD a month here, 299 on ArbBets. What it does not buy is order-book depth — the API returns top of book only, so the size a gap holds for is not in the response.

CrossOdds charges no trading fee because it places no order; the fee fields are null for that reason.

Markets & resolution

Whatever Kalshi and Polymarket list that the matcher can pair. The examples on the site and in the feed run from Fed decisions, recession and measles counts to esports and city temperature brackets. CrossOdds resolves and settles nothing.

A high confidence score is not a statement that two contracts settle alike. On 30 September 2026 the one free daily pair the home page served matched Kalshi's "Will there be more than 10000 measles cases in 2026?" with Polymarket's "Will there be at least 5000 measles cases in the U.S. in 2026?", as a yes/no pair — buy Yes on Kalshi at 8 cents, No on Polymarket at 13 — with a qualityScore of 93.9 and a net spread of 77.87%. Those are two thresholds. A count between 5,000 and 10,000 resolves No on the first and Yes on the second, and the pair loses on both legs. Read that way, most of the 77-point spread is the two markets together pricing that range, not a mispricing between them.

That is the general failure of the category, not something peculiar to this product, and CrossOdds is ahead of most in returning both question texts and a caveat list so a reader can catch it. But the check the score stands in for — the two settlement sources, the two thresholds, the two close times — is still yours. Why the same contract costs two prices is the list to work through.

Integrations

One endpoint, GET /api/v1/opportunities, with a Bearer key prefixed xo_live_. A type parameter selects arbitrage, whales, weather or all; arbitrage rows filter on minimum and maximum spread, minimum confidence score and pair type, and sort by spread, score or detection time; whale rows filter on venue, side, minimum size, a 1, 6 or 12-hour window and leaderboard traders only; weather rows filter on minimum edge, venue, metric and direction. Up to 500 rows a call.

The documentation carries curl, Python (with httpx) and JavaScript examples and no SDK. Each arbitrage row includes the Kalshi ticker, the Polymarket condition id and the Polymarket CLOB token ids, which is enough to hand to the Polymarket CLOB API and the Kalshi API from code of your own. There is no WebSocket and no MCP server.

There is no push channel either. What the pricing page calls whale alerts are rows in the dashboard and the API; on 1 October 2026 no page on the site, the terms or the privacy policy described an email, Telegram or browser notification, so the alerts flag above is off. A ping when a gap opens is a loop you write against the endpoint.

Limitations

The fee in the net spread is an estimate the vendor does not show. Rows carry netSpreadPct, described as the spread "after estimated fees", with no published formula for either venue. Kalshi and Polymarket both charge a coefficient times price times one minus price, on different coefficients by category; what a trade actually costs is the conversion to check it against.

The risks that remain are not in the number. The site's own explainer calls the gap a profit you keep whatever happens. What the row does not price is resolution wording that differs between the two venues, capital committed on both until each resolves, depth beyond the best quote, withdrawal costs and timing on each side, and whether one person may hold both legs.

Two of the three products are directional. Whale alerts are presented as a "directional signal" of what "smart money" thinks, and weather edges carry a buy_yes or buy_no direction from a public forecast ensemble. Both are claims about an outcome rather than about a price gap — what wallet tracking shows covers the first. The weather page itself says the edges are statistical and models can be wrong.

The marketing quotes returns. The home page carries two testimonials citing 15% and 20% monthly returns and one of committing "up to 40% of my bankroll". They are unverifiable, and the product's own terms say past spreads say nothing about future results.

Two venues. Opinion, Limitless, PredictIt and the sportsbook side of anything are absent. The weather screen parses each market's rules with a language model to find the station, which is the right place to look and a place a parser can be wrong.

Alternatives

ArbBets adds Opinion and Novig and walks full book depth, from 149 USD a month for the scanner and 299 for its API, and publishes no matching method. ArbiTrack adds PredictIt, sells day and week passes paid in stablecoins and needs no account. Oddpool covers the same two venues with a larger data API and history, and its paid plans are closed to new subscribers. To do the matching yourself, matching a question across venues is the procedure and PMXT is one client over several venues.

Specs

Interfaces
API
Export
JSON
Available in
Global
KYC required
No
Market subjects
Politics, Sports, Macro, Science
Resolved by
Resolves nothing
Maker fee
None
Platforms
Web
AI features
Assistive
Capabilities
Screening, Cross venue
Pricing verified
Availability verified
Capabilities verified
Markets verified

Background

How this part of the sector works, rather than which product to pick.

Also worth comparing

  • ArbBets — Cross-venue price gaps from $149 a month; the $59 plan covers sportsbooks only.
  • ArbiTrack — Polymarket and PredictIt in one table, sold by the day; Kalshi was empty when checked.
  • Artemis prediction-market metrics — Daily volume, open interest and fees across thirteen event venues, with methodology.
  • Lychee — No-code queries, charts and backtests over Kalshi and Polymarket history.
  • PolyArbitrage — Chrome side panel that prices the Polymarket event you are viewing against Kalshi.
  • Prediction Market Analysis — Open-source Kalshi and Polymarket dataset, indexers and analysis scripts.

FAQ

How does CrossOdds match the same question on Kalshi and Polymarket?

Embedding models pair questions by semantic similarity, and a language model then verifies each pair, attaching a 0 to 100 confidence score and a list of caveats. Both fields are in the API response. The Kalshi and the Polymarket question text are returned separately, so you can read the two titles side by side.

Does CrossOdds place trades?

No. Its terms, last updated 10 March 2026, say it is an informational tool, does not execute trades on your behalf and that all trading decisions are yours. The API returns Polymarket CLOB token ids so that code of your own can place the order.

What does the free CrossOdds tier include?

Five selected opportunities a day, arbitrage pairs and large trades, which the pricing page describes as moderate-ROI selections. Pro, at 20 USD a month, shows every opportunity, adds the weather screen and whale alerts, and includes the API.

How often does CrossOdds refresh?

Its arbitrage guide says the spreads and whale trades are updated every few minutes; the whale page says every 5 minutes; the weather screen compares forecasts against prices four times a day. No figure for the arbitrage scan itself is published beyond that.

Can a pair CrossOdds shows lose money on both legs?

Yes, if the two contracts are not the same contract. On 30 September 2026 its free daily pair matched a Kalshi market on more than 10,000 measles cases in 2026 with a Polymarket market on at least 5,000 US cases, at a confidence score of 93.9. A count between those two thresholds would lose both sides of that pair.