financeindia
financeindia is a high-performance, lightweight Python library written in Rust for fetching Indian financial market data (NSE) with ease.
Data & ToS disclaimer:
financeindiascrapes public NSE/MCX pages. NSE and MCX can rate-limit or block clients at any time, and the optional MCX path impersonates a browser TLS fingerprint to get past Akamai — which may violate exchange terms of service. Use this library for personal/research use at your own risk, keep request rates low, and do not build commercial redistributors of exchange data on top of it.
Why financeindia?
- Blazing Fast: Powered by Rust, providing efficient data parsing and networking.
- Lightweight: Minimal dependencies, focus on performance and reliability.
- Cookie warm-up: The client periodically touches NSE's
all-reportspage to keep Akamai-issued cookies fresh. It is NOT a rate limiter or a guarantee against 429s — keep your own request pacing low. - Comprehensive: Access to equity lists, historical data, bhavcopies, indices, and real-time quotes.
Installation
pip install financeindia
The wheel ships as cp38-abi3 (one binary for Python 3.8+). Building from
source requires Rust 1.88 or newer (edition = "2024" + let-chains).
Quickstart
import financeindia
# Initialize the client
client = financeindia.FinanceClient()
# Recommended: initialize the session once
client._initialize_session()
# Get market status (returns a MarketStatusResponse object)
status = client.get_market_status()
print(status.market_state[0].status)
# Fetch historical data for a stock (returns a list of PriceVolumeRow objects)
data = client.price_volume_data("RELIANCE", "01-03-2026", "05-03-2026")
print(data[0].close_price)
# Fetch current quote (returns a dict)
quote = client.get_equity_quote("RELIANCE")
print(quote['tradeInfo']['lastPrice'])
# Fetch Corporate Financial Results
# Returns a list of dicts with filing metadata
results = client.get_financial_results("RELIANCE", "01-01-2025", "07-03-2026", "Annual")
# Parse the XBRL detail for a specific filing
if results:
xbrl_url = results[0]['xbrl']
financial_details = client.get_financial_details(xbrl_url)
print(financial_details) # Highly granular financial data points
Supported Endpoints (42+)
financeindia provides exhaustive coverage of NSE data. Methods return typed PyO3 model classes (attribute-accessible objects) and, when applicable, lists of those model instances (e.g., MarketStatusResponse, MarketStatus, FiiDiiActivity, ASMStock, GSMStock, Holiday, EquityInfo). See tests/test_client.py:13 as an example.
📊 Market Macro
get_market_status(): Current status of all market segments.get_holidays(): Trading holiday calendar.get_fii_dii_activity(): Daily FII and DII trading activity.get_market_turnover(): Market-wide turnover statistics.get_fii_stats(date): Detailed FII statistics (returns raw XLS bytes).
🔍 Surveillance & Monitoring
get_asm_stocks(): Additional Surveillance Measure (ASM) stocks (Long & Short term).get_gsm_stocks(): Graded Surveillance Measure (GSM) list.get_short_ban_stocks(): Filtered list of stocks under short-term surveillance.
📈 Equities
get_equity_list(): All active equities listed on NSE.price_volume_data(symbol, from, to): Historical price and volume.deliverable_position_data(symbol, from, to): Delivery percentage stats.bhav_copy_equities(date): Daily equity bhavcopy.bulk_deal_data(from, to): Tracking large institutional bulk deals.block_deals_data(from, to): Tracking block deal transactions.short_selling_data(from, to): Daily short selling activity.get_52week_high_low(type): Stocks hitting new highs or lows.get_top_gainers()/get_top_losers(): Intraday performance leaders.get_most_active(index): Most active securities by volume/value.get_advances_declines(): Market breadth analysis.get_monthly_settlement_stats(year): Monthly settlement data.get_equity_quote(symbol): Real-time price and order book.
📉 Indices
get_all_indices(): Real-time snapshot of all NSE indices.get_index_constituents(index): Stocks within a specific index (e.g., 'NIFTY 50').get_index_history(index, from, to): Historical index levels.get_index_yield(index, from, to): P/E, P/B, and Dividend Yield of indices.get_india_vix_history(from, to): Historical volatility index data.get_total_returns_index(index, from, to): Total Returns Index (TRI) data.
⛓️ Derivatives
get_option_chain(symbol, is_index): Full real-time option chain with Greeks.bhav_copy_derivatives(date, segment): Daily F&O/Currency/Commodity bhavcopy.get_fo_sec_ban(): Current F&O ban list (JSON).get_fo_ban_list(date): Historical F&O ban list (CSV).get_span_margins(date): Daily SPAN margin files for risk analysis.get_oi_limits_cli(date): Daily Client wise OI Limit (LST).get_participant_volume(date): Participant wise trading volumes.
🤝 Securities Lending & Borrowing (SLB)
get_slb_bhavcopy(date): Daily SLB market bhavcopy.get_slb_eligible(): Real-time list of securities available for SLB.get_slb_open_positions(series): Open positions analysis for a specific month.get_slb_series_master(): Helper to find active SLB series/months.
📊 Commodities & MCX
get_live_commodities_market(): NSE commodity futures market watch.get_nse_commodities_bhavcopy(date): NSE Commodities bhavcopy.get_mcx_bhavcopy(date, instrument='ALL'): MCX daily bhavcopy as a list of row dicts (futures & options). MCX's Akamai firewall requires the optionalcurl_cffipackage — install withpip install curl_cffi. Note the TLS-impersonation caveat in the disclaimer above.
🏢 Corporate Actions
get_corporate_actions(): Latest dividends, bonuses, splits, etc.get_financial_results(symbol, from, to, period): Metadata for financial filings.get_financial_details(xbrl_url): Deep-dive into XBRL filings (500+ data points).get_insider_trades(from, to): Detailed PIT (Prohibition of Insider Trading) disclosures.
Performance Optimizations
financeindia is built for high-scale quant pipelines:
- Direct CSV Parsing: CSV data is parsed into Python objects in Rust, without an intermediate Python-visible string round-trip.
- Concurrent-Safe: Uses
RwLockand optimized connection pooling for multi-threaded usage. - Blazing Fast: Up to 3x faster than traditional JSON-based wrappers.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details.
Metadata
Release files for financeindia 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| financeindia-0.2.2.tar.gz | 80.0 kB | Details |
Built distributions (wheels)
Total release size: 49.3 MB
Release files / financeindia-0.2.2.tar.gz
| Download URL | financeindia-0.2.2.tar.gz |
|---|---|
| Size | 80.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8629bcb8effc4df35fc97887adbdd80be67b440b6d075d5ec9b6177781f5ab74
|
|
BLAKE2b-256 checksum How to use checksums |
3310f1d0c429bf0fe058c46a4752217860050bf39d3ab4890a08fd5bb9327c2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-win_amd64.whl
| Download URL | financeindia-0.2.2-cp38-abi3-win_amd64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.8 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
0097072e921b75fc9101f53ed849ecdcacee66e7d74f45fb3dd4a72b9b4f5cc2
|
|
BLAKE2b-256 checksum How to use checksums |
d694dbacf1ecd21f5520ff87ed253d9d5d5bb3f4a95f5c8f5ed2562ac6e506e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-win32.whl
| Download URL | financeindia-0.2.2-cp38-abi3-win32.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.8 Windows x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
c3af8986a3311e20326ce406646049e902f4dbfdbd8246adbf948a771e38712c
|
|
BLAKE2b-256 checksum How to use checksums |
6cbde03202198031f52474f24e7036bd9113f822ccc68803c4df8fe49040400d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-musllinux_1_2_x86_64.whl
| Download URL | financeindia-0.2.2-cp38-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f0d25e8e03e94f42a6a8a264fead3a4ad16e424753e92c2623b32c08ea82b31b
|
|
BLAKE2b-256 checksum How to use checksums |
ac7302573067f78e9fbc8e387d7d7ac9ad24f8221097dead338eb132e9ff6ad9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-musllinux_1_2_i686.whl
| Download URL | financeindia-0.2.2-cp38-abi3-musllinux_1_2_i686.whl |
|---|---|
| Size | 3.5 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
544196defa67115925e613fe6f69d24555fea2788d63aee9fdca4a3de723b31d
|
|
BLAKE2b-256 checksum How to use checksums |
9852e9267e1ac202e124730b43d66bfe54dbc5c7f64dfb9d46eb383390c80af0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-musllinux_1_2_armv7l.whl
| Download URL | financeindia-0.2.2-cp38-abi3-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.8 Linux musl 1.2+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
f8f4a9de01d58e4212444f1cb8127199bde3295988fd8147d7bdd786e0169830
|
|
BLAKE2b-256 checksum How to use checksums |
dba12cbab04c3eed93e9db1298120477697f5aad2f76b558c0ff40b0ef6cc880
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-musllinux_1_2_aarch64.whl
| Download URL | financeindia-0.2.2-cp38-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 3.3 MB |
| Tags | CPython 3.8 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
47e55a62262b03468a5106c06c82547605f4cf6e3a008e37347f07c5164011c0
|
|
BLAKE2b-256 checksum How to use checksums |
6547c66c3bd0cf5189aad5fce4a0ef6eed4af5c22bdc64f735591c8b481c16d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-manylinux_2_34_x86_64.whl
| Download URL | financeindia-0.2.2-cp38-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.8 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
eb4d7be93049bc2aed5a8ec6c637019c1cf584b0e832e25a75c3c521227f7263
|
|
BLAKE2b-256 checksum How to use checksums |
7ccb0cf22503fda60ba4a4e7b79b7e4da823b73ecd0570303bce5bc118a012f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-manylinux_2_34_s390x.whl
| Download URL | financeindia-0.2.2-cp38-abi3-manylinux_2_34_s390x.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.8 Linux glibc 2.34+ IBM System/390x abi3 |
|
SHA-256 checksum How to use checksums |
c2ba556e7867f34ab2568684aa6f6e32e2918be5efb06243b0a9cbd6115e1688
|
|
BLAKE2b-256 checksum How to use checksums |
5cea3d4bffade9e1d6f31025931172c6fa8e0f509cdd01a6826f7db4e76ba0ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-manylinux_2_34_ppc64le.whl
| Download URL | financeindia-0.2.2-cp38-abi3-manylinux_2_34_ppc64le.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.8 Linux glibc 2.34+ PowerPC 64-le abi3 |
|
SHA-256 checksum How to use checksums |
310de7ed40c09c82c7e2dbb1a15212f3b2ba4e143d68c26637134fc289535fcd
|
|
BLAKE2b-256 checksum How to use checksums |
1606cbb8dd98e86c198e96c1810946da58f3931a347569dfaeb32a0be90ac364
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-manylinux_2_34_i686.whl
| Download URL | financeindia-0.2.2-cp38-abi3-manylinux_2_34_i686.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.8 Linux glibc 2.34+ x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
b0d9b2f6a8f1eaa501ccbed7da911a3bd618fd3cce4d3387ee12ac97f10007a3
|
|
BLAKE2b-256 checksum How to use checksums |
89032e3e5626647e51ab83b9c74bfcc6a1f35496f33444d876644f4823eade28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-manylinux_2_34_armv7l.whl
| Download URL | financeindia-0.2.2-cp38-abi3-manylinux_2_34_armv7l.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.8 Linux glibc 2.34+ ARMv7l abi3 |
|
SHA-256 checksum How to use checksums |
72021b63a7934ec02b78d99abd4a4010cb5679b1bd5cc7a06f68ce477676b7b4
|
|
BLAKE2b-256 checksum How to use checksums |
a5fc0fa9d8ff072e35edc4bb6c3b72d29f12ec280b74ee5769ec1c0252fee76b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-manylinux_2_34_aarch64.whl
| Download URL | financeindia-0.2.2-cp38-abi3-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 3.3 MB |
| Tags | CPython 3.8 Linux glibc 2.34+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
dd744180628ed1bc2a99b958dafb2c994eb49b5c4f64323d18acf9436769aa72
|
|
BLAKE2b-256 checksum How to use checksums |
77a9b65d5260a7c0c5df67d7e2319b1f62308c9546a355eba3bf7a2423a66650
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-macosx_11_0_arm64.whl
| Download URL | financeindia-0.2.2-cp38-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.8 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
db042c00c58fcd888c1b50b12d8ea498189d66e6556b21d8ea68d006cf077ea9
|
|
BLAKE2b-256 checksum How to use checksums |
9ee48ca157672831899e98467cb0acf88bd54020a6a751c22a7192a242dfd721
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / financeindia-0.2.2-cp38-abi3-macosx_10_12_x86_64.whl
| Download URL | financeindia-0.2.2-cp38-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.8 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
0a49878d93c973f26632a2b49d9b41a27694af2d8823b4cec97fce6cafc33caf
|
|
BLAKE2b-256 checksum How to use checksums |
e0fe9d2f90dbf8e79f0061e59506c36cfa0d33e5d688c7056a80949c7fe477a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|