How to scrape finance market data from BSE India using the Minexa.ai extension
- Minexa.ai

- Jul 14
- 4 min read
BSE India publishes live derivatives market data on its streamer page, and that data updates constantly. If you want to capture it, analyze it, or track it over time, copying rows manually is not a realistic option. This guide shows exactly how to extract it using the Minexa.ai Chrome extension, step by step, with no code required.
The target page is the BSE India equity streamer market watch at bseindia.com/eqstreamer/streamermarketwatch?flag=2. It lists the most active SENSEX options contracts with columns for option code, last traded price, open interest, volume, turnover, and more. Every row is a separate contract. The goal is to pull all of it into a clean, exportable dataset.
Watch the full tutorial first
The video below walks through the entire extraction from start to finish. It covers every step shown in this guide, so you can follow along visually before reading the detail.
Step-by-step extraction checklist
Step 1: Install the Minexa.ai extension and open the dashboard
If you have not installed Minexa.ai yet, add it from the Chrome Web Store. Once installed, open the Minexa.ai dashboard. You will land on the home page where your scraping jobs are managed.
This is your starting point. Everything you set up here is saved and reusable, so you only configure this scraper once.
Step 2: Navigate to the BSE India streamer page
Open a new tab and go to the BSE India market watch streamer URL. Wait for the page to fully load, including the live data table. The page uses JavaScript to render its content, which Minexa.ai handles automatically without any extra configuration on your part.
You should see the full list of active SENSEX options contracts with all columns visible before proceeding.
Step 3: Open the Minexa.ai extension popup and confirm the page
Click the Minexa.ai icon in your Chrome toolbar. The extension popup will open. Click the I am on the right page button to confirm that this is the page you want to scrape.
Minexa.ai will begin detecting the structure of the page, including the repeating rows in the data table and any pagination controls present.
Step 4: Review pagination detection and continue
The extension will show you what it detected for pagination. For this BSE India page, review the options shown and click Continue to proceed with the detected configuration.
Step 5: Choose list-only or list with detail pages
You will be asked whether you want to scrape the list as shown, or also follow each row link to extract detail page data. For market watch data, the list itself contains all the fields you need, so selecting the list-only option is sufficient here.
Step 6: Select simple scraping and start the job
Choose the simple scraping scenario. Minexa.ai will automatically highlight the full data container on the page, identifying all repeating rows as the extraction target.
Once the container is highlighted and confirmed, click Create scraper. Minexa.ai will identify every data point within each row automatically.
Step 7: Review all extracted data points
After the scraper is created, you will see a preview of all extracted columns with navigation controls to browse through them. This is where you can verify that fields like option_code, ltp, volume, and turnover_lac have all been captured correctly.
You do not need to specify which fields to extract. Minexa.ai surfaces all available data points automatically and you can review what was found before running the full job.
Step 8: Complete configuration and run the scraping job
Click through the API request screen if you want to see the code samples, then hit Complete Configuration. Your scraper is now saved. From the job list screen, click Run to start extraction.
Step 9: View and export your data
Once the job completes, your extracted data appears in a structured table. From here you can export to Excel or JSON with one click.
What the extracted data looks like
Here are two example rows from the extracted dataset, with field names cleaned up for readability:
[
{
"option_code": "SENSEX2670978500CE",
"change": "-54.09",
"close": "4,007.40/0.05",
"high": "105.00",
"low": "238.95",
"ltp": "-129.25",
"oi": "267.95",
"open": "369.00",
"sell_qty": "109.70",
"stock_symbol": "822062",
"turnover_lac": "94124",
"volume": "2,86,13,347.00",
"volume_traded": "18,16,850"
},
{
"option_code": "SENSEX2670978500PE",
"change": "23.95",
"close": "4,898.80/0.05",
"high": "235.00",
"low": "436.35",
"ltp": "104.50",
"oi": "439.30",
"open": "557.95",
"sell_qty": "540.85",
"stock_symbol": "822164",
"turnover_lac": "26689",
"volume": "2,22,33,114.00",
"volume_traded": "14,10,088"
}
]Understanding the key fields
The option_code field encodes a compound identifier per contract. For example, SENSEX2670978500CE embeds the underlying index (SENSEX), the expiry date (26709 in compressed format), the strike price (78500), and the contract type (CE for call, PE for put) all within one string. This means you can parse contract type and strike price directly from this field without needing separate columns.
The close field returns a slash-separated string such as 4,007.40/0.05. The value before the slash is the closing price of the contract. The value after the slash is a secondary figure, typically the tick size or minimum lot increment applicable to that contract.
The ltp field is the last traded price, returned as a signed numeric string. A negative value like -129.25 indicates the contract price declined from the prior session close, while a positive value reflects a gain. This sign convention makes it straightforward to filter for contracts moving in a specific direction without additional computation.
The turnover_lac field captures total traded value in Indian lakh units for each contract row. Comparing this field across rows gives a direct read on which strike prices are attracting the most liquidity in the current session, without needing to calculate anything separately.
The volume and volume_traded fields both relate to trading activity but represent different aggregation levels. The volume field returns a larger cumulative figure while volume_traded reflects the session-specific count, giving you two reference points for activity per contract.
Scheduling recurring extractions
Once your scraper is configured, you can set it to run on a schedule directly from the Minexa.ai dashboard. This is useful for capturing snapshots of the BSE India market watch at regular intervals throughout the trading day, building a time-series record of how open interest, volume, and price levels shift across sessions.
If you are working with other financial data sources, this post on scraping TradingView bond ideas with the Minexa.ai API covers a related extraction workflow worth reading alongside this one.

Comments