Knowing a dataset’s boundaries is more useful than knowing its features, because the failures come from the boundaries. This is a plain scope note: what you get, what you do not, and where the output should not be trusted.
What is included
- NSE-listed equity securities, searchable by ticker or company name.
- End-of-day records — one row per trading session per series.
- All series, not just
EQ, so history is preserved through segment changes. Series explained. - Fourteen fields per row: date, series, open, high, low, previous close, last traded price, close, VWAP, volume, turnover, trade count, delivery quantity and delivery percentage. Column reference.
- Arbitrary date ranges. Long ranges are split into smaller requests and reassembled, so multi-year pulls work — they just take longer.
What is not included
- Intraday, tick, or minute data. Only daily aggregates.
- Order book depth, bid-ask spreads, or quote history.
- Derivatives. No futures, options, open interest, or expiry data.
- Index levels. Nifty 50, Bank Nifty and similar are a different dataset — there is a separate tool for those, linked from the console.
- BSE prices. A stock dual-listed on BSE will show only its NSE record here. Also a separate tool.
- Fundamentals. No earnings, balance sheets, ratios, shareholding patterns, or announcements.
- Corporate action records. The events are not listed, only their unannounced effect on price. How to handle that.
- Adjusted price series. Everything is raw and unadjusted, by design.
- Real-time or delayed live quotes. Historical records only.
Known limitations of what you do get
It is only as good as the source
Data is passed through from a public exchange endpoint with minimal processing — sorting, de-duplication across request boundaries, readable column names, and proper date values. Nothing is cross-validated against a second source. An error upstream arrives intact.
Recent sessions may be incomplete
Delivery figures follow a settlement cycle that lags price data, so the newest rows often have blank delivery columns. Blank means not yet published, not zero.
Rows are sessions, not calendar days
Weekends, exchange holidays and untraded days simply do not appear. Any analysis assuming evenly spaced observations should account for that — a “20-day” window is twenty sessions, roughly four calendar weeks, and longer across a holiday cluster.
Delisted and renamed securities are patchy
Symbols change and companies delist. History for a renamed security may be split across identifiers, and a delisted one may be unavailable entirely. Note also that any list of currently listed companies mechanically excludes failures — building a study on one introduces survivorship bias.
Very long ranges take time and can fail
Multi-year requests are fetched in sequential chunks. More chunks means more time and more opportunities for an upstream hiccup. If a long pull fails, requesting a few shorter ranges and combining them usually works.
Availability depends on a third party
If the upstream source rate-limits, changes its response format, or goes down, this tool stops returning data until it is fixed. There is no cached copy to fall back on.
How to verify a figure
For anything consequential, check against the exchange’s own published record for that symbol and date. Useful internal checks first:
VALUE ÷ VOLUMEshould land nearVWAP, and inside the day’s high-low range.DELIVERY QTYshould never exceedVOLUME.HIGHshould be the largest andLOWthe smallest of the day’s prices.PREV. CLOSEshould match the prior row’sCLOSEexcept around corporate actions.
A row failing any of these is worth reporting — see the contact page.
When to use something else
This tool suits research, coursework, back-of-envelope analysis, record-keeping, and getting a quick clean price series into a spreadsheet. It is deliberately narrow and free.
Use a commercial data vendor instead if you need:
- guaranteed accuracy, completeness, or a support contract;
- pre-adjusted or total-return series;
- intraday, derivatives, or order-book data;
- an SLA, redistribution rights, or a licence for commercial use;
- anything feeding automated trading, client reporting, or a regulatory filing.
Nothing here is investment advice, and the output should not be the sole basis for a financial decision. See the disclaimer.
Keep reading
- Every column in your NSE export, explained — What OPEN, HIGH, LOW, PREV. CLOSE, LTP, CLOSE, VWAP, VOLUME, VALUE, NO OF TRADES, DELIVERY QTY and DELIVERY % actually mean in an NSE historical data file — and where people misread them.
- NSE series codes: EQ, BE, BZ, SM and ST — Why your export sometimes has two rows for the same date, what each NSE series code means for how a stock trades, and which rows you probably want to keep.
- Delivery percentage: how to read it, and its limits — How NSE delivery quantity and delivery percentage are calculated, what high and low readings suggest about participation, and the cases where the number misleads.
Or go straight to the download console and pull a file.