Skip to main content

library to get NSE India data

Project description

nselib

A Python library to fetch publicly available data from NSE India.

PyPI Version Python Versions License Downloads


✨ Features

  • Capital Market — Price volume data, deliverable positions, bhav copies, bulk/block deals, short selling, VaR margins, PE ratios, 52-week highs/lows, and more
  • Cash Market — NSDL FPI investment and derivative activity plus AMFI monthly archive reports
  • Derivatives — Futures & options price volume data, bhav copies, participant-wise OI & volume, live option chains, FII statistics, ban period securities
  • Indices — Index constituent lists, live index performances across Broad Market, Sectoral, Thematic, and Strategy categories
  • Debt — Securities available for trading
  • Corporate Filings — Financial results, corporate actions, event calendars
  • Market Activity — Top gainers/losers, most active equities, total traded stocks, FII/DII activity
  • Utilities — Trading holiday calendar, India VIX historical data

📦 Installation

Fresh install:

pip install nselib

Upgrade to latest:

pip install nselib --upgrade

Note: Compatible and tested with Python 3.8 and above.

🚀 Quick Start

from nselib import capital_market

# Get price volume data for a stock (last 1 month)
df = capital_market.price_volume_data(symbol='SBIN', period='1M')
print(df.head())

# Or specify a custom date range
df = capital_market.price_volume_and_deliverable_position_data(
    symbol='SBIN',
    from_date='01-01-2024',
    to_date='31-01-2024'
)
print(df)

📖 API Reference

Date Parameters

Most functions accept dates in two ways:

Parameter Format Example
from_date / to_date dd-mm-YYYY '01-06-2024'
period Shorthand code '1D', '1W', '1M', '6M', '1Y'

You must provide either from_date + to_date or period, not both.


Capital Market

from nselib import capital_market
Function Description Key Parameters
price_volume_and_deliverable_position_data() OHLCV + delivery data symbol, from_date/to_date or period
price_volume_data() OHLCV price volume data symbol, from_date/to_date or period
deliverable_position_data() Delivery position data symbol, from_date/to_date or period
bulk_deal_data() Bulk deal transactions from_date/to_date or period
block_deals_data() Block deal transactions from_date/to_date or period
short_selling_data() Short selling reports from_date/to_date or period
bhav_copy_with_delivery() Daily bhav copy with delivery trade_date
bhav_copy_equities() CM-UDiFF bhav copy trade_date
bhav_copy_sme() SME bhav copy trade_date
equity_list() All listed equities
fno_equity_list() F&O equity list with lot sizes
fno_index_list() F&O index list with lot sizes
nifty50_equity_list() Nifty 50 constituents
niftynext50_equity_list() Nifty Next 50 constituents
niftymidcap150_equity_list() Nifty Midcap 150 constituents
niftysmallcap250_equity_list() Nifty Smallcap 250 constituents
india_vix_data() India VIX historical data from_date/to_date or period
index_data() Historical index OHLC data index, from_date/to_date or period
market_watch_all_indices() Live snapshot of all indices
daily_volatility() CM daily volatility report trade_date
fii_dii_trading_activity() FII/DII buy-sell activity
var_begin_day() VaR — begin of day trade_date
var_1st_intra_day() VaR — 1st intraday trade_date
var_2nd_intra_day() VaR — 2nd intraday trade_date
var_3rd_intra_day() VaR — 3rd intraday trade_date
var_4th_intra_day() VaR — 4th intraday trade_date
var_end_of_day() VaR — end of day trade_date
sme_bhav_copy() SME bhav copy trade_date
sme_band_complete() SME band complete data trade_date
week_52_high_low_report() 52-week high/low report trade_date
financial_results_for_equity() Quarterly/annual financials from_date/to_date or period, fin_period, fo_sec
corporate_bond_trade_report() Corporate bond trades trade_date
pe_ratio() PE ratio for all equities trade_date
corporate_actions_for_equity() Corporate actions from_date/to_date or period, fno_only
event_calendar_for_equity() Event calendar from_date/to_date or period, fno_only
top_gainers_or_losers() Top gainers or losers to_get ('gainers' / 'loosers')
most_active_equities() Most active by value/volume fetch_by ('value' / 'volume')
total_traded_stocks() All traded stocks summary
category_turnover_cash() category-wise turnover data trade_date
business_growth_cm_segment() business growth data for the NSE capital market data_type, from_year , to_year

Examples:

# Bhav copy for a specific date
df = capital_market.bhav_copy_with_delivery(trade_date='20-06-2024')

# India VIX for last 1 week
df = capital_market.india_vix_data(period='1W')

# CM daily volatility report
df = capital_market.daily_volatility(trade_date='17-04-2026')

# Historical index data
df = capital_market.index_data(index='NIFTY 50', from_date='01-01-2024', to_date='31-03-2024')

# Financial results (quarterly, F&O securities only)
df = capital_market.financial_results_for_equity(period='6M', fo_sec=True, fin_period='Quarterly')

# Top gainers in live market
df = capital_market.top_gainers_or_losers('gainers')

Derivatives

from nselib import derivatives
Function Description Key Parameters
future_price_volume_data() Futures price & volume symbol, instrument (FUTIDX/FUTSTK), dates
option_price_volume_data() Options price & volume symbol, instrument (OPTIDX/OPTSTK), option_type (PE/CE), dates
fno_bhav_copy() F&O daily bhav copy trade_date
participant_wise_open_interest() OI by participant category trade_date
participant_wise_trading_volume() Volume by participant category trade_date
daily_volatility() F&O daily volatility report trade_date
expiry_dates_future() Upcoming futures expiry dates
expiry_dates_option_index() Upcoming options expiry dates
nse_live_option_chain() Live option chain symbol, expiry_date (optional), oi_mode
fii_derivatives_statistics() FII derivatives stats trade_date
fno_security_in_ban_period() Securities in F&O ban trade_date
live_most_active_underlying() Most active underlyings
category_turnover_fo() derivatives category-wise turnover data trade_date
business_growth_fo_segment() business growth data for the NSE F&O segment data_type, from_year , to_year

Instrument Types:

Code Description
FUTIDX Future Index
FUTSTK Future Stock
OPTIDX Option Index
OPTSTK Option Stock

Examples:

# Futures price data
df = derivatives.future_price_volume_data(
    symbol='SBIN', instrument='FUTSTK', period='1M'
)

# Live option chain
df = derivatives.nse_live_option_chain(symbol='BANKNIFTY', expiry_date='27-03-2025')

# Compact option chain (fewer columns)
df = derivatives.nse_live_option_chain(symbol='NIFTY', oi_mode='compact')

# FII derivatives statistics
df = derivatives.fii_derivatives_statistics(trade_date='20-12-2025')

# F&O daily volatility report
df = derivatives.daily_volatility(trade_date='17-04-2026')

Cash Market

from nselib import cash_market
Function Description Key Parameters
nsdl_fpi_investment_activity() NSDL FPI investment activity for a reporting date trade_date
nsdl_fpi_latest_investment_activity() Latest NSDL FPI investment activity
nsdl_fpi_derivative_activity() NSDL FPI derivative activity for a reporting date trade_date
nsdl_fpi_latest_derivative_activity() Latest NSDL FPI derivative activity
amfi_monthly_report_links() List AMFI monthly archive links
amfi_monthly_data() Parse one AMFI monthly report report_month, file_type_priority
amfi_monthly_historical_data() Parse AMFI monthly reports across a range from_month, to_month, file_type_priority

Examples:

# NSDL FPI investment activity for a specific reporting date
df = cash_market.nsdl_fpi_investment_activity(trade_date='30-10-2025')

# Latest NSDL FPI derivative activity
df = cash_market.nsdl_fpi_latest_derivative_activity()

# List available AMFI archive reports
links = cash_market.amfi_monthly_report_links()

# Parse a single AMFI monthly report
df = cash_market.amfi_monthly_data(report_month='01-03-2026')

# Parse AMFI history for a month range
history = cash_market.amfi_monthly_historical_data(from_month='01-01-2024', to_month='01-03-2026')

Indices

from nselib import indices
Function Description Key Parameters
index_list() Available indices by category index_category
constituent_stock_list() Stocks in a given index index_category, index_name
live_index_performances() Live performance of all indices

Index Categories: BroadMarketIndices, SectoralIndices, ThematicIndices, StrategyIndices

Examples:

# List all broad market indices
index_names = indices.index_list(index_category='BroadMarketIndices')

# Get Nifty 50 constituents
df = indices.constituent_stock_list(index_category='BroadMarketIndices', index_name='Nifty 50')

# Live index performances
df = indices.live_index_performances()

Debt

from nselib import debt
Function Description Key Parameters
securities_available_for_trading() Debt securities available trade_date

Example:

df = debt.securities_available_for_trading(trade_date='20-12-2025')

Utilities

import nselib
Function Description
trading_holiday_calendar() NSE trading holidays for all segments

Example:

df = nselib.trading_holiday_calendar()

🤝 How to Contribute

There are multiple ways to contribute to nselib:

Report Issues & Suggest Features

Found a bug or have a feature request? Please open an issue on the GitHub Issues page.

Submit Pull Requests

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -m 'Add your feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Open a Pull Request

Write About nselib

Help the community by writing tutorials, blog posts, or example projects using nselib.

Contact

📄 License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nselib-2.5.0.tar.gz (48.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nselib-2.5.0-py3-none-any.whl (50.5 kB view details)

Uploaded Python 3

File details

Details for the file nselib-2.5.0.tar.gz.

File metadata

  • Download URL: nselib-2.5.0.tar.gz
  • Upload date:
  • Size: 48.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for nselib-2.5.0.tar.gz
Algorithm Hash digest
SHA256 e04f7dc734943cbc71bee0bbde9c7bdb5a2e0e584e261611e021f2b75c4be6eb
MD5 6ef761d3e8b6094110c8ace7baccc301
BLAKE2b-256 7c6c8ddcb5616eb0ef6e320b8e3f667b3541cf21bac74b1c4d7dad574e0860e6

See more details on using hashes here.

File details

Details for the file nselib-2.5.0-py3-none-any.whl.

File metadata

  • Download URL: nselib-2.5.0-py3-none-any.whl
  • Upload date:
  • Size: 50.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for nselib-2.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0c1c8315fee8910504e946683f4740f58dd67687aff94350b38a5eca64165b6
MD5 033a750fe95ea32c09fa150e44425007
BLAKE2b-256 b2abae30e6d3ad9adcc30eacfa4f4183ab7d8e38e586be5f7abfa0c762993b21

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page