📈 A CLI tool to fetch historical OHLC data for stocks using Upstox API
Project description
📈 NiftyFetcher
A powerful CLI tool to fetch historical OHLC (Open, High, Low, Close) data for stocks using the Upstox API.
🚀 Features
- Fetch historical stock data with customizable time intervals
- Support for multiple time units (minute, hour, day, week, month)
- Export data to CSV or Excel formats
- Automatic handling of large date ranges with intelligent chunking
- Clean, user-friendly command-line interface
- Error handling with detailed feedback
📦 Installation
Install from PyPI:
pip install niftyfetcher
Or install from source:
git clone https://github.com/yash2002vardhan/niftyfetcher.git
cd niftyfetcher
pip install -e .
🛠️ Usage
Basic Syntax
niftyfetcher INSTRUMENT_KEY UNIT INTERVAL FROM_DATE TO_DATE FILE_TYPE
Arguments
| Argument | Description | Example Values |
|---|---|---|
INSTRUMENT_KEY |
Upstox instrument key for the stock | NSE_EQ|INE002A01018 |
UNIT |
Time unit for data | minutes, hours, days, weeks, months |
INTERVAL |
Interval within the unit | 1, 5, 15, 30 |
FROM_DATE |
Start date (YYYY-MM-DD) | 2024-01-01 |
TO_DATE |
End date (YYYY-MM-DD) | 2024-01-31 |
FILE_TYPE |
Output format | csv or xlsx |
📋 Examples
Fetch daily data for Nifty 50:
niftyfetcher "NSE_INDEX|Nifty 50" days 1 2024-01-01 2024-01-31 csv
Fetch 5-minute interval data:
niftyfetcher "NSE_EQ|INE002A01018" minutes 5 2024-01-15 2024-01-16 xlsx
Fetch weekly data for a year:
niftyfetcher "NSE_EQ|INE002A01018" weeks 1 2023-01-01 2023-12-31 csv
📊 Output
The tool generates files with the following naming convention:
{instrument_key}_{unit}_{interval}_{from_date}_{to_date}.{file_type}
Output contains columns:
timestamp- Date/time of the data pointopen- Opening pricehigh- Highest pricelow- Lowest priceclose- Closing price
🔧 Getting Help
niftyfetcher --help
📝 Requirements
- Python 3.8+
- Internet connection for API access
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
⚠️ Disclaimer
This tool is for educational and research purposes. Always verify data accuracy for trading decisions. The authors are not responsible for any financial losses.
🐛 Issues
If you encounter any issues, please report them on GitHub Issues.
⚠️ Note on Rate Limits
Please be mindful of the rate limits imposed by the Upstox API to avoid errors or temporary bans. While this tool includes basic safeguards (such as delays between requests), it is ultimately your responsibility to ensure you do not exceed Upstox's allowed request limits. The authors are not liable for any issues arising from rate limit violations.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file niftyfetcher-0.1.0.tar.gz.
File metadata
- Download URL: niftyfetcher-0.1.0.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a75b3143c64cf01bd379c4c63da4a8bff405c8527f4258510c327e9359899d5
|
|
| MD5 |
5a3d06364e7dff6b20e760c5976b0ad0
|
|
| BLAKE2b-256 |
36595aa66d7aefd2d29048b13afcaed8daaa6c57beb73a0b3f4ca180dd0e58d0
|
File details
Details for the file niftyfetcher-0.1.0-py3-none-any.whl.
File metadata
- Download URL: niftyfetcher-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6999919f431023643cd7b743e6a2bd5151e0921cfccd7f386172625b1e332c34
|
|
| MD5 |
3b088efb95f1607b0153aba90bb63a6d
|
|
| BLAKE2b-256 |
82fc3c3d6d20bb145bc542fbf07bf379046bb0d157b57240757a52e576f91c30
|