Feedback on API – Intraday & Websocket Data Handling

Feedback on API – Intraday & Websocket Data Handling

Hi Team,

First of all, thank you for providing such a wonderful API structure – it’s really easy to use and integrates well. :raising_hands:

Hi Team,

First of all, thank you for providing such a wonderful API structure – it’s really easy to use and integrates well. :raising_hands:

However, while working on algo trading, I noticed a couple of major challenges that need attention:

1. Merging Intraday Data with Websocket Data

Merging intraday data with historical data is smooth and simple.

But merging websocket data with intraday data is very challenging because:

Intraday API provides delayed data (1 minute to 2 minutes delay, not fixed).

While fetching data for multiple stocks, some come with ~1 minute delay, others with 1m 20s+ delay.

Websocket provides live ticks + previous 1-minute data, but does not provide live volume data.

Currently, websocket only supports 1-day and 1-minute data.

:backhand_index_pointing_right: Suggestion:

Please add 5-minute candles in websocket.

Provide at least 2–3 previous candles in websocket to help sync with intraday/historical.

2. Rate Limit Restriction

Current limit: 20,000 requests per 30 minutes.

Which means:

20,000 / 30 = 666.6 requests per minute

If 10 requests per stock → ~66 stocks per minute

This is very low for algo-trading use cases, especially when filtering data across NSE F&O universe.

:backhand_index_pointing_right: Suggestion:

Allow fetching all F&O stocks data per minute in one go (batch request).

Or increase the request limit for market data APIs.

:white_check_mark: Apart from these 2 issues, all other features are working very well. Really appreciate the efforts of the Upstox API team. :+1:

I agree with you and also there is no need of web socket to get candle data. It is not serving actual use of web socket. Web socket is meant to server live data but we are getting previous 1m candle data which breaks High frequency traders strategies there is no solution for them they need to depend on LTPC data where it can generate corrupt OHLC. I needed to shut down my strategy which was using live 1m candle data from web socket.

Let me explain you my approach to accomplish this.

When I start my strategy at 9:15 am, I use historical and OHLC Quotes V3 | Upstox Developer API API to Build Historical including intraday data from 9:15 am. OHLC Quote gives live and previous candle data without delay. OHLC supports 500 scrips data in single call hence it solves your batch request issue also.

When I start my strategy after start of trading day, I mean any time after 9:15 am, then I use Historical + Intraday + OHLC quote v3 API. This gives historical data + intraday candles from 9:15 am to (current time - 2 minutes) i.e. 9:58 am + OHCL API (9:59(prev candle) + 10:00(live candle)) data.

Dear Upstox Community,

I hope this email finds you well. I recently received a response from Jagdish regarding my query on the Upstox API, and I appreciate the assistance provided so far. However, I have a few follow-up questions about the rate limits to ensure I can optimize my algorithmic trading setup effectively.

As per my current understanding, the rate limits are as follows:

  • A) 50 requests per second
  • B) 500 requests per minute
  • C) 2000 requests per 30 minutes (which does feel quite restrictive for certain use cases).

I am currently utilizing three primary API methods, using examples for 50 stocks each:

  1. Historical data – 50 requests per day.
  2. Intraday data – 50 requests per minute.
  3. Market quote – one request per second.

Could you please clarify the following regarding the 50 requests per second limit:
a) Is this a combined total across all API methods (historical, intraday, market quote),
OR
b) 50 requests per second per API method individually?

Similarly, for the 500 requests per minute limit, does it apply as:
a) A combined total (intraday + historical + market quote),
OR
b) Separately for each API method (i.e., 500 for historical, 500 for intraday, 500 for market quote)?

I would greatly appreciate a detailed breakdown of how these rate limits are applied in practice. This information will help me fine-tune my implementation to stay within the boundaries while achieving my trading goals.

To provide some context on my challenge: If I make one request every second, that equates to 60 requests per minute and 60 * 30 = 1800 requests per 30 minutes. This leaves only 2000 - 1800 = 200 requests remaining for intraday and historical data. For intraday trading, I need to filter at least 100 to 200 good stocks to make informed decisions. If I allocate 50 requests to historical data in a day, that leaves about 150 requests for intraday within 30 minutes.

Breaking it down further: 150 requests / 30 minutes = only 5 requests per minute, meaning I can filter just 5 stocks at a time. This limitation is quite challenging and feels very restrictive for effective algo trading. :disappointed_face: How can I best approach stock filtering and executing trades under these constraints?

I look forward to your expert guidance and clarification on this matter.

Best regards,
Pawan Chauhan

Hi team,

I still not got response from you.
May I got any response from your side?

My requirement is . I am expecting live data with intraday history data combined .

Do you any solution for this? So I can get 150+ stock tick by tick data , without any losses data with combination of live + intraday data.

Bro you need to build your own system for that.

  1. Download historical data till yesterday once.
  2. use OHLC Quote API every minute to download batch data, it will allow 500 stocks per request. This API will give you previous minute and live minute candle data.
  3. By this way you can store historical data including current minute to CSV. And then use it for your analysis.

Subject: Request to increase API rate limit for algo trading / need higher quota for tick-by-tick filtering

Hi Jagdish,

Thanks for your reply.

Unfortunately your suggested limits won’t work for our algo-trading needs. Tick-by-tick data and frequent intraday polling are critical for my strategy — here’s why the current limit is insufficient and what I need from Upstox.

Current situation and math

Live data setup: I use intraday HTTP requests (polling each symbol every minute) plus websocket for live ticks.

Current limit: 2,000 requests / 30 minutes = ≈ 66.7 requests per minute.

This means I can poll ~66 symbols once per minute (66 symbols × 1 request/min each).

Required for 150 symbols: to poll 150 symbols once per minute you need

150 req/min × 30 minutes = 4,500 requests / 30 minutes.

So your provided quota (2,000/30min) is less than half of what’s required to properly filter and trade ~150 symbols in real time. With the current limit I will miss signals, incur unacceptable latency, and cannot reliably run the strategy.

Requested actions / questions

Please either increase the rate limit (I request at least 4,500 requests per 30 minutes) or provide one or more of the following alternatives and details:

Batch endpoints — can I fetch multiple symbols in a single HTTP request? If yes, what’s the max symbols per batch and the associated limits?

Websocket subscriptions — can I subscribe to tick-level quotes for 150+ symbols on websocket? Are there per-connection or per-symbol limits?

Higher-rate / enterprise tier — do you offer a higher-rate plan or dedicated market-data feed for algo traders? If yes, please share pricing, SLAs, and onboarding steps.

Clarification of rate-limit scope — is the limit applied per API key, per account, per IP, or per access token? Are burst allowances or short-term exceptions possible?

Best practices / docs — any documentation or recommended architecture for low-latency algo trading with Upstox (examples, sample code, limits table).

Please escalate this to the relevant technical / product team and share a detailed explanation or alternatives. I’m happy to provide the exact list of symbols and expected throughput if that helps you size the required quota.

I am also user like you. I am not from Upstox team. Wait for their reply for this.