How to automate Kalshi trading: four ways, compared
There are four ways to automate Kalshi trading: write your own program against Kalshi's public API, run an open-source bot from GitHub, connect no-code tools to the API, or describe your strategy to a hosted agent such as Windmill. To trade real money, all four go through an API key you create on your Kalshi account, and every fill is charged under Kalshi's fee schedule. Your own code and the open-source bots need programming and a machine to run on; Windmill runs a strategy written in plain English on a schedule, every 10 minutes at the fastest, free on paper with no card.
This page lays out what automating Kalshi involves, what each route asks of you, and what to check before any of them trades real money. It is written by Windmill, one of the four routes, and says where the others fit better.
What automating Kalshi trading means
Whatever route you take, an automated strategy does the same four things through Kalshi's API: it reads markets, reads the order book, places orders on your account, and lives with the fees and the settlement.
- An API key. You create one in the API Keys section of your Kalshi profile settings. Kalshi gives you a key ID and a private key, and Kalshi's docs say the private key is not stored on its side and cannot be retrieved once the page is closed. Every request that trades or reads your account is signed with that private key: a timestamp, the HTTP method and the path.
- Market data. Series, events, markets and order books are public endpoints that need no API key. Kalshi's live WebSocket updates do need authentication.
- The order book. Kalshi's order book returns bids only, on both sides. In Kalshi's words, a YES bid at a price X is equivalent to a NO ask at $1.00 minus X, so the best YES ask is $1.00 minus the best NO bid. Code that reads the book has to do that arithmetic.
- Fees on every fill. Kalshi charges a transaction fee on the expected earnings of a contract; some markets charge makers too, and canceling a resting order costs nothing. Per Kalshi's fee-rounding doc, every fill produces a trade fee, a rounding fee and possibly a rebate. A strategy that trades often pays the fee often, and the fee calculator shows how much at any price.
- Settlement. When a market's outcome is determined, holders of the winning side receive $1 a contract, and settlement fees are zero for simple yes/no outcomes. Each market settles by the rule Kalshi writes for it, which your strategy has to read: the 15-minute bitcoin market, for example, settles on CF Benchmarks' index, not on an exchange's price.
The four routes, side by side
Read across a row to see what each route asks of you. The open-source column describes the three bots below as their READMEs described them on October 29, 2026; other bots differ.
| Your own code on Kalshi's API | Open-source bots on GitHub | No-code and spreadsheet tools | Windmill | |
|---|---|---|---|---|
| What you write | Everything: request signing, data, the strategy, order handling | Configuration, or your own strategy in their code | The workflow; placing orders still needs a signing step | The strategy, in plain English |
| Where it runs | Your machine or server | Your machine or server | The tool's own scheduler | Hosted by Windmill, on a schedule |
| Risk limits | Whatever you build | Each bot's own, which you read and configure | Whatever you build | Allocation, largest order, markets and more, enforced in code |
| Testing without money | Kalshi's demo environment, or your own simulation | Each has a paper or demo mode | Kalshi's demo environment, through the signing step | Paper on the live order book with Kalshi's fees, the default |
| Fastest reaction | As fast as your code and Kalshi's rate limits allow | Depends on the bot and its settings | Depends on the tool | Every 10 minutes at the fastest |
1. Your own code on Kalshi's API
The most control and the most work. Kalshi publishes official Python and TypeScript SDKs, and says active traders should treat its OpenAPI and AsyncAPI specifications as the source of truth, since the SDKs may lag the API. You write the strategy, the signing, the order handling and your own limits, and you keep a machine running it.
Kalshi runs a demo environment with mock funds for testing code, and its docs say the price and behavior of demo markets may not be reflective of those in real markets. Requests are rate-limited by tier, starting at Basic when you sign up. This is the right route for a strategy that must react within seconds, which none of the others here can.
2. Open-source bots on GitHub
Several open-source Kalshi bots are public on GitHub. You clone one, add your own Kalshi API key, and run it on a computer or server you keep on. Each ships its own strategies and its own risk controls, and two of the three below say plainly in their READMEs that they promise no profit. As their READMEs described them on October 29, 2026:
- ryanfrigo/kalshi-ai-trading-bot. A Python toolkit (Python 3.12 or later, MIT license) with a Kalshi API client, example strategies, a paper mode, a risk governor with daily-loss and drawdown limits, a dashboard and an MCP server. It needs your Kalshi key ID and private key, and an OpenRouter key for its LLM-driven strategy. Its README calls it a toolkit you fork, not a turnkey bot.
- OctagonAI/kalshi-trading-bot-cli. A command-line tool written in TypeScript that runs on Bun (MIT license). It needs a Kalshi API key and private key and an LLM provider key, and its research and edge commands use an Octagon Research API key. It has a paper-trading ledger, a setting for Kalshi's demo environment, and hard caps on order size and daily loss.
- bikigrg11/prediction-market-btc15. A Python bot for Kalshi's 15-minute bitcoin markets (KXBTC15M), deployed on Fly.io with a password-protected dashboard. It needs a Kalshi key ID and private key, runs on paper unless started live, and has its own circuit breaker, account stop and per-market position cap.
Before running any of them with money, read the code that places orders and the limits it enforces: they are the bot's, not Kalshi's.
3. No-code and spreadsheet tools
Kalshi's market data is public, so a spreadsheet or an automation tool that can make web requests can pull prices and order books on its own schedule with no key at all. That is a reasonable way to watch markets or log prices.
Placing orders is where it stops being no-code. Every order request has to carry a signature made with your private key, so a tool that cannot sign requests needs a script step that holds your key and signs for it. At that point you are running code again, and the risk limits are whatever that step checks.
4. Windmill: a strategy in plain English
You describe a strategy to the builder, a chat, in plain English. It asks for what has to come from you, such as how much money the agent manages and the most one order may spend, writes the strategy out in full for the model, and picks a schedule. Nothing runs until you deploy it.
- A schedule, not a stream. An agent runs every 10 minutes at the fastest, or at set times of day. Each run reads the market and the data its strategy names, decides, and stops. What agents can read lists every tool it has.
- Limits enforced in code. Every order passes checks before it reaches the paper book or Kalshi: the agent's allocation, the largest order, the markets it may enter, and any other limits you set. An order that breaks one is refused. The limits, one by one.
- Paper first. Agents trade on paper unless you build them live. Paper orders fill against Kalshi's live order book at the prices and sizes resting there, pay Kalshi's fees and settle when the real market settles. How paper trading works.
- Live with your own key. To trade real money, connect your own Kalshi API key on the dashboard. A live agent trades on your Kalshi account, and your money stays there.
What it is not: fast. If your edge depends on reacting within seconds or minutes, write your own code on Kalshi's API instead. And it does not find an edge for you: when we ran about 90 strategies on paper, none showed an edge that held up.
What to check before going live
Whichever route you take, these are the things that turn a strategy that looks fine into one that loses money.
- The fee after each fill. Kalshi's taker fee is highest at prices near 50¢, and a strategy that buys there often pays it often. Work out what your typical order pays with the fee calculator and make sure your expected edge is larger.
- The 15-minute series' timing. Kalshi's 15-minute markets open a new market every quarter hour. A schedule that does not line up with the windows trades at random points in them, and a run at the moment one window closes may find no open market. The 15-minute bitcoin bot page shows how a Windmill schedule handles this.
- Position caps. Know the most your strategy can hold in one market and in all of them, and make sure something other than the strategy itself enforces it. On Windmill that is the allocation and the largest order; in your own code or an open-source bot, it is whatever the code checks.
- The run budget. On Windmill every run, scheduled or started by hand, counts against your account's run budget over a rolling 24 hours, shared by all your agents. A schedule that fires more often than the budget allows skips runs. The pricing page lists each plan's budget.
Start on paper
The cheapest way to find out whether a strategy holds up is to run it against the real order book, with the real fees, before it touches money. On Windmill that is free: describe the strategy, deploy the agent on paper, and read every run it makes. Connect a Kalshi API key only when you want an agent trading for real.
Questions
- Does Kalshi have a public API?
- Yes. Kalshi publishes its trading API with documentation at docs.kalshi.com. Market data such as series, markets and order books can be read without an API key; placing orders and reading your own account need an API key you create in your Kalshi profile settings, and every such request is signed with its private key.
- Can I automate Kalshi trading without writing code?
- Yes, with a hosted service that places the orders for you. On Windmill you describe the strategy in plain English, the builder turns it into an agent, and the agent trades it on a schedule. The open-source bots on GitHub need you to install and run code yourself, and Kalshi's API needs every order request signed with your private key, which most no-code tools cannot do on their own.
- Can a Windmill agent trade every minute?
- No. An agent runs on a schedule, every 10 minutes at the fastest, and nothing watches the order book between runs. A strategy that has to react within seconds or minutes is a poor fit; for that, your own code on Kalshi's API is the route.
- Do I need a card or a Kalshi account to try it?
- No. Paper trading on Windmill is free, signing up needs no card, and paper agents need no Kalshi account. The pricing page lists how many agent runs a day the free plan includes and what Pro adds.
- What do I need to trade live?
- A Kalshi account and an API key from it, which you connect on the Windmill dashboard. Every plan can trade live, the free one included. A live agent trades on your Kalshi account inside the limits you set, and its orders pay Kalshi's fees as any Kalshi order does.
- Does Kalshi charge fees on automated orders?
- Yes. Orders placed through the API pay Kalshi's trading fees: per Kalshi's fee-rounding doc, each fill of an order produces a trade fee, and some markets also charge makers; Kalshi's help center says there are no fees for canceling a resting order. The fee calculator works out the fee for any price.