Rate Limits on using Kite.orders()

genesis
genesis edited September 2021 in Python client
I am using the following code to get order status , but i got a message that my requests to send orders has exceeded more than 2000 orders , but i didnot send 2000 orders , is this problem because of the below code where in , i am polling kite.orders again and again to get order status.

if so , is there some code to get the number of requests for orders i have send till now for a particular account ?

what is the best way to poll order status ?

also , is there a way to know if i have hit the Zerodha RMS Limit of 3000 orders ?

The code to get all orders :

x = kite.orders()

function to get status of orders :

def get_status_2(oid):

for order in x:

if order['order_id'] == oid:

return order['status']

using it in code to get status :smile:

for i in range(0,5):

print(i)

try:

x = kite.orders()

orderx1ceslstatus = get_status_2(oidcex1)
orderx2peslstatus = get_status_2(oidcex2)
orderx3ceslstatus = get_status_2(oidcex3)
orderx4ceslstatus = get_status_2(oidcex4)

print(orderx1ceslstatus)
print(orderx2ceslstatus)
print(orderx3ceslstatus)
print(orderx4ceslstatus)


except:

print("not able to get status of all ce sl orders " )

else:

break
  • tahseen
    @genesis
    Ofcourse you are polling in a loop non-stop. Have you tested in a single second how many times you are polling ? do a test printing with time
  • sujith
    @genesis,
    You can use postbacks or order updates on websocket API as an event to fetch orderbook and not poll.

    We don't have any API to check the number of order requests a user has made in a day.
    If you are blocked then you have exceeded the limit. Orders that are rejected by our mini RMS won't show up in the orderbook. But it is still counted as 1.
Sign In or Register to comment.