Kalshi Prediction Markets Scraper
Pricing
$8.00 / 1,000 market scrapeds
Kalshi Prediction Markets Scraper
Extract Kalshi prediction market data: question, category, yes/no prices, implied probability, volume, open interest, expiration and status. Filter by category or ticker. Clean JSON, one row per market. Failed runs are not billed.
Pricing
$8.00 / 1,000 market scrapeds
Rating
0.0
(0)
Developer
Antony Zaikin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
Kalshi Markets Actor
Apify actor that scrapes prediction market data from the public Kalshi REST API (api.elections.kalshi.com).
Works in two modes:
- Mode A – filter by category (or all categories) with pagination.
- Mode B – fetch specific market tickers.
The actor outputs normalized market records and charges market-scraped events for pay‑per‑event billing.
Input
| Field | Type | Description |
|---|---|---|
| category | select | Kalshi category (empty = all categories). Ignored if ticker is set. |
| ticker | text | Comma/space/newline separated list of market tickers. If set, enables Mode B. |
| status | select | Market status for Mode A: open, closed, settled. Default open. |
| maxItems | number | Maximum number of market records to return. Default 100. |
| proxyConfiguration | object | Optional proxy configuration to override the default Apify Proxy settings. |
Output
Each pushed record follows the schema defined in output_schema.json and includes fields such as ticker, title, yesBidDollars, volume, etc., plus a scrapedAt timestamp.
Proxy
The actor automatically uses Apify Proxy (RESIDENTIAL group) unless overridden via proxyConfiguration in the input.
Notes
- No headless browser or HTML parsing is used.
- The actor respects rate limits via retries with exponential backoff.
- Empty responses are treated as legitimate results, not as blocking.
- Blocking (HTTP 403/429 or non‑JSON responses) triggers up to 3 retries; after that the actor fails with an error.
Built with Apify SDK v3, Node.js 20 (ESM).