Indian Stock Market API – NSE/BSE Fundamentals (Tickertape)
Pricing
from $14.00 / 1,000 stock profiles
Indian Stock Market API – NSE/BSE Fundamentals (Tickertape)
NSE/BSE stock fundamentals API for fintech apps, PMS/RIA research and quant teams, built on Tickertape: 10-year financials, quarterly results, promoter/FII/DII/MF shareholding history, ratios, forecasts, peers, NIFTY index constituents and a custom ratio screener. $0.02 per full profile.
Pricing
from $14.00 / 1,000 stock profiles
Rating
0.0
(0)
Developer
Daemon Data
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
NSE and BSE fundamentals as an API, without an exchange data licence and without fighting NSE's bot protection. Built on Tickertape's public stock pages. One record per stock gives you the live quote, key ratios, Tickertape's scorecard, 10 years of income statement, balance sheet and cash flow, quarterly results, promoter / pledged / FII / DII / mutual-fund shareholding history, dividends, corporate actions, analyst forecasts, top mutual-fund holders and peers. It also returns index constituents (NIFTY 50, NIFTY NEXT 50, NIFTY 500, NIFTY BANK, NIFTY IT, SENSEX …) with price, market cap, P/E, P/B and dividend yield, and runs a custom ratio stock screener.
No Tickertape login, no proxy, no browser. Pay per stock.
What teams run, and what it costs
| You are | You schedule | Cost |
|---|---|---|
| Fintech / broker / advisory app | Full profiles for NIFTY 500, weekly | 500 × $0.02 = ~$10 per refresh |
| RIA / PMS research team | Full profiles for a 50-stock watchlist, weekly | ~$1 per week |
| Quant / backtesting | One-off full profiles for NIFTY 500 (10-year statements + shareholding history) | ~$10 once |
| Screener / newsletter | Screener run with your filter, daily | a few hundred rows × $0.002 = cents |
| Index tracker | NIFTY 500 constituent list with market cap and ratios, daily | 500 × $0.002 = $1 |
Results arrive as JSON, CSV or Excel, by API, webhook or Google Sheets, or through an AI agent as an MCP tool ("which NIFTY 500 stocks have promoter holding above 60% and P/E under 15?").
Quick start (Python)
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("data_daemon/tickertape-stocks-scraper").call(run_input={"mode": "stocks", "stocks": ["RELIANCE", "TCS", "HDFCBANK"]})for s in client.dataset(run["defaultDatasetId"]).iterate_items():latest = s["shareholding"][-1] if s["shareholding"] else {} # quarters are oldest firstprint(s["ticker"], s["pe"], s["roe"], latest.get("promoter"))
Why use this instead of building it
- The whole stock page in one record. Statement lines come with readable names (Total Revenue, Net Income, EPS, Free Cash Flow), not just codes.
- Shareholding as a trend. Six quarters of promoter, pledged, FII, DII, MF, insurance and retail percentages: compare quarters to spot FII exits or rising promoter pledges.
- Screener plus enrichment. Filter on market cap, P/E, P/B, dividend yield, ROE, ROCE, debt/equity, 1-week to 1-year returns, beta, promoter pledge and FII/DII holding, then pull the full profile for every match in the same run.
- Never a failed run on a typo. An unknown index name, a stock that does not exist or a screener with no matches finishes successfully with 0 rows and a status message that says why, so schedules and webhooks keep working.
- Fast. Index and screener rows arrive in seconds; a 50-stock full-profile run finishes in about a minute. Plain HTTP, no browser.
Input
Stocks mode (default when stocks is filled in):
{ "mode": "stocks", "stocks": ["RELIANCE", "TCS", "Infosys"] }
Index mode:
{ "mode": "index", "indexSid": "NIFTY NEXT 50", "fullProfile": false }
Screener mode:
{"mode": "screener","screenerMatch": { "mrktCapf": { "g": 5000 }, "apef": { "l": 20 }, "divYield": { "g": 1.5 } },"screenerSortBy": "divYield","fullProfile": false}
| Field | Description |
|---|---|
mode | stocks, index or screener. When empty, the mode follows whichever of stocks, screenerMatch or indexSid you filled in (in that order). |
stocks | NSE tickers, company names or Tickertape URLs. Empty input falls back to the example tickers RELIANCE, TCS, HDFCBANK. |
indexSid | Any of Tickertape's 77 indices by name or id: NIFTY 50, NIFTY NEXT 50, NIFTY 100, NIFTY 200, NIFTY 500, NIFTY BANK, NIFTY IT, NIFTY AUTO, NIFTY FMCG, NIFTY PHARMA, NIFTY METAL, NIFTY REALTY, NIFTY PSU BANK, NIFTY FIN SERVICE, NIFTY MIDCAP 100, NIFTY MIDCAP 150, NIFTY SMALLCAP 100, NIFTY SMALLCAP 250, SENSEX, BSE 500, or ids such as .NSEI, .NN50, .NIFTYIT, or the index page URL. Defaults to NIFTY 50. |
screenerMatch | Filter object. g = greater than, l = less than. Codes: mrktCapf (market cap ₹ crore), apef (P/E), pbr (P/B), divYield, roe, roce, dbtEqt, pr1w, 4wpct, 26wpct, 52wpct (1-year return %), beta, promShrPled, forInstHldng, domInstHldng, sector. |
screenerSortBy, screenerSortDesc, screenerFields | Sorting and extra ratio columns for screener rows. |
fullProfile | Fetch the complete profile per stock (default on in stocks mode, off in index / screener). |
maxItems | Cap on records (0 = no limit). |
Output
Full profile (abridged; values from a real run, lists shortened). Time series (shareholding, the statements) are ordered oldest first, so the latest quarter or year is the last entry:
{"ticker": "RELIANCE","name": "Reliance Industries Ltd","sector": "Oil & Gas - Refining & Marketing","industry": "Oil & Gas Refining & Marketing","isin": "INE002A01018","lastPrice": 1211.2,"quote": { "price": 1211.2, "change": -3.8, "changePercent": -0.31, "volume": 17225283 },"marketCapCr": 1639061.09,"pe": 20.29,"pb": 1.51,"dividendYield": 0.5,"roe": 7.71,"week52High": 1611.8,"week52Low": 1152.2,"scorecard": [{ "name": "Performance", "tag": "Low", "colour": "red", "description": "Hasn't fared well - amongst the low performers" },{ "name": "Valuation", "tag": "High", "colour": "red", "description": "Seems to be overvalued vs the market average" }],"shareholding": [{ "date": "2025-03-31", "promoter": 50.11, "promoterPledged": 0, "foreignInstitutions": 19.06, "mutualFunds": 9.21, "retail": 7.4 },{ "date": "2026-06-30", "promoter": 49.62, "promoterPledged": 0, "foreignInstitutions": 16.9, "mutualFunds": 9.93, "retail": 7.04 }],"incomeStatementAnnual": [{ "period": "FY 2017", "Total Revenue": 314717, "Net Income": 29901, "EPS": 22.72 },{ "period": "FY 2026", "Total Revenue": 1086181, "Net Income": 80775, "EPS": 59.69 },{ "period": "TTM", "Total Revenue": 1143448, "Net Income": 74727, "EPS": 55.22 }],"balanceSheetAnnual": [ "…" ],"cashFlowAnnual": [ "…" ],"incomeStatementQuarterly": [ "…" ],"analystForecast": { "analystCount": 24, "buyPercent": 100 },"dividends": { "past": [{ "exDate": "2026-06-05T00:00:00.000Z", "dividend": 6, "subType": "Final" }] },"corporateActions": { "past": [{ "type": "bonus", "value": "1:1", "exDate": "2024-10-28T00:00:00.000Z" }] },"mutualFundHoldings": [{ "fund": "ICICI Pru Large Cap Fund", "weightPercent": 5.46, "rank": 3 }],"peers": [{ "ticker": "IOC", "name": "Indian Oil Corporation Limited", "ratios": { "apef": 4.37, "pbr": 0.82, "ttmPe": 5.47, "divDps": 6.33, "52wpct": -15.16 } }],"investmentChecklist": [{ "title": "Intrinsic value", "state": "checked", "description": "Current price is less than the intrinsic value" }]}
Scorecard entries carry Tickertape's tag (Low / Avg / High, Good / Bad), colour and description; checklist state is checked, unchecked or none. Peer ratios use Tickertape's codes (apef P/E, pbr P/B, ttmPe, divDps, 52wpct, marketCap). The full record also has ratiosRaw, keyRatios, announcements, legalEvents, upcomingEvents, investorPresentations, annualReports and Tickertape's aiSummary.
Index row (lightweight, fullProfile: false):
{"index": "NIFTY IT","indexSid": ".NIFTYIT","ticker": "HCLTECH","name": "HCL Technologies Ltd","sector": "Information Technology","lastPrice": 1380,"change1dPct": 1.47,"marketCapCr": 373406.08,"pe": 22.44,"pb": 4.97,"dividendYield": 3.92,"roe": 22.98,"week52High": 1780.1,"week52Low": 1030,"freeFloatPct": 100.72,"url": "https://www.tickertape.in/stocks/hcl-technologies-HCLT"}
Screener rows echo Tickertape's field codes (mrktCapf, apef, pbr, divYield, roe, roce, dbtEqt, pr1w, 4wpct, 26wpct, 52wpct, 52wHigh, 52wLow, beta, promShrPled, forInstHldng, domInstHldng, subindustry, plus any screenerFields you add) and also carry lastPrice, marketCapCr, pe, pb, dividendYield, roe, week52High and week52Low, so the Output table reads the same for every mode.
Download as JSON, CSV or Excel, or connect via API, webhooks and Google Sheets.
Scheduling & automation
- Weekly fundamentals database. Save
{ "mode": "index", "indexSid": "NIFTY 500", "fullProfile": true }as a task, open Schedules and run it weekly. Each run writes a fresh dataset; keep the latest or diff two runs byticker. - Daily screener feed. Save a screener task (for example the ROE > 20% screen), schedule it daily after market close (
0 11 * * 1-5UTC = 16:30 IST) and add a webhook or the Google Sheets, Slack, Make, Zapier or n8n integration from the task's Integrations tab. - Sync call from your backend. One request returns the rows directly:
curl -X POST "https://api.apify.com/v2/acts/data_daemon~tickertape-stocks-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"mode":"index","indexSid":"NIFTY IT","fullProfile":false}'
- Safe for schedulers. A run never fails because of input: an unknown index, an unmatched stock or an empty screener ends as
SUCCEEDEDwith 0 rows and a status message such asIndex "NIFTY XYZ" is not known to Tickertape …. Only a Tickertape outage with nothing collected marks the run as failed.
Pricing
Pay per event:
- Stock profile – $0.02 per full profile record.
- Quote row – $0.002 per lightweight index or screener row.
Profiling all of NIFTY 50 costs $1; all of NIFTY 500 costs $10. A NIFTY 500 constituent list with market cap and ratios costs $1, and a screener run of a few hundred rows costs cents. Runs that return 0 rows charge nothing.
Tips
- Use
indexmode withfullProfile: trueand a weekly schedule to maintain a fundamentals database for a whole index;maxItemscaps the cost of a test run. - Financial statement values are in ₹ crore, as on Tickertape.
shareholdingdates are quarter-ends, oldest first; the last entry is the latest quarter. Compare the first and last entries to spot promoter or FII trend changes.- Screener filters use Tickertape's field codes; the lightweight rows echo those codes so you can discover more fields to filter on, and
screenerFieldsadds any other code Tickertape's screener supports. - Combine modes in two runs: screen for candidates with
fullProfile: false, then pass the tickers you like tostocksmode for full profiles.
FAQ
How much does it cost to get Indian stock fundamentals?
$0.02 per full stock profile (10 years of statements, quarterly results, shareholding history, dividends, forecasts, peers) and $0.002 per lightweight index or screener row. All of NIFTY 50 with full profiles costs $1.
Which indices are supported?
Any of the 77 indices Tickertape publishes, by name, Tickertape id or index URL: NIFTY 50, NIFTY NEXT 50, NIFTY 100, NIFTY 200, NIFTY 500, NIFTY BANK, NIFTY IT, NIFTY AUTO, NIFTY FMCG, NIFTY PHARMA, NIFTY METAL, NIFTY REALTY, NIFTY PSU BANK, NIFTY FIN SERVICE, NIFTY MIDCAP 100 / 150, NIFTY SMALLCAP 100 / 250, SENSEX, BSE 500 and the other NSE and BSE sector and strategy indices.
What do index rows contain?
Ticker, company name, sector, last price, 1-day change, market cap (₹ crore), P/E, P/B, dividend yield, ROE, 52-week high and low, and free float. Switch on fullProfile for statements, shareholding and forecasts.
Can I run a screener?
Yes. Pass any Tickertape filter object such as {"mrktCapf": {"g": 5000}, "apef": {"l": 20}}. A filter with no matches finishes successfully with 0 rows and a status message.
Do I need a proxy or login?
No.
Related Actors by Daemon Data
- Foundit Jobs Scraper – foundit.in (Monster India) jobs with full descriptions, only-new mode for daily feeds
- India IPO Tracker – live IPO GMP, subscription and listing data for India
- Hirist Jobs Scraper – India IT jobs with full descriptions and recruiter activity
- IIMJobs Scraper – India management, finance and MBA jobs
- Oracle Cloud HCM Jobs Scraper – every job on any Oracle Recruiting career site
- Dubai Property Transactions – Dubai Land Department sales, mortgages and gifts
- UK Gazette Insolvency Notices – winding-up petitions, administrations and liquidations
- Luma Events Scraper – lu.ma events by city, topic or organiser calendar, with hosts and ticket info
Support
Found a bug or need another field or source? Open an issue on the Issues tab; issues are usually answered within a day. Custom variants of this Actor are available on request. A quick review on the actor page helps other users find it.
Disclaimer
Data is collected from publicly available Tickertape pages for informational purposes only and is not investment advice. Respect the source website's terms of use.