nsetools in Python
nsetools
is a Python package which one uses for fetching Indian NSE data. One can access the real-time price, index of the stock, and so on with its help programmatically.
This section goes into great detail regarding the features of the product along with how it could be used.
Installation
To use nsetools
, you need to install it. You can do this using pip
:
pip install nsetools
Main Features
Easy access through the nsetools
library for:
- Stock Quotes: Current data for any individual stock.
- Market Indices: All NSE indices such as NIFTY50, BANKNIFTY, etc.
- Top Gainers/Losers: A list of stocks that gain/lose the most for the day.
- Sectors Data: Data on sectoral indices.
- Stock List: Returns all stocks listed on NSE.
Key Classes and Methods
The library revolves around the Nse
class. Below are its most commonly used methods:
1. Initialize the NSE object
from nsetools import Nse
nse = Nse()
2. Fetching Stock Details
stock_data = nse.get_quote('INFY') # Fetch data for Infosys
print(stock_data)
Input: Stock symbol (e.g., INFY
for Infosys, RELIANCE
for Reliance).Output: A dictionary containing:
- Current Price:
lastPrice
- Day’s High/Low:
dayHigh
,dayLow
- 52-Week High/Low:
high52
,low52
- Volume:
quantityTraded
3. Get Index Data
nifty_data = nse.get_index_quote('nifty 50')
print(nifty_data)
- Input: Index name (e.g.,
nifty 50
,bank nifty
). - Output: A dictionary with key information about the index.
4. Top Gainers and Losers
Top Gainers
gainers = nse.get_top_gainers()
print(gainers)
Output: A list of dictionaries containing:
symbol
: Stock symbolltp
: Last traded pricenetPrice
: Percentage changetradedQuantity
: Total quantity traded
Top Losers
losers = nse.get_top_losers()
print(losers)
5. Verify if the Stock Market is Open
market_status = nse.is_valid_code('INFY')
print(market_status) # Returns True if market is open
6. List of All Stocks
stock_list = nse.get_stock_codes()
print(stock_list)
- Output: A dictionary of stock symbols and their full names.
Sample Use Case: Fetching and Displaying Stock Prices
Here’s an example of fetching the stock price of Reliance:
from nsetools import Nse
# Initialize the NSE object
nse = Nse()
# Get stock data
reliance_data = nse.get_quote('RELIANCE')
# Display relevant details
print("Company Name:", reliance_data['companyName'])
print("Last Traded Price:", reliance_data['lastPrice'])
print("Day's High:", reliance_data['dayHigh'])
print("Day's Low:", reliance_data['dayLow'])
print("52-Week High:", reliance_data['high52'])
print("52-Week Low:", reliance_data['low52'])
Advantages
- Simple and straightforward API for accessing NSE data.
- Real-time data fetching.
- Useful for building financial tools, stock analysis systems, and dashboards.
Limitations
- Unstable Updates: The library relies on NSE’s APIs, which are publicly available and can be changed anytime without notice.
- Compliance Issues: Please refer to NSE’s terms of service while using the data programatically.
- Not Actively Maintained:
nsetools
may not function with the latest updates on NSE’s API endpoints.
Alternatives
- yfinance: For broader financial market data (not limited to NSE).
- NSEpy: A more versatile library for Indian stock market analysis, supporting historical data retrieval.