Static IP for Zerodha Kite Connect
Since 1 April 2026, Zerodha accepts Kite Connect orders only from an IP address you have added to your developer account. You need one fixed public IP that only you use, registered under IP Whitelist in the Kite developer console, with your order calls sent through it. Zerodha accepts both IPv4 and IPv6, so a dedicated IPv6 works.
What Zerodha checks
From Zerodha's support pages on static IPs and the Kite Connect FAQs:
- Only order placement is checked. The order book, positions and the WebSocket market data stream can still be called from any IP.
- Two addresses. One primary IP and one optional secondary IP.
- Account-wide. The list applies to your whole developer account and every app under it. You can't set a different IP per app.
- One change a week. You can change the list once per calendar week, and the change takes effect straight away.
- IPv4 and IPv6. Both are supported. If your traffic leaves over IPv6 but you registered only an IPv4 address, the orders are rejected.
- Don't share it. Zerodha warns that sharing an IP outside your immediate family can lead to suspension of the Kite Connect account.
IPv4 or IPv6 for Zerodha
IPv6 works for orders. Zerodha's docs say both are supported, and the order API host api.kite.trade has an IPv6 address. A dedicated IPv6 is ₹50 a month at TrueIP, against ₹200 for IPv4.
One thing to know: the ticker host ws.kite.trade has no IPv6 address, so KiteTicker can't run through an IPv6-only exit. You don't need it to. Zerodha doesn't check the IP on the market data stream, so run the ticker on your normal connection and send only the order calls through the fixed IP. You can check both hosts yourself:
dig +short api.kite.trade AAAA # returns an IPv6 address
dig +short ws.kite.trade AAAA # no IPv6 address
How to register your IP with Zerodha
- Get your fixed IP's proxy details: host, port, username and password.
- Check the exact exit address:
curl -x http://USER:PASS@HOST:PORT https://ifconfig.co - Log in to the Kite Connect developer console, open Profile, enter the address under IP Whitelist and click Update. Check it twice before saving, because of the weekly change limit.
Zerodha may move these menus. If you don't see IP Whitelist under Profile, check the console's current help page.
Send Kite Connect orders through the fixed IP
The Python client kiteconnect takes a proxies argument and passes it to requests, so it is a one-line change:
import os
from kiteconnect import KiteConnect
PROXY = os.environ["PROXY_URL"] # http://USER:PASS@HOST:PORT
kite = KiteConnect(
api_key=os.environ["KITE_API_KEY"],
proxies={"http": PROXY, "https": PROXY}, # kite calls leave from the fixed IP
)
kite.set_access_token(os.environ["KITE_ACCESS_TOKEN"])
print(kite.profile()["user_id"])
Every call on kite, including place_order, now leaves from the fixed IP. If your password has symbols like @ or :, URL-encode them in PROXY_URL. The full Kite Connect proxy guide on GitHub also covers the login exchange, environment variables and a sample order.
Common Kite Connect errors
- Profile works but orders are rejected. This is the usual IP mismatch, because only orders are checked. Print the exit IP from inside your bot and compare it with the console, including IPv4 against IPv6.
- 403 with TokenException. Kite's docs say this means the session expired or was invalidated. Access tokens expire at 6 AM the next day. It's a login problem, not an IP problem.
- 407 Proxy Authentication Required. The proxy rejected your username or password.
- Can't save the IP. You may have used this week's change already.
For a step-by-step check of IP errors, see how to fix "IP not whitelisted" errors.
Zerodha static IP: FAQs
Does Zerodha accept IPv6 for Kite Connect?
Yes. Zerodha's static IP page says both IPv4 and IPv6 are supported. Register the IPv6 address your orders actually leave from, because orders sent over IPv6 are rejected if only an IPv4 address is whitelisted.
How many IPs can I add on Zerodha?
One primary and one optional secondary IP, for the whole developer account. You can change them once per calendar week.
Do I need the static IP for market data?
No. Zerodha checks the IP only on order placement. Market data, the order book and positions can come from any IP, which is why KiteTicker can stay on your normal connection.
Which TrueIP plan should I take for Zerodha?
A dedicated IPv6 at ₹50 a month plus GST is enough for Kite Connect orders. Take IPv4 at ₹200 a month only if you also trade through an IPv4-only broker such as Angel One and want one address for both.
Sources
- Zerodha support: static IP for Kite Connect
- Zerodha support: Kite Connect API FAQs
- Kite Connect docs: exceptions
- pykiteconnect documentation
Get your dedicated static IP
IPv6 ₹50 a month, IPv4 ₹200 a month, plus GST. Live in minutes, whitelisted once.