-
Notifications
You must be signed in to change notification settings - Fork 149
Description
Summary
The equity_history() function in nsepython fails because NSE has removed their free historical equity data API endpoint. The endpoint /api/historical/cm/equity now returns HTTP 404 (Resource not found).
Environment
- NSEPython Version: 2.97 (latest)
- Python Version: 3.13
- Operating System: Windows 11
- Date: January 8, 2026
Steps to Reproduce
from nsepython import equity_history
This call fails with KeyError: 'data'
result = equity_history('SBIN', 'EQ', '01-12-2025', '08-12-2025')
Actual Behavior
Traceback (most recent call last):
File "rahu.py", line 580, in equity_history_virgin
return pd.DataFrame.from_records(payload["data"])
~~~~~~~^^^^^^^^
KeyError: 'data'
Root Cause:
The URL https://www.nseindia.com/api/historical/cm/equity?symbol=SBIN&series=["EQ"]&from=01-12-2025&to=08-12-2025 returns HTTP 404 with HTML response:
<title>Resource not found</title> Resource not foundThe nsefetch() function catches the JSONDecodeError and returns {} (empty dict), which then causes payload["data"] to raise KeyError.
Expected Behavior
Either:
- The function should return an empty DataFrame with a clear warning message
- Or throw a more descriptive exception explaining the API is no longer available
Additional Context
What Still Works:
- index_history() for NIFTY 50, SENSEX, etc. works perfectly
- The endpoint /api/chart-databyindex for indices is still active
What's Broken:
- /api/historical/cm/equity endpoint for equity historical data (returns 404)