Home · Guides · SENSEX option chain historical data: BSE chains minute by minute

GUIDE · SENSEX OPTION CHAIN · CATALOG VERIFIED 2026-11-11

SENSEX option chain historical data: BSE chains minute by minute

Options Data (optionsdata.shop) sells historical SENSEX option chains from BSE as 1-minute Parquet or CSV files: every traded strike of the nearest expiries, calls and puts, with OHLC, volume and open interest, covering NOV 2023 → NOV 2026. Files use the same layout as the NIFTY chain, so one loader handles both indices. Open interest has known gaps, listed below. Dataset: SENSEX options historical data.

SENSEX option chain dataSENSEX options, 3 yearsNIFTY option chain data Get free sample by email File schema

Get the free sample by email → check the columns

Dates on this page are read from the live file catalog, not typed by hand. Full matrix: /coverage.

SENSEX weekly expiry day by period (BSE)

PeriodWeekly expiry
Up to the 3 Jan 2025 weeklyFriday
From January 2025Tuesday
Contracts expiring from September 2025Thursday (first: 4 Sep 2025)

What a SENSEX chain file holds

One file per trading day per expiry, named like SENSEX_OPT_1min_<trading day>_exp<expiry>.parquet. Each row is one strike and side in one minute: traded open, high, low, close, volume and open interest, with strike, expiry and call/put. In layout A files the underlying code is BSESEN and the exchange code is BFO.

Nearest NIFTY and SENSEX expiries, every traded strike. Full detail on the coverage page. SENSEX 1-second chains cover 27 May 2024 to present in the SENSEX Options + Spot 1-second pack.

Rebuild the chain at any minute

Take the last traded bar of every strike at or before your minute, then pivot calls and puts side by side:

import pandas as pd
df = pd.read_parquet("SENSEX_OPT_1min_2026-09-09_exp2026-09-10.parquet")
# older files use layout B names; map them to the sample names
df = df.rename(columns={"timestamp": "datetime", "strike": "strike_price",
                        "option_type": "right", "expiry": "expiry_date",
                        "oi": "open_interest"})
if "right" in df:
    df["right"] = df["right"].replace({"CE": "Call", "PE": "Put"})
df["datetime"] = pd.to_datetime(df["datetime"])
t = pd.Timestamp("2026-09-09 11:00:00")
snap = df[df["datetime"] <= t].sort_values("datetime").groupby(["strike_price", "right"]).last()
chain = snap[["close", "volume", "open_interest"]].unstack("right")
print(chain)

Open interest gaps, stated plainly

SENSEX options 1-min: open interest is present 7 Nov 2023 – 20 Apr 2026 and 6 Jul – 14 Aug 2026; it is 0 from 21 Apr – 3 Jul 2026, on 16 individual days, and from 17 Aug 2026.

On those dates price and volume are complete; only the OI column reads 0. Filter them out of any OI-based signal rather than treating 0 as real positioning. Exact per-day detail is on the coverage page.

Expiry days moved twice

Expiry-day sessions are where SENSEX chains differ most from ordinary days: volume crowds into the strikes around the money late in the session and the expiring series loses open interest as positions close or roll. Each expiry-day file sits next to the next expiry's file for the same day, so the roll is visible directly. For expiry-day research see the expiry-day backtesting guide.

SENSEX weekly options expired on Friday until the 3 January 2025 weekly, moved to Tuesday from January 2025, and moved to Thursday for contracts expiring from September 2025, with the first Thursday weekly on 4 September 2025. Read each contract's expiry from the data, not the weekday.

To compare the two weekly chains on the same clock, pair these files with the NIFTY option chain data; the NIFTY + SENSEX Complete packs include both with futures and spot.

Exactly which fields are in the files

Options files

Column (layout A · layout B)TypeMeaning
datetime · timestamptimestampBar start time, IST wall-clock (e.g. 2026-09-10 09:15:00)
stock_code · —stringUnderlying code: NIFTY, or BSESEN for SENSEX
exchange_code · —stringNFO (NSE F&O) or BFO (BSE F&O)
product_type · —stringOptions
expiry_date · expirystringContract expiry (A: 15-SEP-2026, B: 2026-09-15)
strike_price · strikenumberStrike price
right · option_typestringA: Call / Put, B: CE / PE
open / high / low / closefloatTraded premium OHLC within the bar
volumeintVolume traded in the bar
open_interest · oiintOpen interest at that bar (SENSEX has gaps where it is 0 — see /free/schema)

Each row is one contract in one bar: traded OHLC, volume and open interest, with strike, expiry and call/put on every row.

Format: Parquet. Validate on the free sample and the schema page before buying.

FAQ

Where can I download SENSEX option chain historical data?

Options Data sells SENSEX option chains at 1-minute (NOV 2023 → NOV 2026) as Parquet or CSV. See the SENSEX options historical data page.

What day is SENSEX weekly expiry?

Thursday, for contracts expiring from September 2025 (first: 4 September 2025). It was Tuesday from January 2025 and Friday before that.

Does SENSEX option data include open interest?

Yes, with gaps: SENSEX options 1-min: open interest is present 7 Nov 2023 – 20 Apr 2026 and 6 Jul – 14 Aug 2026; it is 0 from 21 Apr – 3 Jul 2026, on 16 individual days, and from 17 Aug 2026.

Can I compare SENSEX and NIFTY option chains on the same clock?

Yes. Both use IST wall-clock bar starts and the same columns, so you can join the two chains by minute. The NIFTY + SENSEX Complete packs include both indices with futures and spot.

Is the SENSEX file layout the same as NIFTY?

Yes. Same columns and naming, so the same code loads both. Layout A files use BSESEN as the underlying code.

Is there SENSEX 1-second option chain data?

Yes, 27 May 2024 to present, in the SENSEX Options + Spot 1-second pack: /packs/sensex-options-1-second. Note that SENSEX 1-second option files have OI = 0 throughout.

Get the data

Free sample · Schema · Ask the AI for your data

SENSEX option chain dataSENSEX options, 3 yearsNIFTY option chain data Get free sample by email

Related guides

Index and commodity data only.