πŸš€ Big News:Socket Has Acquired Secure Annex.Learn More β†’
Socket
Book a DemoSign in
Socket

nselib

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nselib

library to get NSE India data

pipPyPI
Version
2.5.1
Maintainers
1

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:

ParameterFormatExample
from_date / to_datedd-mm-YYYY'01-06-2024'
periodShorthand 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
FunctionDescriptionKey Parameters
price_volume_and_deliverable_position_data()OHLCV + delivery datasymbol, from_date/to_date or period
price_volume_data()OHLCV price volume datasymbol, from_date/to_date or period
deliverable_position_data()Delivery position datasymbol, from_date/to_date or period
bulk_deal_data()Bulk deal transactionsfrom_date/to_date or period
block_deals_data()Block deal transactionsfrom_date/to_date or period
short_selling_data()Short selling reportsfrom_date/to_date or period
bhav_copy_with_delivery()Daily bhav copy with deliverytrade_date
bhav_copy_equities()CM-UDiFF bhav copytrade_date
bhav_copy_sme()SME bhav copytrade_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 datafrom_date/to_date or period
index_data()Historical index OHLC dataindex, from_date/to_date or period
market_watch_all_indices()Live snapshot of all indicesβ€”
daily_volatility()CM daily volatility reporttrade_date
fii_dii_trading_activity()FII/DII buy-sell activityβ€”
var_begin_day()VaR β€” begin of daytrade_date
var_1st_intra_day()VaR β€” 1st intradaytrade_date
var_2nd_intra_day()VaR β€” 2nd intradaytrade_date
var_3rd_intra_day()VaR β€” 3rd intradaytrade_date
var_4th_intra_day()VaR β€” 4th intradaytrade_date
var_end_of_day()VaR β€” end of daytrade_date
sme_bhav_copy()SME bhav copytrade_date
sme_band_complete()SME band complete datatrade_date
week_52_high_low_report()52-week high/low reporttrade_date
financial_results_for_equity()Quarterly/annual financialsfrom_date/to_date or period, fin_period, fo_sec
corporate_bond_trade_report()Corporate bond tradestrade_date
pe_ratio()PE ratio for all equitiestrade_date
corporate_actions_for_equity()Corporate actionsfrom_date/to_date or period, fno_only
event_calendar_for_equity()Event calendarfrom_date/to_date or period, fno_only
top_gainers_or_losers()Top gainers or losersto_get ('gainers' / 'loosers')
most_active_equities()Most active by value/volumefetch_by ('value' / 'volume')
total_traded_stocks()All traded stocks summaryβ€”
category_turnover_cash()category-wise turnover datatrade_date
business_growth_cm_segment()business growth data for the NSE capital marketdata_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
FunctionDescriptionKey Parameters
future_price_volume_data()Futures price & volumesymbol, instrument (FUTIDX/FUTSTK), dates
option_price_volume_data()Options price & volumesymbol, instrument (OPTIDX/OPTSTK), option_type (PE/CE), dates
fno_bhav_copy()F&O daily bhav copytrade_date
participant_wise_open_interest()OI by participant categorytrade_date
participant_wise_trading_volume()Volume by participant categorytrade_date
daily_volatility()F&O daily volatility reporttrade_date
expiry_dates_future()Upcoming futures expiry datesβ€”
expiry_dates_option_index()Upcoming options expiry datesβ€”
nse_live_option_chain()Live option chainsymbol, expiry_date (optional), oi_mode
fii_derivatives_statistics()FII derivatives statstrade_date
fno_security_in_ban_period()Securities in F&O bantrade_date
live_most_active_underlying()Most active underlyingsβ€”
category_turnover_fo()derivatives category-wise turnover datatrade_date
business_growth_fo_segment()business growth data for the NSE F&O segmentdata_type, from_year , to_year

Instrument Types:

CodeDescription
FUTIDXFuture Index
FUTSTKFuture Stock
OPTIDXOption Index
OPTSTKOption 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
FunctionDescriptionKey Parameters
nsdl_fpi_investment_activity()NSDL FPI investment activity for a reporting datetrade_date
nsdl_fpi_latest_investment_activity()Latest NSDL FPI investment activityβ€”
nsdl_fpi_derivative_activity()NSDL FPI derivative activity for a reporting datetrade_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 reportreport_month, file_type_priority
amfi_monthly_historical_data()Parse AMFI monthly reports across a rangefrom_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
FunctionDescriptionKey Parameters
index_list()Available indices by categoryindex_category
constituent_stock_list()Stocks in a given indexindex_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
FunctionDescriptionKey Parameters
securities_available_for_trading()Debt securities availabletrade_date

Example:

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

Utilities

import nselib
FunctionDescription
trading_holiday_calendar()NSE trading holidays for all segments

Example:

df = nselib.trading_holiday_calendar()

🐞 Logging & Debugging

nselib comes with a built-in logger that is silent by default so it doesn't pollute your application's logs. If you want to see detailed network requests, API responses, or debug errors while working with the library, you can easily enable it.

import nselib
import logging

# Enable the logger to output to the console
nselib.enable_logging(level=logging.DEBUG)

# Now, function calls will emit helpful trace logs
df = nselib.capital_market.price_volume_data('SBIN', period='1W')

🀝 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

  • Fork the repository
  • Create a feature branch (git checkout -b feature/your-feature)
  • Commit your changes (git commit -m 'Add your feature')
  • Push to the branch (git push origin feature/your-feature)
  • 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.

Keywords

nseindia

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts