Skip to content

NikhilSuthar/indian-market-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

101 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

indian-market-data

NSE India      BSE India      MCX India      MSCI

Download NSE, BSE, MCX India and MSCI market data as pandas DataFrames.
Bhavcopy, SENSEX/Nifty indices, F&O, commodity spot prices, global index levels — direct from exchange archives.
Works on AWS Lambda, Snowflake, and any cloud environment.

nse-archives PyPI bse-index-data PyPI mcx-data PyPI msci-data PyPI indian-market-data PyPI Python 3.9+ MIT License

pip install indian-market-data     # NSE + MCX together
pip install nse-archives           # NSE only
pip install bse-index-data         # BSE only
pip install mcx-data               # MCX only
pip install msci-data              # MSCI only

📖 Full Documentation


Packages in this monorepo

Package PyPI Datasets Description
nse-archives 91 NSE India — equities, F&O, debt, indices, EGR
bse-index-data 55+ indices BSE India — SENSEX, BSE500, BANKEX and 50+ more
mcx-data 2 MCX India — commodity spot prices
indian-market-data All Umbrella — installs all

NSE — Quick Start

from nsedata import nse

# Daily prices
df = nse.get("capital_market", "equities_sme", "sec_bhavdata_full", "2026-05-22")
df = nse.get("capital_market", "indices", "ind_close_all", "2026-05-22")

# F&O
df = nse.get("derivatives", "equity", "fo_bhav_udiff", "2026-05-22")
df = nse.get("derivatives", "equity", "fo_secban", "2026-05-22")

# Historical index + TRI (niftyindices.com)
df = nse.get_historical_index("NIFTY 50", "01-Jan-2026", "31-Mar-2026")
df = nse.get_tri("NIFTY 50", "01-Jan-2026", "31-Mar-2026")

# Download to S3
nse.download("capital_market", "equities_sme", "sec_bhavdata_full", "2026-05-22",
             s3_bucket="my-bucket", s3_prefix="raw/nse/")

nse.list_datasets()   # 91 datasets

86 datasets confirmed working on Lambda (May 2026) — equities, F&O, debt, indices, IRD, SLB, EGR.


BSE — Quick Start

from bsedata import bse

# Historical SENSEX OHLC
df = bse.get_index("SENSEX", "2026-01-01", "2026-05-22")

# Historical BSE500, BANKEX, BSEIT etc.
df = bse.get_index("BSE500", "2026-01-01", "2026-05-22")
df = bse.get_index("BANKEX", "2026-01-01", "2026-05-22")

# All 120+ indices for one date (single call)
df = bse.get_all_indices("2026-05-22")

# Live SENSEX quote
df = bse.get_live_sensex()

# Download to S3
bse.download_index("SENSEX", "2026-01-01", "2026-05-22",
                   s3_bucket="my-bucket", s3_prefix="raw/bse/")

# List all 55 supported indices
bse.list_indices()
bse.list_indices(category="Sectoral")

55 indices confirmed working — Broad Market, Sectoral, Thematic, Strategy and Global.


MCX — Quick Start

from mcxdata import mcx

# Today's spot prices — all 28 commodities
df = mcx.get_spot_recent()

# Single commodity
df = mcx.get_spot_recent(commodity="GOLD")

# Historical
df = mcx.get_spot_archive("2026-05-01", "2026-05-22", commodity="GOLD")
df = mcx.get_spot_archive("2026-05-01", "2026-05-22", commodity="CRUDEOIL")

# Download to S3
mcx.download("spot", "market", "spot_recent",
             s3_bucket="my-bucket", s3_prefix="raw/mcx/")

mcx.list_commodities()   # 28 commodities: GOLD, SILVER, CRUDEOIL, ...

AWS Lambda

cd .lambda_layer
./build.sh      # builds layer with nse-archives + mcx-data + pandas + curl-cffi

Documentation

View Full Documentation →

Page Description
NSE Equities & SME 32 daily/monthly datasets
NSE Indices Index closes, top movers
NSE F&O F&O bhavcopy, contracts, ban list
NSE Debt Corporate bonds, settlements
MCX Spot Market Commodity spot prices (28 commodities)

License

MIT — data from NSE India and MCX India.