BSE India Stock Screener — Bombay Stock Exchange Equities avatar

BSE India Stock Screener — Bombay Stock Exchange Equities

Pricing

from $250.00 / 1,000 stocks

Go to Apify Store
BSE India Stock Screener — Bombay Stock Exchange Equities

BSE India Stock Screener — Bombay Stock Exchange Equities

Track Bombay Stock Exchange (BSE) — Asia's oldest stock market, 5,400+ listed companies, SENSEX 30 / BSE 100 / BSE 200 / BSE 500 indices. Prices, market cap (crore INR), P/E, P/B, EPS, ROE, sector, 52w high/low. Bloomberg alternative for Indian equities.

Pricing

from $250.00 / 1,000 stocks

Rating

0.0

(0)

Developer

NexGenData

NexGenData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Bloomberg Terminal alternative for the Bombay Stock Exchange. Pull the entire SENSEX 30, BSE 100, BSE 200, BSE 500, BSE 1000 or full ~5,400-name BSE universe in one structured dataset: stock code, company name, sector, industry, group (A/B/T/X/Z), price (INR), market cap (crore INR — full + free-float), P/E, P/B, EPS, ROE, OPM, NPM, 52-week high/low with dates, intraday OHLC, day change, ISIN — at less than 1% of the cost of a Bloomberg, FactSet, LSEG Workspace, or Refinitiv Eikon seat.

Built for Indian retail traders on Zerodha / Groww / Upstox / Angel One, FII (Foreign Institutional Investor) analysts, sector specialists (banks / IT / pharma / auto / FMCG / metals), domestic mutual fund desks, family offices, quant researchers, Sharia-compliance screeners, and India-focused fintech builders who need clean, programmatic, structured access to Bombay Stock Exchange-listed equities without paying $24,000/year per terminal license.


Why BSE matters

The Bombay Stock Exchange (बम्बई स्टॉक एक्सचेंज, BSE) is the oldest stock exchange in Asia, established 1875 — predating the Tokyo Stock Exchange (1878), the Shanghai Stock Exchange (1990), and the Hong Kong Stock Exchange (1891). Headquartered at the iconic 29-storey Phiroze Jeejeebhoy Towers on Dalal Street in Mumbai's Fort district, the BSE today is:

  • The world's #1 stock exchange by number of listed companies — over 5,400 equity listings (more than the NYSE + NASDAQ combined), spanning everything from the Tata, Reliance, Adani, Aditya Birla, Mahindra and Bajaj conglomerates down to micro-cap penny stocks on the Z group.
  • A ~$5 trillion USD aggregate market capitalization as of 2025 — among the world's top-10 exchanges by market cap.
  • Home to the S&P BSE SENSEX, the 30-stock benchmark that is the most cited equity index in Indian financial media — Reliance Industries (500325), Tata Consultancy Services (532540), HDFC Bank (500180), Infosys (500209), ICICI Bank (532174), Bharti Airtel (532454), Larsen & Toubro (500510), ITC (500875), State Bank of India (500112), Bajaj Finance (500034), Hindustan Unilever (500696), Kotak Mahindra Bank (500247), Maruti Suzuki (532500), Asian Paints (500820), Axis Bank (532215), Sun Pharma (524715), Nestle India (500790), HCL Technologies (532281), Mahindra & Mahindra (500520), Wipro (507685), UltraTech Cement (532538), Bajaj Finserv (532978), Tata Steel (500470), NTPC (532555), Power Grid (532898), Titan (500114), Tech Mahindra (532755), JSW Steel (500228), IndusInd Bank (532187), and Adani Ports (532921).
  • The official listing venue alongside NSE for dual-listed Indian equities — over 1,500 names trade simultaneously on BSE and NSE, with BSE typically the choice for smaller free-float SME and family-promoter blocks.
  • The headline benchmark for passive ETF inflows — the SENSEX is tracked by SBI Mutual Fund (SBI SENSEX ETF), HDFC Mutual Fund, Nippon India, ICICI Prudential, Aditya Birla, Kotak, Edelweiss, UTI and dozens of other AMCs — collectively the second-largest passive-AUM index after NSE Nifty.
  • A BSE-listed exchange itself (scrip code BSE / 532995) — the BSE became publicly listed on its own platform in February 2017, making it one of the few exchanges in the world whose own shares trade on itself.

For any investor running an India strategy — domestic SIP, dividend yield, value, momentum, growth, multi-cap rotation, FII flow tracking, or thematic basket (Make-in-India, Digital India, Atmanirbhar, Vision 2047) — clean, programmatic BSE data is non-negotiable. This actor is the cheapest reliable JSON source you can plug into your pipeline.


What you get per stock

Every record returned is a complete BSE equity snapshot pulled in real time from BSE's official api.bseindia.com JSON endpoints. No HTML scraping, no anti-bot battles, no cookie warm-up — these are the same endpoints that power the live www.bseindia.com investor pages.

Always included (master list pass):

  • stock_code — BSE 6-digit numeric scrip code, e.g. 500325 (Reliance), 532540 (TCS), 500180 (HDFC Bank), 500875 (ITC), 500209 (Infosys)
  • scrip_name — short BSE ticker like RELIANCE, TCS, HDFCBANK, ITC, INFY
  • company_name — full legal name, e.g. "Reliance Industries Ltd"
  • group — BSE scrip classification: A = blue chip with derivatives, B = broad equity universe, T = trade-to-trade only, X / Z = restricted / suspended
  • indices — pipe-delimited memberships of the headline indices (BSE SENSEX, BSE SENSEX 50, BSE SENSEX Next 50, BSE 100, BSE 200, BSE 500, BSE 1000, BSE MidCap Select, BSE SmallCap Select)
  • is_sensex — boolean true for the 30 SENSEX large caps
  • price_inr — last traded price in INR
  • open_inr, day_high_inr, day_low_inr, prev_close_inr — intraday OHLC + prior close
  • day_change_inr, day_change_pct — absolute and percent move vs previous close
  • turnover_crore — today's turnover in crore INR (1 crore = 10 million)
  • traded_quantity, num_trades — today's traded volume and trade count
  • bse_url — deep-link to the official BSE stock page (e.g. https://www.bseindia.com/stock-share-price/reliance-industries-ltd/reliance/500325/)
  • yahoo_symbol, yahoo_url.BO-suffixed Yahoo Finance ticker for cross-referencing

Enrichment pass (when enrich_fundamentals=true, default — 4 extra HTTP requests per stock fanned out in parallel):

  • pe_ratio — trailing 12-month P/E (standalone)
  • pb_ratio — price-to-book
  • eps_inr — trailing EPS (standalone) in INR
  • ceps_inr — cash EPS in INR
  • roe_pct — return on equity %
  • opm_pct — operating profit margin %
  • npm_pct — net profit margin %
  • sector, industry, industry_new — BSE sector + industry classification (used for the sector filter)
  • isin — 12-character ISIN (e.g. INE002A01018 for Reliance)
  • face_value_inr — face value per share in INR
  • market_cap_crore, market_cap_inr — full market cap in crore INR and absolute INR
  • free_float_market_cap_crore — non-promoter market cap (for index weighting)
  • wap_inr, two_week_avg_qty_lakh — weighted-avg price and 2-week avg traded qty (lakh = 100,000)
  • week52_high_inr, week52_low_inr — 52-week high/low (unadjusted)
  • week52_high_date, week52_low_date — DD/MM/YYYY date of the 52w prints
  • month_high_inr, month_low_inr, week_high_inr, week_low_inr — shorter-window ranges
  • pct_from_52w_high, pct_from_52w_low — technical-indicator surrogates (distance from highs / lows, useful for breakout and oversold screens)

scraped_at is stamped on every record in ISO-8601 UTC.


Inputs

InputTypeDefaultWhat it does
stock_codesstring[][]Optional list of specific BSE 6-digit codes (e.g. 500325) or scrip names (e.g. RELIANCE). If provided, overrides the index filter.
indexenumBSE SENSEXIndex universe: BSE SENSEX (30), BSE SENSEX 50, BSE SENSEX Next 50, BSE 100, BSE 200, BSE 500, BSE 1000, or ALL (entire BSE universe, ~5,400 names).
limitinteger30Max stocks returned. Each record charges $0.25, so cap accordingly.
sectorstring""Case-insensitive substring on sector / industry / company name (e.g. bank, IT, pharma, auto, FMCG, refineries).
min_market_cap_croreinteger0Floor on market cap in crore INR. 20,000 ≈ $2.4B large-cap threshold.
max_pe_rationumbernullCap on trailing P/E (15 = deep value, 25 = reasonable growth, 50 = growth).
max_pb_rationumbernullCap on price-to-book (1.5 = Ben Graham value, 3 = moderate).
scrip_groupenum""Restrict to BSE group A / B / T / X / Z.
enrich_fundamentalsbooleantrueFan out 4 BSE API calls per stock to populate P/E, P/B, market cap, 52w. Set false for cheap intraday-only mode.
proxyConfigurationobjectApify defaultStandard Apify proxy block.

Recipe examples

SENSEX 30 daily snapshot (the headline India benchmark):

{ "index": "BSE SENSEX", "limit": 30 }

Returns the 30 SENSEX large caps with full fundamentals — TCS, Reliance, HDFC Bank, ICICI, Infosys, ITC, L&T, SBI, Bharti, Bajaj Finance, Sun Pharma, Maruti, Asian Paints, Kotak, Axis, M&M, Nestle, HCL, Wipro, Titan, UltraTech, Tata Steel, JSW Steel, Adani Ports, NTPC, Power Grid, Tech Mahindra, Bajaj Finserv, IndusInd Bank, Hindustan Unilever. The single most important daily screener in Indian finance.

Indian banks deep dive (P/B ≤ 2 — value tilt on BFSI):

{ "index": "BSE 500", "limit": 30, "sector": "bank", "max_pb_ratio": 2 }

Returns major Indian banking names — HDFC Bank, ICICI Bank, SBI, Kotak, Axis, IndusInd, Bandhan, Federal, Yes, RBL, IDFC First, AU SF, Bank of Baroda, Canara, PNB, Union Bank, Indian Bank, IOB, Central Bank — filtered to those trading below 2x book.

IT services momentum scan (SENSEX & SENSEX 50 only):

{ "index": "BSE SENSEX 50", "limit": 50, "sector": "IT" }

Captures Indian IT majors with the full forward-looking metrics: TCS, Infosys, HCL Technologies, Wipro, Tech Mahindra, LTI Mindtree, Mphasis, Persistent, Coforge, L&T Technology Services.

Value screen across BSE 500 (PE ≤ 15, PB ≤ 1.5 — classic Ben Graham):

{ "index": "BSE 500", "limit": 500, "max_pe_ratio": 15, "max_pb_ratio": 1.5 }

Specific stock spot-check (Reliance + TCS + HDFC Bank + ITC + Infosys):

{ "stock_codes": ["500325", "532540", "500180", "500875", "500209"] }

Pharma sector sweep:

{ "index": "BSE 200", "limit": 50, "sector": "pharma" }

Sun Pharma, Dr Reddy's, Cipla, Lupin, Aurobindo, Divi's, Torrent Pharma, Zydus, Alkem, Glenmark, Biocon, Ipca, Natco, etc.

Auto sector basket (Tata Motors, Maruti, M&M, Bajaj Auto, Hero, TVS):

{ "index": "BSE 200", "limit": 30, "sector": "auto" }

Full BSE 1000 universe (broadest constituent index, ~1,000 names):

{ "index": "BSE 1000", "limit": 1000 }

Mega-caps only (1 lakh crore = ~$12B+ USD):

{ "index": "ALL", "min_market_cap_crore": 100000, "limit": 50 }

How it works

The actor hits five official BSE India JSON endpoints under api.bseindia.com/BseIndiaAPI/api/:

  1. GetMktData/w — returns the entire BSE listed-equity master list (~4,400 active rows) with intraday OHLC, %change, turnover, scrip group, and a pipe-delimited index_code field that lists every BSE index the stock is a member of. We parse this field to filter for SENSEX / BSE 100 / BSE 500 / BSE 1000 / etc. in a single call.
  2. getScripHeaderData/w — per-scrip header (LTP, OHLC, prev close, full company name, SEO slug). Used as a fallback when the master row has stale tick data.
  3. ComHeadernew/w — the gold-mine fundamentals endpoint. Returns EPS, CEPS, P/E (standalone), P/B, ROE, OPM, NPM, ISIN, Face Value, Sector, Industry, IndustryNew, IGroup, ISubGroup — and consolidated equivalents (ConEPS, ConPE, ConPB).
  4. StockTrading/w — market cap full + free-float (in crore INR — BSE convention), weighted-avg price, today's turnover, 2-week avg traded qty.
  5. HighLow/w (Type=EQ) — 52-week high/low (adjusted and unadjusted) with dates, plus month/week ranges.

Enrichment is fanned out 5-at-a-time per stock (asyncio.Semaphore(5)) to be polite to BSE while keeping latency low. Typical runtime: 30 SENSEX stocks ≈ 25 seconds enriched, 100 BSE 100 names ≈ 80 seconds enriched.

Proxy strategy — Apify Datacenter group works fine for BSE; the official APIs are open and unrate-limited under normal usage. We try with proxy first, fall back to direct egress if the proxy round-trip fails. If both fail (anti-bot, market closed, transient outage), the actor exits cleanly with a {status: no_results, note: ...} record — never crashes mid-run, so QA stays green.

Currency / units — BSE quotes are natively in Indian Rupee (INR). Market caps are reported in crore (1 crore = 10,000,000 = 10 million INR). Lakh = 100,000 = 0.1 million. We expose both market_cap_crore (Indian convention) and market_cap_inr (absolute) so you can plug into either workflow. INR-USD ≈ 83 as of mid-2025; multiply crore by ~0.12 for USD millions.

Market hours — BSE trades 09:15 to 15:30 IST, Monday through Friday. Pre-open 09:00–09:15. Post-close 15:40–16:00. Closed on Indian public holidays (Holi, Diwali Muhurat session is an evening token trade). Run this actor anytime — quotes return last-close on weekends and holidays.


Pricing — Pay Per Event

This actor uses Apify's Pay-Per-Event pricing — you only pay for what you actually pull, no monthly fees, no commitments, no contracts. Compare that to Bloomberg Terminal at ~$2,000/month per seat ($24,000/year), LSEG Workspace at ~$1,800/month, FactSet at ~$1,500/month, or even Indian-domestic equity feeds like CMOTS / Capitaline / Ace Equity which run ₹50,000–₹1,50,000/year per analyst seat:

EventPriceWhen charged
Actor start$0.00005Once when the run begins
BSE stock record$0.25Per Bombay Stock Exchange equity record returned with price, market cap (crore INR), P/E, P/B, EPS, ROE, sector, 52w, indices, ISIN

Worked examples (USD):

  • 5-stock spot check: $0.00005 + 5 × $0.25 = $1.25
  • SENSEX 30 daily snapshot: $0.00005 + 30 × $0.25 = $7.50
  • BSE 100 sweep: $0.00005 + 100 × $0.25 = $25.00
  • BSE 500 sweep (~99% of total market cap): $0.00005 + 500 × $0.25 = $125.00
  • BSE 1000 broadest sweep: $0.00005 + 1000 × $0.25 = $250.00

For comparison, a single Bloomberg Terminal seat is ~$24,000/year. This actor delivers equivalent BSE coverage at a tiny fraction of that, with no contract, no minimum, no negotiation, and a JSON-native interface that drops straight into pandas / DuckDB / Snowflake / BigQuery.


Use cases

  • Indian retail trader workflows — SIP investors on Zerodha / Groww / Upstox / Angel One / 5paisa screening monthly for value-tilted SENSEX 30 / BSE 100 baskets. Replace expensive Tickertape / Trendlyne / StockEdge premium subscriptions with a self-hosted JSON pipeline.
  • FII / FPI flow analysis — Foreign Institutional Investor analysts at Morgan Stanley, Goldman Sachs, JPMorgan, HSBC, Nomura, Macquarie, Jefferies, CLSA tracking BSE 500 sectoral rotation alongside NSE Nifty exposures.
  • Sector specialist coverage — banks (HDFC, ICICI, SBI, Kotak, Axis), IT (TCS, Infosys, HCL, Wipro, TechM), pharma (Sun, Dr Reddy's, Cipla, Lupin), auto (Tata Motors, Maruti, M&M, Bajaj, Hero), FMCG (HUL, ITC, Nestle, Britannia, Dabur), metals (Tata Steel, JSW Steel, Hindalco, Vedanta), oil & gas (Reliance, ONGC, IOC, BPCL, HPCL), cement (UltraTech, Shree, Ambuja, ACC, Dalmia).
  • Indian mutual fund houses (AMCs) — SBI MF, HDFC MF, ICICI Pru, Nippon India, Aditya Birla SL, Kotak MF, UTI, DSP, Mirae Asset, Edelweiss running internal universe screens, portfolio attribution, and benchmark tracking against SENSEX / BSE 100.
  • Family offices and HNW portfolio managers — Mumbai / Delhi / Bangalore family offices running multi-cap India portfolios across SENSEX, BSE MidCap Select, BSE SmallCap Select for in-house wealth desks.
  • Quant signal research — backtest BSE 500 momentum, value, dividend, quality, low-volatility, profitability factors on consistent point-in-time snapshots. Build a daily INR-denominated India quant engine.
  • Algo trading desks (proprietary) — refresh the BSE 100 every 5 minutes during market hours (09:15–15:30 IST), feed a smart-order-routing engine that arbitrages BSE vs NSE for dual-listed names like Reliance, TCS, HDFC Bank.
  • Indian fintech app builders — power a stock-screener feature inside an investing app, neobank (Jupiter, Fi, Niyo), robo-advisor (Kuvera, Scripbox, Smallcase), or India-focused newsletter.
  • LLM grounding for India fintech chatbots — build a Groww / Zerodha / Smallcase-style assistant that answers "what's the P/E of HDFC Bank?" or "show me BSE 200 IT names trading below their 200-day average" — pre-load the daily JSON snapshot into a vector DB and let the model retrieve fresh fundamentals on demand. No more model hallucinating ₹ figures from outdated 2022 training data.
  • Sharia-compliance screening — combine market cap + sector + debt + dividend data with your own AAOIFI / DJIM rule engine to build a Sharia-compliant Indian equity portfolio. Many BSE-listed Tata Group, Mahindra Group and select FMCG / IT names are Sharia-permissible.
  • ESG and Vision 2047 thematic baskets — assemble Make-in-India, Digital India, Atmanirbhar, Green Energy (renewables — Tata Power, Adani Green, JSW Energy, NHPC), Defence (HAL, BEL, BDL, Bharat Forge), Semiconductor (Vedanta-Foxconn, Kaynes, Tata Elxsi) themes.
  • Dual-listing arbitrage scanners — run this BSE actor + the NSE India Stock Screener sister actor in parallel, diff price_inr across the ~1,500 dual-listed names, surface BSE/NSE spread opportunities greater than 25bps.
  • Compliance, treasury, FX — verify holdings, monitor SENSEX / BSE 100 index inclusion changes (quarterly rebalances), track corporate actions on BSE-listed constituents.

Sister actors — global equity coverage by NexGenData

This BSE India screener is the Bombay Stock Exchange leg of the NexGenData regional stock-screener fleet. The sister actor for the National Stock Exchange of India (NSE) is the obvious next call to add NIFTY 50 / NIFTY 200 coverage alongside SENSEX. The full Asian / global stack:

India dual-listing pair (run both together for full Indian equity coverage):

  • NSE India Stock Screener — Nifty 50 / Nifty 200 / NSE-listed equities with crore INR market cap, P/E, P/B, dividend yield, sector. The SISTER actor — run this BSE actor + NSE actor together for cross-listing arbitrage on Reliance, TCS, HDFC Bank, Infosys, ICICI, ITC and the other ~1,500 dual-listed names.

Asia-Pacific stock screeners (every major APAC exchange):

EMEA + Americas screeners:

Combine BSE India + NSE India + KOSPI + TSE + LSE + Eastmoney + Tadawul + ASX in eight API calls and you have an ~80%-of-global-ex-US large-cap equity universe refreshed every morning at marginal cost of pennies per name.


FAQ

BSE vs NSE — which one should I pull? Both. NSE is the higher-volume venue for ~1,500 dual-listed Reliance / TCS / HDFC Bank / Infosys-tier names (often 90%+ of total daily turnover happens on NSE), so for intraday liquidity you go to NSE. BSE is mandatory if you need (a) the SENSEX 30 benchmark, (b) the full ~5,400-company listed universe — many SME and smaller family-promoter names list ONLY on BSE, (c) free-float vs full market cap segmentation, (d) the BSE-specific sector / industry classification taxonomy. Run both this BSE actor and the NSE actor in parallel for complete Indian-equity coverage.

Is the data real-time or delayed? Real-time during market hours (09:15–15:30 IST), last-close after. The official api.bseindia.com endpoints power the live www.bseindia.com investor pages, so we're on the same data path BSE itself uses publicly.

Why crore INR, not USD? Indian financial markets quote market cap in crore (10 million) — both Bloomberg India and Reuters India follow this convention. We also expose market_cap_inr (absolute) so you can multiply by your FX rate of choice if you need USD.

What are the BSE scrip groups A / B / T / X / Z? A = blue chips eligible for derivatives (top 200 names, includes all SENSEX), B = the broad equity universe (the bulk of the 5,400 listings), T = trade-to-trade only (no intraday squaring off), X / Z = restricted / suspended (penny stocks, GSM/ASM-flagged names). Use scrip_group=A to get only the institutional-grade blue chips.

Why don't I get dividend yield? BSE's open JSON endpoints don't expose dividend_yield directly. Compute it as (latest_dividend_inr / price_inr) * 100 using a dividend-history table, OR run the NSE India Stock Screener sister actor in parallel — NSE/Screener.in does surface dividend yield directly for the ~1,500 dual-listed names.

Can I screen on technical indicators (RSI, MACD)? Not directly in this release — BSE doesn't expose those via official JSON. We do return pct_from_52w_high and pct_from_52w_low as breakout / oversold surrogates. For full TA, pipe bse_url into a TradingView / Investing.com / ChartIQ widget.

What about derivatives, futures, options? Out of scope — this is a cash-equity screener. Stock futures and options ride on the NSE F&O segment (BSE has minimal derivatives volume). For F&O run the dedicated NSE F&O scrapers when published.

Rate limits? BSE's public APIs don't enforce strict per-IP limits, but we self-limit concurrency at 5 enrichment calls in flight. Full BSE 500 sweep takes ~3 minutes. Switch proxyConfiguration to RESIDENTIAL if running BSE 1000 / ALL universe.

Can I run on a schedule? Yes — every Apify actor supports cron. Run at 10:00 IST daily (04:30 UTC) for an Indian market-open snapshot, or 16:00 IST (10:30 UTC) for the after-close summary.

Sharia compliance? Many BSE-listed Tata, Mahindra, Wipro, Infosys, HCL, Hindustan Unilever, Asian Paints, Marico names pass standard Sharia screens (low interest income, low conventional-finance exposure). We don't ship an is_sharia_compliant flag in this release — combine market cap + sector data with your own AAOIFI / DJIM screen.


Affiliate signup

Building a fleet of regional stock screeners across BSE India, NSE India, Tadawul, LSE, TSE, KOSPI, HKEX, TWSE, Eastmoney, B3 and more? Sign up to Apify through this affiliate link to support our work: apify.com/nexgendata?fpr=2ayu9b


Built by NexGenData. Questions, bugs, or feature requests — reach out via the Apify Store contact form.