CrossOdds
Kalshi–Polymarket gaps matched by embeddings, scored by an LLM, $20 a month with API.
Last updated
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.
- What a trade actually costs on a prediction market — Venues publish trading fees in four incompatible units, so 3.00% on one can be cheaper than 1.75% on another. How to convert them, and what else takes a cut.
- Where a dashboard gets its data, and what it loses when that moves — A venue API, an indexer or the chain itself. Which one a dashboard reads decides how far back its history goes and what vanishes when that source changes.
- Why two dashboards show different volume for the same market — Volume is several quantities under one name - contracts or dollars, one side or both, swaps or also mints and merges, and whose day. How to tell which.
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.