Skip to content

RuchiTanmay/nselib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

99 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.

About

nse data library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages