Short version: orders are free, prices cost ₹500 a month, and the static IP rule is the one that will catch you.
My bot has run on Kite Connect since it went live in April. This is the checklist I wish I'd had before paying for anything: what it costs, what you get, and the limits you'll hit. For setting up the key itself, see getting your Kite Connect API key and refreshing the token.
Prices and rules change, so check the linked Zerodha pages before you rely on any figure here. This page was last checked in September 2026.
What it costs
| Plan | Price | What you get |
|---|---|---|
| Personal | Free | Place, modify and cancel orders, GTTs and alerts; positions, holdings, funds and margin calculations |
| Connect | ₹500 a month per API key | Everything in Personal, plus live prices over the websocket, quote and LTP calls, and historical candles |
A few things that aren't obvious from the pricing page:
- The price is per API key, not per account. Two apps means two subscriptions if both need data.
- Historical data is included in Connect. There's no separate add-on.
- Normal trading charges still apply. Brokerage, STT, exchange charges, GST and stamp duty are the same as when you trade by hand. The API fee is on top. My algo trading guide has a table of the 2026 STT rates.
- Free on Personal really does mean no prices. Even a simple "what's the current price?" call needs Connect.
The limits you'll actually run into
Orders
| Limit | Value |
|---|---|
| Orders per second | 10 per trading account. Rejected requests count too. |
| More than 10 per second | Needs the strategy registered with the exchange |
| Where orders can come from | Only a whitelisted static IP. Up to two IPs, changeable once a week. |
| Market orders | Must carry market protection through the API, including SL-M orders |
| Auto-slicing large orders | Up to 10 slices per order |
The static IP rule is the one that catches people. Your script can read prices from your laptop all day and then fail the first time it tries to place an order. Family members (spouse, dependent children and dependent parents) can share one IP through separate apps under the same developer account.
Market data
| Limit | Value |
|---|---|
| Websocket | Up to 3,000 instruments per connection, 3 connections per API key |
| Websocket modes | LTP only, quote (no depth), or full (5 levels of market depth) |
| Full quote call | Up to 500 instruments per request, about 1 request per second |
| LTP and OHLC calls | Up to 1,000 instruments per request |
| Historical calls | About 3 requests per second |
The practical takeaway: stream live prices over the websocket and use the quote calls for occasional snapshots. Polling quotes in a loop runs into the 1-per-second limit quickly.
Historical candles
Each historical request can cover only so many days, depending on the candle size:
| Candle size | Days per request |
|---|---|
| 1 minute | 60 |
| 3 to 10 minutes | 100 |
| 15 and 30 minutes | 200 |
| 1 hour | 400 |
| 1 day | 2,000 |
To get more, split the range into several requests. Daily candles for some NSE stocks go back to the late 1990s, and minute candles to around 2015.
The gap that matters most for options traders: expired option contracts aren't available through the historical API, as far as I know. If you want to backtest options, start saving the contracts you care about while they're still trading. Futures have a "continuous" option that stitches expiries together.
Every morning
| Limit | Value |
|---|---|
| Access token | Expires at 6 AM every day |
| Login | A fresh login each trading day, by hand or scripted |
Nothing else costs as much time in the first month. If the morning login fails, the bot can't read prices or place orders until it succeeds, so automate it early, get an alert when it fails, and keep a manual fallback for the day it breaks.
What you don't get
- No sandbox. Every order the API sends is real. Build your own paper mode; there's an example in placing your first order with the Kite Connect API.
- No tick-by-tick history. Historical data is candles. If you want ticks, record them yourself from the websocket.
- No options analytics. Greeks, implied volatility and option chains aren't provided as ready-made data. You calculate them from prices.
- No hosting. You run the code, on a machine that stays awake and has that static IP.
Is the ₹500 worth it?
Worth it if:
- Your code reacts to live prices: stops, targets, breakouts, anything that watches the market.
- You backtest on minute data and want it from the same source you trade on.
- You want one broker for both data and orders, so symbols and timestamps line up.
Probably not needed if:
- Your code only places orders you've already decided on, such as a basket at a fixed price, or GTTs.
- You rebalance a long-term portfolio once a month.
- You already pay for data elsewhere and only need order placement.
For my bot, the data is the main reason I pay. Live prices drive every entry and exit, and historical candles feed every test. At ₹500 a month it costs far less than the time I'd spend stitching together data from somewhere else.
Other brokers now offer free APIs too; there's a comparison table in algo trading in India: the rules, the cost, and what to do first. I'd judge them on how stable the websocket is and how clear the documentation and error messages are, more than on the monthly fee.
Checklist before you pay
- Open a Kite Connect developer account and create an app on the free Personal plan.
- Set up a static IP (a small cloud server is the usual answer) and whitelist it.
- Script the morning login.
- Place and cancel one tiny limit order to prove the setup works.
- Upgrade to Connect only when your code needs prices.
Sources
- Zerodha: Kite Connect API FAQs (plans, pricing, limits)
- Zerodha: static IP for API order placement
- Kite Connect forum: preparing for SEBI's retail algo rules
- Kite Connect docs: WebSocket streaming
- Kite Connect docs: market quotes
- Kite Connect forum: quote and historical rate limits
- Kite Connect forum: historical data limits and retention
This guide describes a broker's API and its pricing, for information only. It is not investment advice or an endorsement of any broker. I am not registered with SEBI as an investment adviser or research analyst.