Prediction Markets Odds API - Kalshi + Polymarket in one schema avatar

Prediction Markets Odds API - Kalshi + Polymarket in one schema

Pricing

from $1.40 / 1,000 market rows

Go to Apify Store
Prediction Markets Odds API - Kalshi + Polymarket in one schema

Prediction Markets Odds API - Kalshi + Polymarket in one schema

Prediction markets API for Kalshi and Polymarket in one schema: live implied probability, bid/ask, spread, 24h change, volume, open interest and rules. Filter by keyword, category and volume. No login or API key, ~$2 per 1,000 rows.

Pricing

from $1.40 / 1,000 market rows

Rating

0.0

(0)

Developer

Clean Data Labs

Clean Data Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Prediction Markets API: Kalshi and Polymarket Odds in One Normalized Feed

Get live prediction market odds from Kalshi and Polymarket as one clean JSON, CSV or Excel table: implied probability (0-1), bid/ask, spread, 24h change, volume, open interest, liquidity and resolution rules. Same field names for both venues, so you can compare Fed, election, sports and crypto odds side by side. No login, no API keys, no proxies, about $2 per 1,000 rows with no start fee.

Built and maintained by Clean Data Labs.

Ready-made examples (one click to run)

ExampleWhat it returns
Fed rate decision odds: Kalshi vs PolymarketFed/FOMC rate markets on both venues
Election and politics odds from Kalshi and PolymarketPolitics and election markets with volume
Sports odds from Kalshi and Polymarket, most tradedMost traded sports markets
Bitcoin and crypto price odds from prediction marketsBitcoin and Ethereum price-target markets
Inflation and CPI odds on KalshiKalshi CPI and inflation strikes

Who it's for

  • Traders and quants who want a single feed of Kalshi and Polymarket prices to compare venues side by side.
  • Researchers, journalists and newsletter writers covering elections, the Fed, sports and crypto odds.
  • Data and BI teams building dashboards or forecasting models that need clean, scheduled odds snapshots.
  • AI agents and automations that need prediction-market probabilities as structured JSON.
  • Spot price gaps when the same event (for example, a Fed rate decision) is listed on both venues.
  • Schedule a run every few minutes or hours to build your own odds history.
  • Track the most actively traded markets in a category such as Economics, Politics, Sports or Crypto.
  • Feed implied probabilities into a model, spreadsheet, Slack alert or Google Sheet.

Features

  • Two venues, one schema. Kalshi and Polymarket rows use the same field names, and prices are expressed as 0–1 probabilities.
  • Official public APIs only. No login, no API keys and no proxies needed.
  • Keyword filter. Keep only markets whose question, outcome or event title mentions your terms (for example fed, election).
  • Category filter. Matches Kalshi categories and Polymarket tags (Politics, Economics, Sports, Crypto and more).
  • Volume filter. Skip thin markets with minVolume24h.
  • Less noise. Kalshi's auto-generated multi-leg combo markets are excluded by default (excludeParlays).
  • Most active first. Both venues are scanned from the highest recent volume down.
  • Resolution rules included, so you know exactly what each contract pays out on.

Input example

{
"venues": ["kalshi", "polymarket"],
"searchTerms": ["fed", "rate", "inflation", "cpi"],
"minVolume24h": 100,
"maxResults": 40
}
InputWhat it does
venueskalshi, polymarket, or both (default both)
searchTermsKeep markets that mention any of these words (case-insensitive)
categoriesKalshi categories / Polymarket tags, e.g. Economics, Sports
minVolume24hMinimum 24h volume (contracts on Kalshi, USD on Polymarket)
maxResultsMaximum rows to return; you are charged per row (default 200)
excludeParlaysSkip Kalshi multi-leg combo markets (default true)
maxPagesPerVenueSafety cap on pages scanned per venue (default 15)

Output fields

FieldDescription
venuekalshi or polymarket
market_id / event_idVenue identifiers for the market and its parent event
event_titleParent event, e.g. "Fed decision in Dec 2026?"
question / outcomeThe tradable question and the outcome this row prices
category / tagsVenue category and tags
yes_priceMid of the Yes bid and ask, 0–1
yes_bid / yes_ask / spreadTop-of-book quotes and their spread
last_price / price_change_24hLast traded price and 24h change
volume_24h / volume_total / volume_unitTrading volume (contracts on Kalshi, usd on Polymarket)
open_interestOpen interest (Kalshi)
liquidityLiquidity (Polymarket)
close_timeWhen the market closes (UTC)
rulesResolution rules text
urlLink to the market on the venue
scraped_atSnapshot timestamp (UTC)

Sample output

Real rows from a test run on October 31, 2026 (rules text shortened for display).

{
"venue": "kalshi",
"market_id": "KXNCAAFGAME-26OCT31TXSTBSU-BSU",
"event_id": "KXNCAAFGAME-26OCT31TXSTBSU",
"event_title": "Texas St. vs Boise St.",
"question": "Boise St. wins",
"outcome": "Boise St.",
"category": "Sports",
"tags": ["Sports"],
"yes_price": 0.585,
"yes_bid": 0.58,
"yes_ask": 0.59,
"spread": 0.01,
"last_price": 0.59,
"price_change_24h": -0.2,
"volume_24h": 4925662.32,
"volume_total": 5763915.43,
"volume_unit": "contracts",
"open_interest": 2643446.01,
"liquidity": null,
"close_time": "2026-11-03T02:00:00Z",
"rules": "If Boise St. wins the Texas St. vs Boise St. college football game originally scheduled for Oct 31, 2026, then the market resolves to Yes.",
"url": "https://kalshi.com/markets/kxncaafgame",
"scraped_at": "2026-11-01T05:58:17.161517+00:00"
}
{
"venue": "polymarket",
"market_id": "0xb9aee520bf51ac5f00b5c43e54ef9245bc9fcdef866ce8a33025f9a441cc651d",
"event_id": "fed-decision-in-december-20260729232808632",
"event_title": "Fed Decision in December?",
"question": "Will the Fed decrease interest rates by 50+ bps after the December 2026 meeting?",
"outcome": "50+ bps decrease",
"category": "Fed",
"tags": ["Fed", "fomc", "Trump", "Economy", "Fed Rates", "Kevin Warsh", "Global Rates", "Economic Policy", "Macro Indicators", "Recurring"],
"yes_price": 0.0035,
"yes_bid": 0.003,
"yes_ask": 0.004,
"spread": 0.001,
"last_price": 0.004,
"price_change_24h": -0.0005,
"volume_24h": 12702.31,
"volume_total": 1849150.813975,
"volume_unit": "usd",
"open_interest": null,
"liquidity": 180398.82363,
"close_time": "2026-12-09T23:59:00Z",
"rules": "The FED interest rates are defined in this market by the upper bound of the target federal funds range. …",
"url": "https://polymarket.com/event/fed-decision-in-december-20260729232808632",
"scraped_at": "2026-11-01T05:58:27.092435+00:00"
}

A RUN_SUMMARY record in the run's key-value store gives per-venue row counts.

Pricing

Pay per result: you pay only for the market rows saved to your dataset, with no start fee.

Apify planPrice per market rowPer 1,000 rows
Free$0.002$2.00
Bronze$0.0018$1.80
Silver$0.0016$1.60
Gold and above$0.0014$1.40

Free credit

Apify's free plan includes $5 of usage credit every month, no credit card required. At the Free-tier price that covers up to about 2,500 market rows a month. Use maxResults to cap what any single run can cost.

FAQ and troubleshooting

Why did my run return fewer rows than maxResults?

Your filters may be narrow. Loosen searchTerms, categories or minVolume24h, or raise maxPagesPerVenue so more pages are scanned. maxResults is split across the venues you select.

Why is open_interest empty for Polymarket and liquidity empty for Kalshi?

Each venue publishes a different depth metric. The field is null when the venue does not provide it.

Are Kalshi and Polymarket volumes comparable?

Not directly. Kalshi reports volume in contracts and Polymarket in USD; check volume_unit on each row.

Do I need an account or API key for Kalshi or Polymarket?

No. The actor uses their official public market-data APIs.

Is this a Kalshi API or Polymarket API alternative?

It wraps both official public APIs and returns one normalized schema, so you do not have to handle two sets of endpoints, pagination, price formats and field names. If you only need one venue and want raw data, the official APIs are free and a good choice.

Can I build an odds history or alerts?

Yes. Schedule the actor (or one of the examples above) in Apify Console every few minutes or hours; each row has scraped_at. Connect Google Sheets, Slack, Zapier, Make or n8n on the Integrations tab.

Is this financial advice?

No. Prices are snapshots taken at scraped_at and can change quickly.

More from Clean Data Labs

Support

Questions, bugs or feature requests? Email clean-data-labs@mail.grokbot.com or open an issue on the actor's Issues tab.

Clean Data Labs: clean, structured public data, ready to use.