Screener.in Indian Stock Fundamentals Scraper
Pricing
from $0.84 / 1,000 results
Screener.in Indian Stock Fundamentals Scraper
Indian stock fundamentals from Screener.in by NSE/BSE ticker: valuation ratios, up to 13 years of quarterly results, profit & loss, balance sheet, cash flow, ratio trends, shareholding pattern and recent announcements.
Pricing
from $0.84 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
11 days ago
Last modified
Categories
Share
Scrapes Indian stock fundamentals from Screener.in, the most widely used free fundamental-analysis tool for the Indian market: valuation ratios, up to 13 years of quarterly results, profit & loss, balance sheet, cash flow, ratio trends, shareholding pattern and recent stock-exchange announcements — by NSE or BSE ticker.
What you get
One STOCK row per ticker.
companyName · bseCode · nseCode · website · broadSector ·
sector · broadIndustry · industry · about (company description) ·
ratios (Market Cap, Current Price, High/Low, Stock P/E, Book Value,
Dividend Yield, ROCE, ROE, Face Value) · quarterlyResults ·
profitAndLoss · balanceSheet · cashFlow · ratiosOverTime
(Debtor Days, Inventory Days, ROCE %, and more, per period) ·
shareholdingPattern (Promoters/FIIs/DIIs/Public/Government % per quarter)
· recentAnnouncements (title, PDF/link URL, date — up to 20)
Each of the six financial tables (quarterlyResults, profitAndLoss,
balanceSheet, cashFlow, ratiosOverTime, shareholdingPattern) has
the same shape:
{"periods": [...], "rows": {"<line item>": [<value per period>, ...]}}Input
{"tickers": ["RELIANCE", "TCS", "INFY"],"consolidated": true,"includeAnnouncements": true}
There is no name search — a ticker IS the URL
screener.in/company/{TICKER}/ resolves directly, no search or
disambiguation step. This is not a shortcut this actor takes: screener.in's
own top-search-box query string (?q=) is robots.txt-disallowed, so
there is no policy-compliant way to search by company name at all. An
unrecognised ticker answers a genuine HTTP 404 (a small, distinct error
page) — never a silently-wrong company.
consolidated changes which figures you get, not just formatting
Consolidated (includes subsidiaries) and standalone (parent company only)
are genuinely different pages with genuinely different numbers — verified
on Reliance Industries: consolidated FY2015 sales ₹374,372 Cr. vs
standalone ₹328,013 Cr., same year, same company. consolidated: true
(default) is the more complete figure for a typical conglomerate; set to
false for the parent entity alone.
Read this before parsing the numbers
Figures are in Rs. Crores (1 crore = 10 million), Indian digit
grouping — e.g. "17,72,762" for a market cap, not "1,772,762". Both
conventions collapse to the same integer once commas are stripped, but
this actor does not attempt that conversion: every table cell is kept
as the exact string screener.in renders (percentages keep their trailing
%, blank cells are "-", negative figures keep a leading -). Convert
on your end rather than trust a silently-reformatted number — a value
that looked like it meant one thing while actually meaning another is
exactly the kind of trap this portfolio's actors are built to avoid, not
reproduce.
Known limits
1. Peer comparison is not included. The #peers section is present in
the page but carries zero rows server-side — the comparison table loads
via a separate client-side call this actor does not reverse-engineer for
v1 (a real feature, deferred rather than half-built).
2. Only the "Recent" announcements tab, not "Important" or full search. The default tab is server-rendered in the same page fetch (no extra request), but the other two tabs are separate AJAX calls not fetched here.
3. Expandable schedule breakdowns are not fetched. Some row labels on screener.in (e.g. "Sales" broken down by business segment) are expandable via a per-row AJAX call — an unbounded multiplier this actor does not chase; the top-level line item is what's returned.
4. Not every ticker was verified to have both a standalone and a consolidated version that meaningfully differ — a company with no subsidiaries would be expected to converge on the two, but this was checked only on a handful of large-cap tickers, not exhaustively.
Anti-bot posture
None observed. 8/8 TLS profiles clean, no interstitial. The actor still ships a rotating profile pool, a retry ladder and challenge-marker detection, and paces requests by default — a target being clean in local recon has not always meant the same from Apify's cloud egress elsewhere in this portfolio.
Policy
robots.txt (User-agent: *) names no ClaudeBot/anthropic-ai/GPTBot
group. It disallows the site's own search query string (?q=), ?sort=,
?limit=, ?page=, /user/*, and /company/source/quarter/* — this
actor never uses the search parameter (there is no policy-compliant way
to, see above) and never touches the other disallowed paths.