What are the limits of kite API

I am implementing a basic arbitrage strategy, what I need is following information,

1. Is there a limit on how many order per second can be executed? my research on forum says 5 orders per second?
2. Is there limit on number of trades or amount traded during day? For an example Can i do 5000 trades every day?
3. As Cover orders are also specialized algorithm consisting of more than on orders, so if I place two cover orders in a second will that be considered as two orders or four orders?
4. Brokerage will be same as regular trading Rs 20/- per trade or there is any difference?
5. Any other limitations of API that I should know off before deploying my algorithms?
6. Any limitations specific to exchange as I will be trading in both NSE and BSE.

Any help to these questions will be greatly appreciated.
  • sujith
    Hi @vibhore,
    Yes, you can place up to 5 orders per second.
    There is no limit to the number of orders that can be placed from API in a day.
    In case of the cover order, the brokerage will be a maximum of Rs40 which is levied on entry and exit order.
    Brokerage remains same across all the platforms including Kite Connect.
    All Kite Connect HTTP calls are limited to 3 requests per second.
    Bracket and cover orders are not allowed on BSE.

    Kite Connect is a monthly subscription based service wherein you will have to subscribe by paying Rs 2000.
    Base subscription includes placing orders, fetching orderbook, positions, holdings, live market data and more.
    For historical data, you will have to pay Rs 2000 which is an add-on subscription.
  • vibhore

    Thanks for quick response, It is very detailed. I still have some queries,

    1. "In case of the cover order, the brokerage will be a maximum of Rs 40 which is levied on entry and exit order." I probably don't understand how brokerage works in BO and CO, I was under assumption that it was maximum Rs. 20 per trade not per order not matter the product type/segment/order type, can you please explain that in a bit detail
    2. "All Kite Connect HTTP calls are limited to 3 requests per second.", Seems confusing how it is limited to 3 requests per second if I can place up to 5 orders per second?
    3. .NET API client doesn't seem to have a direct method to get a quote other than subscribing to a quote. What I am trying is to do a pair trade and in this way I have to wait for a second quote to come and at that time the first one might be outdated, all this because we don't have a pull mechanism for fetching quotes so there is this time gap till second quote is received which makes my algorithm in efficient. Is there any way to get quotes for two or more symbols at same time using the .NET API client.

    I already have subscription to Kite Connect API and been working on some algorithms. I have tried to put up my question very clearly, please let me know if it needs any clarification.

  • sujith
    Brokerage is levied on each executed order, not on trades. An order can be executed in multiple trades.
    Special order like cover and bracket order consists of two legs. When the first leg is executed brokerage will be a maximum of Rs 20 and when second leg order is executed brokerage will be maximum of Rs 20.
    In case of bracket order, there might be a scenario wherein first leg order is executed in multiple trades and each trade creates two-second leg orders for target and stop-loss. In that case, the brokerage will be levied on entry order (max of Rs 20) and for each executed second leg orders(which will be either stop-loss or target).

    All HTTP calls are strictly limited to 3 per second but for placing an order we have an exception, hence it can buffer up to 5 requests per second.

    Are you referring to official .NET client or 3rd party .NET client? The official client supports new features wherein you can fetch LTP and OHLC for multiple instruments at once.
    In websockets, you can get a maximum of one tick per second. It depends on liquidity on that instrument. At our end, we just broadcast whatever exchange sends. We don't store or process websocket ticks.

    You can check out this post to know more about bulk fetch API.
  • jvimal8080
    My understanding is that rate limit of 3/second is for each HTTP endpoint.
    So different endpoints can be hit simultaneously at rate 3/second.
    Correct me if I am wrong.
  • tonystark
    Hi @jvimal8080,

    The rate limit is for entire API endpoints not for each endpoint.
  • jvimal8080
    jvimal8080 edited October 2017
    Hi @sujith , @ajinasokan,
    Limit of 3/second for all API endpoints is little upsetting. Hope future versions will have separate limit for each endpoint.
    One more query : What would be the response in case request is discarded due to rate limit?
  • tonystark
    Hi @jvimal8080,

    If request is rate limited you will get HTTP error response with status code 429
  • Kanchana
    One more limitation as I know, The trailing stop loss should always be greater than 1 point(Rs1 in EQ) which is little disappointing. People are supposed to trade only those stocks whose spread is 1 point in a day which is usually stocks that have value of 2000 or more.

    API Team, This list of limitations should well be documented somewhere at prime location. This may help clients to validate before they subscribe for API service. Lots of traders are getting upset (including me) knowing these limitations after subscription :-(
  • Kanchana
    Yet another limitation?
    As per this link, https://kite.trade/forum/discussion/comment/3034/#Comment_3034
    BO orders more than 1300, you may be blocked.
  • sujith
    This is not a limitation of the Kite Connect APIs, these are the rules set by RMS team.
    These caps are across all the platforms provided on Zerodha.
  • Kanchana
    One more.
    List of stocks which are not allowed to trade for BO orders. I think this list is updated daily.

    This has list of whooping 850 stocks just in NSE which means you can trade only on remaining 1200+ stocks in NSE out of which you can select stocks which has value more than Rs.2000(due to the TSL limitation of 1 point). This boils down to a mere 30+ stocks that you can trade in a day(today 26/Oct/17).
    My disappointment grows.
  • Kailash
    @Kanchana Not sure how you jumped to the conclusion that there's only 30 BO stocks that can be traded. We have several hundred. Please refer to the list on the dropdown here -- https://zerodha.com/margin-calculator/BracketCover/

    There's a reason why there's a list of stocks that are blocked. Most of them are too illiquid to be squared off. It's a risk management measure.

    Also, I request you to not hijack threads with off-the-topic comments. This thread is about API rate limits. Please open new threads if you have queries. Thanks!
This discussion has been closed.