# BSE India Stock Screener — Bombay Stock Exchange Equities (`nexgendata/bse-india-stock-screener`) Actor

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.

- **URL**: https://apify.com/nexgendata/bse-india-stock-screener.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $250.00 / 1,000 stocks

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## BSE India Stock Screener — Bombay Stock Exchange Equities

**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

| Input | Type | Default | What it does |
|---|---|---|---|
| `stock_codes` | string[] | `[]` | Optional list of specific BSE 6-digit codes (e.g. `500325`) or scrip names (e.g. `RELIANCE`). If provided, overrides the index filter. |
| `index` | enum | `BSE SENSEX` | Index 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). |
| `limit` | integer | `30` | Max stocks returned. Each record charges $0.25, so cap accordingly. |
| `sector` | string | `""` | Case-insensitive substring on sector / industry / company name (e.g. `bank`, `IT`, `pharma`, `auto`, `FMCG`, `refineries`). |
| `min_market_cap_crore` | integer | `0` | Floor on market cap in crore INR. 20,000 ≈ $2.4B large-cap threshold. |
| `max_pe_ratio` | number | `null` | Cap on trailing P/E (15 = deep value, 25 = reasonable growth, 50 = growth). |
| `max_pb_ratio` | number | `null` | Cap on price-to-book (1.5 = Ben Graham value, 3 = moderate). |
| `scrip_group` | enum | `""` | Restrict to BSE group A / B / T / X / Z. |
| `enrich_fundamentals` | boolean | `true` | Fan out 4 BSE API calls per stock to populate P/E, P/B, market cap, 52w. Set false for cheap intraday-only mode. |
| `proxyConfiguration` | object | Apify default | Standard Apify proxy block. |

#### Recipe examples

**SENSEX 30 daily snapshot (the headline India benchmark):**
```json
{ "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):**

```json
{ "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):**

```json
{ "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):**

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

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

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

**Pharma sector sweep:**

```json
{ "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):**

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

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

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

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

```json
{ "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:

| Event | Price | When charged |
|---|---|---|
| Actor start | $0.00005 | Once when the run begins |
| BSE stock record | $0.25 | Per 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](https://apify.com/nexgendata/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](https://apify.com/nexgendata/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):**

- **[KOSPI Stock Screener](https://apify.com/nexgendata/kospi-stock-screener)** — South Korean KOSPI / KOSDAQ equities (Samsung, SK Hynix, LG, Hyundai, Naver, Kakao) with KRW market cap.
- **[TSE Japan Stock Screener](https://apify.com/nexgendata/tse-japan-stock-screener)** — Tokyo Stock Exchange & Nikkei 225 constituents in JPY (Toyota, Sony, Mitsubishi, SoftBank, Keyence, Fast Retailing).
- **[TWSE Taiwan Stock Screener](https://apify.com/nexgendata/twse-taiwan-stock-screener)** — Taipei Stock Exchange (TSMC, Hon Hai/Foxconn, MediaTek, Delta) in TWD.
- **[HKEX Hong Kong Stock Screener](https://apify.com/nexgendata/hkex-hongkong-stock-screener)** — Hang Seng / HSCEI / H-shares (Tencent, Alibaba, AIA, HSBC, Meituan) in HKD.
- **[Eastmoney China Stock Screener](https://apify.com/nexgendata/eastmoney-china-stock-screener)** — A-shares (SSE + SZSE) in CNY.
- **[Beijing Stock Exchange (BSE 北交所) Screener](https://apify.com/nexgendata/bse-beijing-stock-screener)** — Beijing Stock Exchange SME / innovation board (the BSE 50 index, distinct from Bombay BSE) in CNY.
- **[STAR Market China Screener](https://apify.com/nexgendata/star-market-china-stock-screener)** — Shanghai Star 50 tech innovation board.
- **[ChiNext China Screener](https://apify.com/nexgendata/chinext-china-stock-screener)** — Shenzhen ChiNext growth-enterprise board.
- **[SGX Singapore Stock Screener](https://apify.com/nexgendata/sgx-singapore-stock-screener)** — Straits Times Index in SGD (DBS, OCBC, UOB, SingTel, Keppel).
- **[ASX Australia Stock Screener](https://apify.com/nexgendata/asx-australia-stock-screener)** — ASX 200 in AUD (BHP, CBA, Westpac, CSL, Macquarie).
- **[SET Thailand Stock Screener](https://apify.com/nexgendata/set-thailand-stock-screener)** — SET 50 in THB.
- **[Bursa Malaysia Stock Screener](https://apify.com/nexgendata/bursa-malaysia-stock-screener)** — KLCI in MYR.
- **[IDX Indonesia Stock Screener](https://apify.com/nexgendata/idx-indonesia-stock-screener)** — IDX Composite in IDR.
- **[PSE Philippines Stock Screener](https://apify.com/nexgendata/pse-philippines-stock-screener)** — PSEi in PHP.
- **[HOSE Vietnam Stock Screener](https://apify.com/nexgendata/hose-vietnam-stock-screener)** — VN30 in VND.

**EMEA + Americas screeners:**

- **[Tadawul Saudi Stock Screener](https://apify.com/nexgendata/tadawul-saudi-stock-screener)** — TASI in SAR.
- **[LSE UK Stock Screener](https://apify.com/nexgendata/lse-uk-stock-screener)** — FTSE 100 in GBP.
- **[Xetra Germany Stock Screener](https://apify.com/nexgendata/xetra-germany-stock-screener)** — DAX in EUR.
- **[BIST Turkey Stock Screener](https://apify.com/nexgendata/bist-turkey-stock-screener)** — BIST 100 in TRY.
- **[JSE South Africa Stock Screener](https://apify.com/nexgendata/jse-southafrica-stock-screener)** — JSE Top 40 in ZAR.
- **[B3 Brazil Stock Screener](https://apify.com/nexgendata/b3-brazil-stock-screener)** — Bovespa in BRL.
- **[BMV Mexico Stock Screener](https://apify.com/nexgendata/bmv-mexico-stock-screener)** — IPC in MXN.
- **[TSX Canada Stock Screener](https://apify.com/nexgendata/tsx-canada-stock-screener)** — S\&P/TSX in CAD.

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](https://apify.com/nexgendata/nse-india-stock-screener)** 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](https://apify.com/nexgendata/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](https://apify.com/nexgendata?fpr=2ayu9b)**

***

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

# Actor input Schema

## `stock_codes` (type: `array`):

Optional list of specific BSE 6-digit numeric codes (e.g. 500325 = Reliance, 500209 = Infosys, 500180 = HDFC Bank, 500875 = ITC, 532540 = TCS) OR scrip names (e.g. RELIANCE, INFY). If provided, the actor returns ONLY these stocks and ignores the index/sector filters. Leave empty to screen by index.

## `index` (type: `string`):

Which BSE index universe to screen. SENSEX (top 30 large caps) is the headline Bombay benchmark, BSE 100 covers large + mid caps, BSE 500 covers ~99% of total listed market cap, BSE 1000 is the broadest constituent index. ALL screens the entire BSE listed equity universe (~5,400 names).

## `limit` (type: `integer`):

Maximum number of BSE stocks to return (1-2000). Sorted by index ordering. Each stock returned charges $0.25 per record so size accordingly. For a full SENSEX run, set 30. For BSE 500 sweep set 500.

## `sector` (type: `string`):

Optional substring filter applied to sector + industry + company name. Examples: 'Bank' for banking, 'IT' for tech (Infosys, TCS, Wipro, HCL), 'Pharma' for pharma majors, 'Auto' for autos (Maruti, Tata Motors, M\&M), 'FMCG' for consumer goods, 'Refineries' for oil & gas. Requires enrich\_fundamentals=true.

## `min_market_cap_crore` (type: `integer`):

Filter out stocks with market cap below this threshold in crore INR (1 crore = 10,000,000 INR ≈ $120k USD). Typical large-cap threshold is 20,000 crore (~$2.4B). Set 100,000 (1 lakh crore) for mega-caps only. 0 = no filter. Requires enrich\_fundamentals=true.

## `max_pe_ratio` (type: `integer`):

Filter to stocks with trailing P/E at or below this value (value-investing screen). Set 15 for deep value, 25 for reasonable growth, 50 for growth tilts. Leave empty to disable. Requires enrich\_fundamentals=true.

## `max_pb_ratio` (type: `integer`):

Filter to stocks with price-to-book at or below this value. Set 1.5 for classic Ben Graham value (P/B<1.5), 3 for moderate, 5 for growth-tilted. Leave empty to disable. Requires enrich\_fundamentals=true.

## `scrip_group` (type: `string`):

Filter by BSE scrip classification group. A = blue chips (top 200 SENSEX/large-caps with derivatives), B = the broad equity universe, T = trade-to-trade only, X / Z = restricted / suspended / penny stocks. Leave empty for any group.

## `enrich_fundamentals` (type: `boolean`):

When true (recommended), the actor fans out 4 additional BSE API calls per stock to populate P/E, P/B, EPS, ROE, OPM/NPM, market cap (full + free-float in crore INR), 52-week high/low, month/week ranges, sector, industry, ISIN. When false, only intraday OHLC + change + scrip group + index memberships are returned (~5x faster, ~5x cheaper but no fundamentals).

## `proxyConfiguration` (type: `object`):

Apify proxy configuration. Datacenter is usually sufficient since BSE's official JSON APIs are open. Switch to RESIDENTIAL only if you hit rate-limits on very large runs.

## Actor input object example

```json
{
  "stock_codes": [],
  "index": "BSE SENSEX",
  "limit": 30,
  "sector": "",
  "min_market_cap_crore": 0,
  "scrip_group": "",
  "enrich_fundamentals": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "stock_codes": [],
    "index": "BSE SENSEX",
    "limit": 30,
    "sector": "",
    "min_market_cap_crore": 0,
    "scrip_group": "",
    "enrich_fundamentals": true,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/bse-india-stock-screener").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "stock_codes": [],
    "index": "BSE SENSEX",
    "limit": 30,
    "sector": "",
    "min_market_cap_crore": 0,
    "scrip_group": "",
    "enrich_fundamentals": True,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/bse-india-stock-screener").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "stock_codes": [],
  "index": "BSE SENSEX",
  "limit": 30,
  "sector": "",
  "min_market_cap_crore": 0,
  "scrip_group": "",
  "enrich_fundamentals": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call nexgendata/bse-india-stock-screener --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/bse-india-stock-screener",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "BSE India Stock Screener — Bombay Stock Exchange Equities",
        "description": "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.",
        "version": "0.0",
        "x-build-id": "qVXFKgxreeOOJigO1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~bse-india-stock-screener/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-bse-india-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~bse-india-stock-screener/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-bse-india-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~bse-india-stock-screener/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-bse-india-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "stock_codes": {
                        "title": "Specific BSE codes (optional)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Optional list of specific BSE 6-digit numeric codes (e.g. 500325 = Reliance, 500209 = Infosys, 500180 = HDFC Bank, 500875 = ITC, 532540 = TCS) OR scrip names (e.g. RELIANCE, INFY). If provided, the actor returns ONLY these stocks and ignores the index/sector filters. Leave empty to screen by index.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "index": {
                        "title": "BSE index scope",
                        "enum": [
                            "BSE SENSEX",
                            "BSE SENSEX 50",
                            "BSE SENSEX Next 50",
                            "BSE 100",
                            "BSE 200",
                            "BSE 500",
                            "BSE 1000",
                            "ALL"
                        ],
                        "type": "string",
                        "description": "Which BSE index universe to screen. SENSEX (top 30 large caps) is the headline Bombay benchmark, BSE 100 covers large + mid caps, BSE 500 covers ~99% of total listed market cap, BSE 1000 is the broadest constituent index. ALL screens the entire BSE listed equity universe (~5,400 names).",
                        "default": "BSE SENSEX"
                    },
                    "limit": {
                        "title": "Number of stocks",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Maximum number of BSE stocks to return (1-2000). Sorted by index ordering. Each stock returned charges $0.25 per record so size accordingly. For a full SENSEX run, set 30. For BSE 500 sweep set 500.",
                        "default": 30
                    },
                    "sector": {
                        "title": "Sector / industry filter (case-insensitive)",
                        "type": "string",
                        "description": "Optional substring filter applied to sector + industry + company name. Examples: 'Bank' for banking, 'IT' for tech (Infosys, TCS, Wipro, HCL), 'Pharma' for pharma majors, 'Auto' for autos (Maruti, Tata Motors, M&M), 'FMCG' for consumer goods, 'Refineries' for oil & gas. Requires enrich_fundamentals=true.",
                        "default": ""
                    },
                    "min_market_cap_crore": {
                        "title": "Minimum market cap (crore INR)",
                        "minimum": 0,
                        "maximum": 100000000,
                        "type": "integer",
                        "description": "Filter out stocks with market cap below this threshold in crore INR (1 crore = 10,000,000 INR ≈ $120k USD). Typical large-cap threshold is 20,000 crore (~$2.4B). Set 100,000 (1 lakh crore) for mega-caps only. 0 = no filter. Requires enrich_fundamentals=true.",
                        "default": 0
                    },
                    "max_pe_ratio": {
                        "title": "Maximum P/E ratio",
                        "minimum": 0,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Filter to stocks with trailing P/E at or below this value (value-investing screen). Set 15 for deep value, 25 for reasonable growth, 50 for growth tilts. Leave empty to disable. Requires enrich_fundamentals=true."
                    },
                    "max_pb_ratio": {
                        "title": "Maximum P/B ratio",
                        "minimum": 0,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Filter to stocks with price-to-book at or below this value. Set 1.5 for classic Ben Graham value (P/B<1.5), 3 for moderate, 5 for growth-tilted. Leave empty to disable. Requires enrich_fundamentals=true."
                    },
                    "scrip_group": {
                        "title": "BSE scrip group (A / B / T / X / Z)",
                        "enum": [
                            "",
                            "A",
                            "B",
                            "T",
                            "X",
                            "Z"
                        ],
                        "type": "string",
                        "description": "Filter by BSE scrip classification group. A = blue chips (top 200 SENSEX/large-caps with derivatives), B = the broad equity universe, T = trade-to-trade only, X / Z = restricted / suspended / penny stocks. Leave empty for any group.",
                        "default": ""
                    },
                    "enrich_fundamentals": {
                        "title": "Fetch full fundamentals (P/E, P/B, EPS, market cap, 52w)",
                        "type": "boolean",
                        "description": "When true (recommended), the actor fans out 4 additional BSE API calls per stock to populate P/E, P/B, EPS, ROE, OPM/NPM, market cap (full + free-float in crore INR), 52-week high/low, month/week ranges, sector, industry, ISIN. When false, only intraday OHLC + change + scrip group + index memberships are returned (~5x faster, ~5x cheaper but no fundamentals).",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Datacenter is usually sufficient since BSE's official JSON APIs are open. Switch to RESIDENTIAL only if you hit rate-limits on very large runs.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
