A Comprehensive Overview of NSE’s New Retail Algo Trading Framework

@KD61 even with the calendar second method we still have the same issue that order may take longer to reach the broker or exchange (long enough that some orders spill over to the next calendar second).

Then if you shoot an order at 09:15:01.98, you won’t be sure how many orders you are allowed in the next calendar second 09:15:02 - 9 or 10 orders.

My point is if the order in the next calendar second 09:15:02 fails due to rate limiting error - when do you retry?
With rolling 1000ms method, you can retry immediately and likely get the order placed.
With the next calendar second method, you have to wait till 09:15:03 to try placing the failed order again.

Edit: you do raise a fair point that tracking orders may have some overhead - but I’m assuming you would (should) anyway be tracking orders even today to confirm that order was filled or not.

Edit 2: if we go with the calendar second system, broker/exchange systems will have variable loads with everyone shooting orders in the first 500ms of a calendar second just for safety - and actual transmission time to exchange and execution time for individual orders will become slower.

Do you need static IP for only order API or Websocket as well which is notification system only.

Rate limits will be applied on a calendar-second basis, based on our server time.

Look, not much changes for you since we’ve had a 10 orders per second limit for quite a while now.

We will soon start allowing you to enter your static IP on the Kite Connect developer console.

No, for the orders endpoint only.

1 Like

What exactly happens if say we exceed and send 11 orders ? Is there an error sent back ? Would you delay it on your side ? Drop it silently ?

Also, can you list out exactly which api end points are affected. Order create and modify ofc, but cancel too ? Reading orderbook ?

Right now i club them all together and i actually have a limit of 20 which seems to work. So i must have sent more than 10 (rarely), but don’t remember having any error.

Hopefully Zerodha can do this in time, other brokers (ICICI/Finvasia) seem to be going ahead and have sent emails.

We’ll return a 429 response on the 11th order.

Order place, modify, and cancel.

I just created a post on the Kite Connect forum explaining our position:

3 Likes

@Matti

Why is order cancellation also falling under 10 OPS limit? NSE/SEBI only mentioned limits on placing orders. Cancelling an order shouldn’t fall under those limits, should it?

Are we 100% sure about it? That cancel will also fall under this limit?

That’s a big shock for me. Earlier @siva informed us, cancel won’t fall under this.

My bad then, also I don’t remember where I said it, can you give me the link so I can correct it there?

Just to confirm, 20 legs of a single Iceberg order would still be considered as one order, correct?

The main issue with the current Iceberg functionality is that it sends the next leg only after the previous one is executed, which delays queueing in the order book.

Would it be possible for you to release a version of Iceberg that submits all legs at once?

@Matti

Can use order slice for that.

@siva I think,

1.) it only works for F&O orders not for Equity

2.) No API available for it, as far as I know

Am I correct? Can you guys please fix these two things? @siva

Also will I get 10 OPS limit per segment?

I mean, Can I place 10 orders of Equity and 10 orders of F&O in 1 second? So 20 orders per second in this way? @Matti @siva

This will take some time to change. This fundamentally changes the order type and will need some time

To start with, no, we’ll have a global ratelimit of 10 orders per second. We’ll make changes to make it per segment in the future.

No update from NSE yet on if they will delay or no.

Anyway, If NSE does not delay, will you guys implement the static IP thing by 1st aug? Or not? Any idea?

2 Likes

Implementation of Algo circular is pushed to Oct 1st 2025.

1753786452703.pdf (290.2 KB)

@KamalChhirang @SpacemanSpiff

2 Likes

I’m really relieved to hear this. I’d like to get my algorithm registered as soon as possible to bypass the 10 OPS limit and have some peace of mind.

Please let me know what steps I need to take. I’m ready to get started right away. Thank you, @siva and @Matti

Also, if possible.

Please implement order slicing for Equity with API support before this deadline. So we can reduce the OPS considerably. Just a request. Thank you Kite team :smile:

1 Like

In coming days we will post a detailed post on our policy of handling this, please wait till then.

I’d also like to request one additional feature.

Currently, Zerodha allows auto-cancellation of orders after a fixed duration ranging from 1 minute to 120 minutes.

Would it be possible to allow auto-cancel timing to be set in seconds via the API? This would provide greater flexibility and help reduce API request usage. For instance, in my execution strategy, I often prefer to cancel orders after just a few seconds. Since that’s not currently possible, I have to send a separate cancel request, which eats into the 10-requests-per-second (OPS) limit.

@Matti @siva

1 Like

Will check with the team on possibility.

1 Like

@siva @Matti

Static IP Whitelisting Process - Potential Misuse and Suggested Improvements
Current Process Understanding:

  • Users submit their static IP address through the broker’s web portal
  • System checks if the IP is already registered by another user
  • If not registered, the IP gets successfully registered under the submitting user’s name

Identified Issue:
The current implementation has a significant vulnerability where:

  • Intentional Misuse: Someone can deliberately register my IP address before I attempt to register
  • Accidental Entry: Users may mistakenly enter incorrect IP addresses, blocking legitimate owners
  • Dynamic IP Reassignment: If an IP was previously registered by another user and later assigned to me by my ISP, I cannot register despite being the legitimate current owner

Real-world Impact:

  • Legitimate users are blocked from registering their own IP addresses
  • No verification mechanism to confirm actual ownership/usage of the IP
  • Potential for malicious blocking of competitors or other users

Suggested Solutions:

1. IP Ownership Verification Process
Require users to access the registration portal FROM the IP address they wish to register
Only allow registration when the request originates from the claimed IP address

2. API Call Verification
Allow IP registration through web portal but mark as “Pending Verification”
Require at least one successful API call from the registered IP within 24-48 hours to confirm registration
Auto-expire unverified registrations after the timeout period

3. Active Usage Validation
Implement periodic validation (monthly/quarterly) requiring API activity from registered IPs
Auto-deregister IPs with no trading activity for extended periods
Send advance notifications before deregistration

4. Dispute Resolution Mechanism
Provide a process for users to claim ownership of their legitimate IP addresses
Require documentation (ISP letters, network configuration proofs) for disputed IPs
Allow override of existing registrations with proper verification

5. Enhanced Registration Flow
Step 1: User submits IP via web portal (from any location)
Step 2: System generates unique verification token
Step 3: User must access verification URL from the claimed IP address
Step 4: System confirms IP ownership and completes registration

Questions for Clarification:

  1. Is there any current mechanism to handle IP address disputes?
  2. Can you implement real-time IP verification during the registration process?
  3. Is there a possibility to add IP ownership validation through API calls?

Request:
Please consider implementing enhanced IP validation mechanisms to prevent misuse while ensuring legitimate users can register their IP addresses without unnecessary obstacles. Looking forward to your response and potential improvements to this critical security process.

4 Likes