Home · Guides · How the NIFTY 1-second options and spot files are built
METHODOLOGY · NIFTY 1-SECOND · CATALOG VERIFIED 2026-10-01
How the NIFTY 1-second options and spot files are built
Options Data builds its NIFTY 1-second files from the 1-second OHLCV bars a broker data feed returns for each option contract and for the NIFTY index, fetched one contract-day at a time and stored as Parquet after de-duplication — the bars are the feed's own 1-second bars, not re-aggregated from ticks. The archive holds 917 trading days of NIFTY 1-second options (JAN 2023 → SEP 2026). Each row is one contract in one second that has a bar; seconds without a bar are left out rather than forward-filled.
Free 1-second sampleNIFTY 1-second packsFile schema Free sample (no email) File schema
Dates on this page are read from the live file catalog, not typed by hand. Full matrix: /coverage.
1. Where the bars come from
Every option bar is requested from the feed's historical-data endpoint at the 1-second interval, per contract: one expiry, one strike, call or put, for one trading day. NIFTY spot is requested the same way from the index (cash) series.
The feed returns at most 1,000 bars per request, so a full session (up to about 22,500 seconds) is read backwards from the close in pages of up to 1,000 bars — roughly 23 requests per contract-day. Requests are paced at about one per second per worker, which is why second-level history across a whole option chain is slow to build and is not fetched on demand.
Bars that appear in two overlapping pages are kept once (de-duplicated by timestamp), numeric columns are typed, and the result is written as one Parquet file. Nothing is interpolated or smoothed.
2. Which contracts are in each day
Option files up to 29 Jun 2026 hold one expiry per trading day (the nearest weekly, calls and puts, strikes around the money); from 30 Jun 2026 each day has three expiries (the nearest weeklies plus the current monthly).
Files are named NIFTY_OPT_1sec_<trading day>_exp<expiry>.parquet — one file per trading day per expiry — and NIFTY_SPOT_1sec_<trading day>.parquet for spot. On 10 Sep 2026, for example, there are three option files (expiries 15, 22 and 29 Sep 2026); the nearest-expiry file holds 143 contracts across strikes 21,700–26,200.
3. What a row means (and what an absent second means)
A row is one contract in one second: open, high, low, close, volume and open_interest for that second, with the contract fields (expiry_date, strike_price, right) on every row. Files in the older layout name the same fields oi, strike, option_type and expiry (see the file schema).
If the feed has no bar for a contract in a given second, that second is simply not in the file — rows are not forward-filled, in old and new files alike. On 10 Sep 2026 the nearest-expiry contracts have between 4,894 and 22,368 rows each out of 22,501 session seconds; liquid at-the-money strikes are close to complete, far strikes are sparse. If your backtest needs a value every second, forward-fill close yourself and treat the filled seconds as having no trade.
Many bars carry volume = 0 (67% of rows in the 10 Sep 2026 nearest-expiry file): the feed returns a bar for a second even when no contracts traded in it. Use volume > 0, not the presence of a row, as evidence of a trade.
open_interest is reported on every row but changes far less often than every second (a few hundred distinct values per contract on a typical day), so expect long runs of the same OI value.
4. The spot file and its ATM straddle columns
Spot rows are the index's 1-second OHLC bars from the same feed; volume is always 0 because an index does not trade.
Three columns are computed by us from the nearest-expiry 1-second option file of the same day. atm_strike: among strikes where both the call and the put have a bar in that exact second, the one with the smallest |call close − put close|. straddle: call close + put close at that strike, 2 decimals. straddle_iv: the mean of the Black-Scholes implied volatilities of that call and put, in percent, using that second's spot close, a 6% rate and expiry at 15:30 IST (15:40 IST for expiries on or after 3 Aug 2026).
5. Column layouts and what is not included
Option files dated 2 Jan 2023 – 29 Jun 2026 use layout B, including an iv column taken as-is from the data feed (not independently verified); option files from 30 Jun 2026 use layout A (13 columns, no iv). Spot files carry OHLC plus atm_strike, straddle and straddle_iv. No Greeks, no bid/ask, no 1-second futures.
Not in any file: Greeks, bid/ask quotes, order-book depth or tick-by-tick trade prints. A 1-second bar summarises the second; it does not list individual trades.
Check it yourself: the free 1-second sample is one real day (10 Sep 2026, two expiries cut to strikes 23,200–23,700, plus the full spot day) taken from these files.
Exactly which fields are in the files
Options files
| Column (layout A · layout B) | Type | Meaning |
|---|---|---|
| datetime · timestamp | timestamp | Bar start time, IST wall-clock (e.g. 2026-09-10 09:15:00) |
| stock_code · — | string | Underlying as the source names it: NIFTY, or BSESEN for SENSEX |
| exchange_code · — | string | NFO (NSE F&O) or BFO (BSE F&O) |
| product_type · — | string | Options |
| expiry_date · expiry | string | Contract expiry (A: 15-SEP-2026, B: 2026-09-15) |
| strike_price · strike | number | Strike price |
| right · option_type | string | A: Call / Put, B: CE / PE |
| open / high / low / close | float | Traded premium OHLC within the bar |
| volume | int | Volume traded in the bar, as reported by the source |
| open_interest · oi | int | Open interest at that bar (SENSEX has gaps where it is 0 — see /free/schema) |
| — · iv | float | Implied volatility taken as-is from the data feed; not independently computed or verified. Layout B only |
Not in any file: Greeks, bid/ask quotes, order-book depth or tick-by-tick trade prints. Many option files do include an iv column taken as-is from the data feed (not independently computed or verified) — see /free/schema for the date ranges.
Format: Parquet (one file per trading day per contract expiry). Validate on the free sample and the schema page before buying.
FAQ
Is the NIFTY 1-second data built from tick data?
No. The bars are the 1-second OHLCV bars returned by the broker data feed for each contract, stored after de-duplication. They are not re-aggregated from ticks, and no tick-by-tick prints are included.
Are missing seconds forward-filled?
No. A second with no bar for a contract is absent from the file. Forward-fill close yourself if your backtest needs a value every second.
Why do many 1-second bars have zero volume?
The feed returns a bar for a second even when no contracts traded in it. On 10 Sep 2026, 67% of rows in the nearest-expiry file have volume 0. Use volume > 0 as evidence of a trade.
Which NIFTY expiries are in the 1-second files?
Option files up to 29 Jun 2026 hold one expiry per trading day (the nearest weekly, calls and puts, strikes around the money); from 30 Jun 2026 each day has three expiries (the nearest weeklies plus the current monthly).
How are atm_strike, straddle and straddle_iv calculated?
From the nearest-expiry 1-second options of the same day: atm_strike is the strike (with both call and put bars that second) with the smallest |call close − put close|; straddle is call close + put close; straddle_iv is the mean Black-Scholes IV of that call and put (6% rate, that second's spot close), in percent.
What date range does the 1-second archive cover?
NIFTY 1-second options: JAN 2023 → SEP 2026 (917 trading days in storage, read from the live catalog).
Next steps
1. Download the free sample · 2. Check columns on /free/schema · 3. Buy with UPI.
Free 1-second sampleNIFTY 1-second packsFile schema Free sample
Related guides
- NSE option chain historical data in CSV or Parquet
- SENSEX options historical data at 1-minute resolution
- MCX intraday historical data: 1-minute futures and options
- Expiry-day options backtesting data for NIFTY and SENSEX
- Download NIFTY expired options data (Parquet / CSV)
- How to load 1-minute NIFTY options Parquet in pandas
Index and commodity data only.