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
  • 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
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')

# 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
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')

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.4.6.tar.gz (37.6 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.4.6-py3-none-any.whl (38.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nselib-2.4.6.tar.gz
Algorithm Hash digest
SHA256 66edb2a003435ddcb30cda63b3705271be58419e503a6f4049e814ba86b0641b
MD5 ca9d5cced5bb9c82f8fd37307c873089
BLAKE2b-256 37f047665e38b467ad923664df70fe19188fbd6d29e9cc9db84e5bbdb62470cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nselib-2.4.6-py3-none-any.whl
  • Upload date:
  • Size: 38.6 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.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f86032c2e09c01efd7b901ebe5e074c2d1873a5a68c0ff35e4c59667793fe07d
MD5 a706aa37c4a160f7a21318490267a018
BLAKE2b-256 a60534fb792bfb8f22186ed562d94fef475603cb36f6a366ef5aed4fbe7be757

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