Kalshi Scanner alerts guide status ← app

How to get alerts on Kalshi markets

Updated July 2026. Written by the person who builds Kalshi Scanner, so treat the last section as interested — the first two are the honest options and you should read them first.

The short answer

There are three ways to find out that a Kalshi market moved without staring at it:

1. Kalshi's own notifications. The exchange added price-threshold alerts, delivered by push notification and email. Free, zero setup, and the right starting point for most people.

2. Build your own on the public API. Market data needs no account permissions beyond an API key for the WebSocket. Total control, and a weekend of work plus something to babysit.

3. A hosted scanner (this site, among others) — for conditions past a single price line, or delivery somewhere the exchange doesn't send, like a Discord channel.

Which one you want depends entirely on whether "price crossed X" is the only thing you care about. If it is, use option 1.

Option 1: Kalshi's built-in alerts

Set them from the market page in the Kalshi app or website. You pick a contract and a price, and you get a push notification or an email when it trades through that level.

What they cover well: a single price threshold on a market you already have open, at no cost, with nothing to maintain.

Where people run into limits:

— Price is the only condition. There's no "volume just went 5× its normal hour" or "the spread blew out to 6¢", which are often the earlier signals.

— Delivery is push and email. If your trading happens in a Discord server, that's a copy-paste away.

— They're per-market and manual, so a category-wide watch ("anything in Fed policy that moves 10¢") means setting them one at a time.

— Notification reliability is a recurring complaint among power users; several run a backup bot for exactly that reason.

Option 2: build it yourself

Entirely doable, and the public market data is genuinely open. If you go this way, here are the things that cost us time — no reason for them to cost you the same:

Base URL. https://external-api.kalshi.com/trade-api/v2. Market data needs no auth. GET /markets?status=open&limit=1000 with cursor pagination.

Prices are dollar-strings now. Fields arrive as yes_bid_dollars, yes_ask_dollars, last_price_dollars; volume and open interest are fixed-point strings (volume_fp, open_interest_fp). Kalshi migrated away from integer cents, so older blog examples and gists will quietly mislead you.

The WebSocket needs signed headers even for public data. wss://external-api-ws.kalshi.com/trade-api/ws/v2, with an RSA-PSS-SHA256 signature over {timestamp_ms}GET/trade-api/ws/v2. A free API key from your account settings is enough. The ticker channel carries volume and open interest, so you don't need to blend in REST calls.

"Open" markets is a misleading count. There are roughly two million of them, and about 2M are auto-generated multivariate parlay combinations. The genuinely tradeable universe is on the order of 15,000. Filter the combo series out, then drop markets with no quote on either side and zero volume, or your pipeline spends all day on markets nobody trades.

A 0.00 / 1.00 book is not a 50¢ market. Take the mid only when there's a real quote on both sides; otherwise fall back to the last trade. Otherwise every dead market looks like a coin flip and your alerts fire on nothing.

Nested markets lie. GET /events/{ticker}?with_nested_markets=true returns zero markets. Use GET /markets?event_ticker= instead. That one cost an afternoon.

Names live at three levels. Series is the brand, the event holds the display name people recognize ("Spain vs Argentina: Regulation Time Moneyline"), and the market is one outcome row within it. Bare market titles are ambiguous, so build your alert copy from the event title plus the outcome.

Rate limits on the basic tier are around 20 reads/second. Stay well under, and verify current limits yourself before scaling — they change.

Option 3: what this site does

Kalshi Scanner watches the whole exchange over the WebSocket feed and pings you when a rule you set comes true. Four condition types today:

Price crosses a line — YES goes above or below a level you pick, in whole cents.

Price moves fast — a move of N¢ within 10 minutes, an hour, or a day. Catches the drift a threshold misses.

Volume spike — this hour's contracts run some multiple of the market's normal hour.

Spread widens — the book thins past a width you set.

Delivery is email, Discord webhook, or both, and rules can watch a whole category instead of one market. Free tier is three rules; paid tiers lift the cap and shorten the scan interval.

It is alerts only. No trade execution, no account access, public market data. Not affiliated with Kalshi.

Set up a rule →

On reliability

Any alerting tool, this one included, is worth exactly what its uptime is. We publish a 30-day comparison of Kalshi's data feed against our own pipeline, measured independently, including the stretches where we were the thing that broke.

See the uptime record →

Common questions

Does Kalshi have price alerts? Yes — price-threshold alerts by push notification and email, set from the market page. Price levels are the only condition they support.

Can I get Kalshi alerts in Discord? Not from the exchange directly. You either run a bot that posts to a webhook, or use a third-party tool that supports webhook delivery.

Is the Kalshi API free? Market data is public and needs no paid plan. The WebSocket requires a free API key for request signing, even for public market data.

Can I get alerted on volume instead of price? Not through the exchange's own notifications. You'd need the API or a third-party scanner.

How fast are alerts? Ours fire seconds after the tick that triggers them. Anything claiming to beat the exchange's own feed is claiming something impossible.

Something missing here?

If you tried one of these routes and hit something this page doesn't cover, tell me and I'll add it — leave a note, no account needed.