Skip to content
NSE·histdataEnd-of-day exportsNSE Historical Data home

Provenance · 6 min read

Verify this data against NSE yourself

Don't take our word for it. NSE publishes a free end-of-day file for every trading day. Here is how to download it and reconcile it against your export, row by row.

This site says its data comes straight from the National Stock Exchange. You have no way to confirm that by looking at a column of prices, and you should not have to take it on faith. So don’t: NSE publishes its own end-of-day file for every trading day, free and without an account, and you can reconcile any row of your download against it in a couple of minutes.

NSE’s own daily file

At the close of each session NSE publishes a Bhavcopy , a single file listing every security that traded that day, with its open, high, low, close, volume, turnover and trade count. It is the exchange’s own record, served from its archive, and it needs no login, no API key and no session cookie. A plain download works.

The address follows one pattern, with the date written as YYYYMMDD:

https://nsearchives.nseindia.com/content/cm/BhavCopy_NSE_CM_0_0_0_YYYYMMDD_F_0000.csv.zip

For 8 September 2026 that is …BhavCopy_NSE_CM_0_0_0_20260908_F_0000.csv.zip. The file is a zipped CSV of roughly 3,600 rows. Only trading days exist, weekends and exchange holidays return nothing, which is itself a useful check on any gap in your export.

Reconciling a row

  1. Pick any date from the Historical Data sheet of your download.
  2. Fetch the Bhavcopy for that date using the pattern above.
  3. Unzip it and find your ticker in the TckrSymb column, with the series you want in SctySrs, usually EQ. Why there may be several series.
  4. Compare field by field. The numbers should match exactly.

NSE’s column names in that file are terse, so here is the mapping to the headers in your download:

Your exportNSE Bhavcopy
DATETradDt
SERIESSctySrs
OPENOpnPric
HIGHHghPric
LOWLwPric
PREV. CLOSEPrvsClsgPric
LTPLastPric
CLOSEClsPric
VOLUMETtlTradgVol
VALUETtlTrfVal
NO OF TRADESTtlNbOfTxsExctd

A worked example

TCS, series EQ, 8 September 2026. NSE’s Bhavcopy for that date reports an open of 2270.00, a high of 2274.50, a low of 2244.00, a previous close of 2270.00, a close of 2255.50, volume of 2,148,114, turnover of 4,862,308,617.40 and 70,112 trades. Pull the same day from this site and every one of those figures comes back identical. That is the check, run it on any symbol and date you like.

What this site changes, and what it does not

The figures are reproduced exactly as NSE returns them. Nothing is rounded, smoothed, back-filled or adjusted. What does change is presentation, and being precise about that matters more than sounding pure:

  • Column names are renamed for readability. NSE’s API sends CH_OPENING_PRICE; your file says OPEN.
  • Rows are sorted by date, then by series.
  • Duplicates are removed. A long date range takes several overlapping requests, so the same session can arrive more than once.
  • Dates are normalised to the trading session the row actually belongs to.
  • Corporate actions are not applied. Splits and bonuses are left alone, so historical prices are unadjusted, exactly as NSE reports them, and a common source of confusion. Why old prices look wrong.

Every download carries a Source sheet recording the same thing for that specific file: the endpoint called, when it was called, the range and series returned, and these notes.

Why not just query NSE directly

A fair follow-up: if the data is NSE’s, why use this at all? Because the exchange’s own interface makes long histories tedious rather than impossible. Its website limits how much you can request at once, and the underlying endpoint returns roughly seventy records per call and silently truncates beyond that, no error, no warning, just missing months in the middle of a range. Reconstructing a multi-year history means issuing many overlapping requests, detecting the truncation, and stitching the results back together. That is the work this site does. The Bhavcopy above is the honest cross-check on whether it does it correctly.

For the full boundaries of the dataset, see what this data does and does not cover.

Keep reading

All guides

Need the data?

Search a symbol, pick a range, get one Excel file.

Open the console