
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
4 monthly users

Scrape Indian stock fundamentals from Screener.in: price, market cap, key ratios, quarterly results, profit & loss, balance sheet, cash flow, ratios, shareholding and peers for any NSE/BSE company, plus every company in a public screen or sector list. No login needed.
Get clean, structured fundamentals for any NSE/BSE-listed Indian company from Screener.in: price, market cap, key ratios, pros and cons, growth rates, and the full history of quarterly results, profit & loss, balance sheet, cash flow, efficiency ratios, shareholding and peers. Run any public screen or sector list and get every matching company with its columns. No login, no account, and you only pay per result.
4,74,007, ₹, Cr., % and (1,234) are parsed into plain numbers, and the original text is kept next to each value.INFY, 500209, Infosys and https://www.screener.in/company/INFY/consolidated/ all work; names are looked up with Screener.in's own search.| Field | Type | Description |
|---|---|---|
companies | array | NSE symbols, BSE codes, company names or Screener.in company URLs |
screenUrls | array | Public screen URLs (/screens/<id>/<name>/) or sector URLs (/market/IN08/) |
maxResults | integer | Companies per screen or sector list (default 20, 0 = all) |
financialsType | string | consolidated (default) or standalone |
includeSections | array | quarterlyResults, profitLoss, balanceSheet, cashFlow, ratios, shareholding, peers (default: all) |
screenDetails | boolean | Save a full company record for every screen / sector company (default false) |
proxyConfiguration | object | Proxy settings (datacenter by default) |
{
"companies": ["INFY", "TCS", "https://www.screener.in/company/HDFCBANK/consolidated/"],
"screenUrls": ["https://www.screener.in/screens/343087/fii-buying/"],
"maxResults": 50,
"financialsType": "consolidated",
"includeSections": ["quarterlyResults", "profitLoss", "shareholding", "peers"]
}
Every row has a recordType: company for a full company record, screenResult for a row of a screen or sector list.
| Field | Description |
|---|---|
symbol, name, url | NSE symbol (or BSE code), company name and Screener.in page |
financialsType, financialsNote | consolidated or standalone; a note when standalone was used because no consolidated figures exist |
currentPrice, priceChangePercent, priceAsOf | Last price in ₹, day change in %, and the price date |
marketCapCr, pe, bookValue, roce, roe, dividendYield, high52w, low52w | Headline ratios as numbers |
keyRatios | Every ratio of the page's ratio box as {raw, value} |
about, keyPoints, website, bseCode, nseCode, logoUrl | Company profile |
pros, cons | Screener.in's machine-generated strengths and weaknesses |
sector, industry, classification, indices | Sector hierarchy and the indices the stock belongs to |
growth | Compounded sales growth, profit growth, stock price CAGR and return on equity over 10/5/3 years and TTM |
quarterlyResults | One row per quarter (period like 2026-06-30), metrics as {raw, value}, plus pdfUrl of the results filing |
profitLoss, balanceSheet, cashFlow, ratios | One row per financial year (and TTM for profit & loss) |
shareholding, shareholdingYearly | Promoters, FIIs, DIIs, government, public, others and number of shareholders per quarter / year |
peers, peersMedian | The peer table (rank, name, symbol, URL and its columns) and the sector median row |
scrapedAt | When the record was scraped (UTC) |
| Field | Description |
|---|---|
screenName, screenUrl, listType | The screen or sector list and whether it is a screen or sector |
rank, name, symbol, url, companyId | Position in the list and the company |
metrics | The list's own columns, each as {raw, value, label} (e.g. Current Price, Price to Earning, FII holding) |
Example company record from a test run (trimmed to the last period of each table):
{
"recordType": "company",
"symbol": "INFY",
"name": "Infosys Ltd",
"url": "https://www.screener.in/company/INFY/consolidated/",
"financialsType": "consolidated",
"currentPrice": 1168,
"priceChangePercent": 3.3,
"priceAsOf": "21 Oct - close price",
"marketCapCr": 474007,
"pe": 15.2,
"roce": 40.0,
"roe": 31.9,
"dividendYield": 4.11,
"bookValue": 225,
"high52w": 1728,
"low52w": 980,
"website": "http://www.infosys.com",
"bseCode": "500209",
"nseCode": "INFY",
"sector": "Information Technology",
"industry": "Computers - Software & Consulting",
"pros": ["Stock is providing a good dividend yield of 4.11%."],
"cons": ["Promoter holding is low: 13.9%"],
"growth": {
"compoundedSalesGrowth": {"10Years": 11, "5Years": 12, "3Years": 7, "ttm": 11}
},
"quarterlyResults": [
{
"period": "2026-06-30",
"sales": {"raw": "48,211", "value": 48211},
"operatingProfit": {"raw": "11,409", "value": 11409},
"opm": {"raw": "24%", "value": 24},
"netProfit": {"raw": "7,775", "value": 7775}
}
],
"shareholding": [
{
"period": "Sep 2026",
"promoters": {"raw": "13.90%", "value": 13.9},
"fiis": {"raw": "27.44%", "value": 27.44},
"diis": {"raw": "42.66%", "value": 42.66},
"noOfShareholders": {"raw": "29,48,075", "value": 2948075}
}
],
"peers": [
{
"rank": 1,
"name": "TCS",
"symbol": "TCS",
"url": "https://www.screener.in/company/TCS/consolidated/",
"metrics": {"currentPrice": {"raw": "2529.00", "value": 2529.0, "label": "Current Price"}}
}
],
"scrapedAt": "2026-10-22T00:40:12+00:00"
}
Example screen row:
{
"recordType": "screenResult",
"screenUrl": "https://www.screener.in/screens/343087/fii-buying/",
"screenName": "FII Buying",
"listType": "screen",
"rank": 1,
"name": "Life Insurance",
"symbol": "LICI",
"url": "https://www.screener.in/company/LICI/consolidated/",
"companyId": 1275221,
"metrics": {
"currentPrice": {"raw": "392.05", "value": 392.05, "label": "Current Price"},
"priceToEarning": {"raw": "8.25", "value": 8.25, "label": "Price to Earning"},
"fiiHolding": {"raw": "1.55", "value": 1.55, "label": "FII holding"}
},
"scrapedAt": "2026-10-22T00:41:03+00:00"
}
You pay $7.50 per 1,000 results ($0.0075 per result). A result is one company record or one screen / sector row. Platform usage (compute and proxy traffic) is billed on top and is small: this is a light HTTP scraper that runs at 512 MB and needs no browser.
Example: a watchlist of 100 companies with full financials costs about $0.75 in results plus a fraction of a cent of usage. 1,000 results cost about $7.50 plus usage.
Is it legal to scrape Screener.in? The scraper only reads public pages that anyone can open without an account. You are responsible for how you use the data and for following Screener.in's terms. The data is not investment advice.
Do I need a Screener.in login or a proxy? No login. A proxy is used by default (datacenter), because Screener.in allows each address only a few requests at a time; you don't need to set anything up.
How many results can I get?
As many as the lists hold. Each company you enter is one record; each screen or sector returns up to maxResults companies (0 = all pages). Sector lists hold up to about 1,400 companies each.
What if a field is empty?
Some companies don't report every item (banks have no inventory days, many companies have no promoter group). Missing values are null, and the original text is always in raw.
Can I run custom screen queries?
Screener.in only runs free-text queries (e.g. Market Capitalization > 50000) for logged-in users. Save your screen on Screener.in and paste its public /screens/<id>/<name>/ URL instead.
Can I schedule it or use the API? Yes. Schedule runs (e.g. every evening after market close), call it through the API, and connect the results to webhooks and integrations.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
companiesarrayOptionalCompanies
NSE symbols (e.g. INFY, RELIANCE, M&M), BSE codes (e.g. 500209), company names (e.g. Infosys) or Screener.in company URLs (e.g. https://www.screener.in/company/INFY/consolidated/). Each one returns a full company record. A URL that ends in /consolidated/ or not decides the figures type for that company.
screenUrlsarrayOptionalScreens and sectors
Public Screener.in screen URLs (https://www.screener.in/screens///, e.g. https://www.screener.in/screens/343087/fii-buying/) or sector / industry URLs (e.g. https://www.screener.in/market/IN08/). Each returns the matching companies with the list's columns. Custom screen queries need a Screener.in account and are skipped: save the screen and paste its public URL instead.
maxResultsintegerOptionaldefault 20Max results per screen or sector
How many companies to take from each screen or sector list. 0 = all of them (Screener.in shows 25 per page; all pages are read). Does not limit the Companies list.
What each company record contains. Overview, price, key ratios, pros and cons, growth rates and sector are always included.
financialsTypeenumOptionaldefault "consolidated"Financials type
Consolidated (group-wide) or standalone (parent company only) figures. Companies without consolidated figures automatically get their standalone figures. A company URL that already says which one wins.
includeSectionsarrayOptionaldefault ["quarterlyResults","profitLoss","balanceSheet","cashFlow",…Sections to include
Financial sections per company record. Fewer sections give smaller records; Peer comparison costs one extra request per company.
screenDetailsbooleanOptionaldefault falseFull company data for screen and sector results
On: every company found in a screen or sector list is saved as a full company record (financials, shareholding, peers) with the screen's columns attached, instead of one summary row. Slower, one result per company either way.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Screener.in allows each address only a few requests at a time, so the scraper spreads requests over many proxy addresses. Datacenter proxies work well; residential (India) is used automatically if datacenter addresses keep being refused.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| recordType | string | |
| symbol | string | null | |
| name | string | null | |
| url | string | null | |
| financialsType | string | null | |
| financialsNote | string | null | |
| screenUrl | string | null | |
| screenName | string | null | |
| listType | string | null | |
| rank | number | null | |
| companyId | number | null | |
| warehouseId | number | null | |
| isConsolidated | boolean | null | |
| logoUrl | string | null | |
| about | string | null | |
| keyPoints | string | null | |
| website | string | null | |
| bseCode | string | null | |
| nseCode | string | null | |
| currentPrice | number | null | |
| priceChangePercent | number | null | |
| priceAsOf | string | null | |
| marketCapCr | number | null | |
| pe | number | null | |
| roce | number | null | |
| roe | number | null | |
| dividendYield | number | null | |
| bookValue | number | null | |
| high52w | number | null | |
| low52w | number | null | |
| keyRatios | object | null | |
| pros | array | null | |
| cons | array | null | |
| sector | string | null | |
| industry | string | null | |
| classification | object | null | |
| indices | array | null | |
| growth | object | null | |
| quarterlyResults | array | null | |
| profitLoss | array | null | |
| balanceSheet | array | null | |
| cashFlow | array | null | |
| ratios | array | null | |
| shareholding | array | null | |
| shareholdingYearly | array | null | |
| peers | array | null | |
| peersMedian | object | null | |
| metrics | object | null | |
| screenMetrics | object | null | |
| scrapedAt | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One saved company record or one screen / sector row. | $0.0075 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/screener-in-scraper').call({
"companies": [
"INFY",
"TCS"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/screener-in-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/screener-in-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Companies from the public FII Buying screen with the screen's columns.
Every company from a sector list saved with full financials, shareholding and peers.
Parent-only figures for HDFC Bank and TCS, quarterly results and peer table only.
A company name (Infosys) and a BSE code (500325, Reliance) resolved to full records.

Scrape Google Maps places for any search term and city, with no code or with one API call. A real run, its output, its log and its exact cost, plus the limits and the legal side.
Read the article
Paste an Amazon search or product URL into a ready-made Actor and get one row per product with price, ASIN, rating and review count. This guide covers the no-code steps, the API, ZIP code pricing, a real run and its cost.
Read the article
Scrape Google search results by query and country and get each results page as JSON: organic results with positions, People Also Ask and related searches. Run it without code or from Python, with a real run, the cost per page and Google's terms.
Read the articleScrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.