Kalshi is the regulated US prediction market — election odds, Fed decisions, economic prints, even weather markets. Its public API exists but is rate-limited and awkward for bulk history. This tutorial shows the Apify-actor pipeline: markets, order books, and cross-platform arbitrage with Polymarket.
🤖 Try it live — chat with a Poe bot that generates the exact pipeline for your use case: Lead List Generator · Job Postings Miner · Amazon Product Miner · SERP Rank Tracker · Social Lead Finder
The stack
- Apify — Kalshi actors for markets, odds, volume, profiles. Free monthly credits included.
- Python — 20 lines to a live odds feed.
Step 1 — Get your API token
- Create an Apify account (free credits included)
- Console → Settings → Integrations → copy your API token
export APIFY_TOKEN=your_token
Step 2 — Pull market data
curl -X POST "https://api.apify.com/v2/acts/scrapemint~kalshi-prediction-market-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"category": "economics", "maxItems": 100}'
Fields per market: ticker, title, yesPrice, noPrice, volume, openInterest, closeTime, url.
Step 3 — Build an odds feed
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("scrapemint/kalshi-prediction-market-scraper").call(run_input={
"category": "economics", "maxItems": 200
})
for m in client.dataset(run["defaultDatasetId"]).iterate_items():
yes = m.get("yesPrice") or 0
print(f"{m.get('title', '')[:65]:65s} YES={yes:>4.2f} vol={m.get('volume', 0)}")
Schedule it in Apify Console → snapshots → price-movement alerts.
The arbitrage angle
Kalshi and Polymarket price the same events — differently. congism/polymarket-kalshi-arb-finder (835 users) does the cross-platform matching and flags YES+NO < $1.00 pairs. Both are regulated/legit venues, so the spread is real.
Niche gold: weather markets
bigdavidson/kalshi-weather-markets (282 users) pulls temperature/rain odds per city — energy traders, event insurers, and quants pay for this feed. Build it once, sell the dataset.
Useful actors
| Actor | Job |
|---|---|
scrapemint/kalshi-prediction-market-scraper |
Markets + live event odds (115 users) |
congism/polymarket-kalshi-arb-finder |
Kalshi↔Polymarket arbitrage pairs |
bigdavidson/kalshi-weather-markets |
Temperature & rain odds API (282 users) |
pixflor/kalshi-markets-scraper |
Markets, odds, volume, order books |
saswave/kalshi-profile-scraper |
Trader profile data |
Who uses this
- Traders — arb alerts + order-book snapshots before market-moving events
- Quants/researchers — odds history beats polling data for event probability studies
- Data sellers — cleaned odds/volume feeds = a sellable product
Automation
Hourly schedule → diff → alert when a market's YES moves >5¢. A few cents a day on free credits.
More resources
-
apify-skills — Agent Skills so Claude Code / Cursor runs this from a prompt:
npx skills add g4dr/apify-skills - awesome-web-scraping — curated scraping tools and actors
- Related: polymarket-odds-tracker — the Polymarket side of the arb pair
Top comments (0)