NSE/BSE stock fundamentals API (Tickertape)
Indian Stock Market API is a pay-per-record Apify Actor by Daemon Data that returns NSE/BSE index constituents, ratio screener, full stock profiles as JSON, CSV or Excel. It costs $0.02 per stock profile with the default options ($20.00 per 1,000); no login to the source site, no proxy, no browser, and the same input runs from the Apify console, one REST call, Python, Node.js, n8n or an AI assistant through MCP.
Daemon Data Indian Stock Market API on Apify Listing as plain text
Checked on 18 Oct 2026
Tickertape listed 77 indices; a NIFTY 500 constituent run returns 500 rows for $1, and a full profile carries 10 years of statements plus the shareholding history. On 21 Oct 2026 five full profiles (Reliance, TCS, Infosys, HDFC Bank, ICICI Bank) took 17 seconds.
Why teams use 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.
- From an AI assistant:* add the MCP connector
https://mcp.apify.com/?tools=data_daemon/tickertape-stocks-scraperin Claude, ChatGPT, Cursor or VS Code and ask for the data in plain words.
Output fields
The most useful top-level fields with values from a real record; the full list is sid, ticker, name, exchange, isin, sector, industry, gic, tags, description, url, lastPrice, quote, marketCapCr, marketCapLabel, marketCapRank, pe, ttmPe, pb, eps, bookValuePerShare, dividendYield, roe, beta, risk, week52High, week52Low, change4wPct, change52wPct, avgVolume3m, shareholdersCount, industryPe, industryPb, industryDividendYield, ratiosRaw, keyRatios, scorecard, analystForecast, shareholding, shareholdingInsights, financialSummary, incomeStatementAnnual, incomeStatementQuarterly, balanceSheetAnnual, cashFlowAnnual, dividends, corporateActions, announcements, legalEvents, upcomingEvents, peers, mutualFundHoldings, investmentChecklist, investorPresentations, annualReports, aiSummary, scrapedAt, subindustry, 26wpct, 4wpct, 52wHigh, 52wLow, 52wpct, pr1w, domInstHldng, forInstHldng, promShrPled, mrktCapf, dbtEqt, apef, divYield, pbr, roce, indexSid, index, change1dPct, freeFloatPct. Per-field notes and the OpenAPI definition are on the Apify API page.
| Field | Type | Example |
|---|---|---|
ticker | string | "RELIANCE" |
name | string | "Reliance Industries Ltd" |
sector | string | "Oil & Gas - Refining & Marketing" |
industry | string | "Oil & Gas Refining & Marketing" |
isin | string | "INE002A01018" |
lastPrice | number | 1211.2 |
quote | object | {"price": 1211.2, "change": -3.8, "changePercent": -0.31, "volume":... |
marketCapCr | number | 1639061.09 |
pe | number | 20.29 |
pb | number | 1.51 |
dividendYield | number | 0.5 |
roe | number | 7.71 |
week52High | number | 1611.8 |
week52Low | number | 1152.2 |
scorecard | array | [{"name": "Performance", "tag": "Low", "colour": "red", "descriptio... |
Input and how to call it
A verified example input (it returned data on 2026-10-23):
{
"mode": "index",
"indexSid": "NIFTY 50"
}
One HTTP call starts a run, waits for it and returns the records (token from console.apify.com):
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 50"}'
Python: ApifyClient(token).actor("data_daemon/tickertape-stocks-scraper").call(run_input=...), full file python/tickertape-stocks-scraper.py. Node.js: node/tickertape-stocks-scraper.mjs. n8n: importable workflow.
AI assistant (MCP): add the remote server https://mcp.apify.com/?tools=data_daemon/tickertape-stocks-scraper with header Authorization: Bearer YOUR_APIFY_TOKEN in Claude, ChatGPT, Cursor or VS Code and ask for the data in plain words.
All input fields
| Field | Type | Meaning |
|---|---|---|
mode | string | stocks (default): full profiles for the tickers in stocks. index: all constituents of the index in indexSid. screener: rows matching screenerMatch. Set mode explicitly when you use indexSid or screenerMatch; when it is empty, the mode follows whichever of stocks, screenerMatch or indexSid you filled in. |
stocks | array | NSE tickers, company names or Tickertape URLs, e.g. RELIANCE, TCS, Infosys, https://www.tickertape.in/stocks/hdfc-bank-HDBK. Each full profile costs $0.02. Leave empty when you use index or screener mode. |
indexSid | string | For index mode. Any index Tickertape lists (77 on 2026-10-18), by name or Tickertape 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. Defaults to NIFTY 50. Each row costs $0.002 (or $0.02 with fullProfile). |
screenerMatch | object | For screener mode. Example, large caps with P/E under 20 and ROE over 15%: {"mrktCapf": {"g": 5000}, "apef": {"l": 20}, "roe": {"g": 15}} (g = greater than, l = less than). Field codes: mrktCapf market cap in ₹ crore, apef P/E, pbr P/B, divYield dividend yield %, roe, roce, dbtEqt debt/equity, pr1w 1-week return %, 4wpct 1-month, 26wpct 6-month, 52wpct 1-year return %, beta, promShrPled pledged promoter %, forInstHldng FII %, domInstHldng DII %, sector (e.g. {"sector": "Energy"}). Each row costs $0.002. |
screenerSortBy | string | Field code to sort screener results by (default mrktCapf). The sort field is always included in the output rows. |
screenerSortDesc | boolean | Sort screener results descending (default) or ascending. |
screenerFields | array | Additional Tickertape ratio codes to return per screener row. Every row already carries: subindustry, mrktCapf, lastPrice, apef, pbr, divYield, roe, roce, dbtEqt, pr1w, 4wpct, 26wpct, 52wpct, 52wHigh, 52wLow, beta, promShrPled, forInstHldng, domInstHldng. |
fullProfile | boolean | Fetch the complete profile for every stock ($0.02 each): quote, key ratios, scorecard, 10-year income statement, balance sheet, cash flow, quarterly results, shareholding history, dividends, corporate actions, announcements, analyst forecasts, mutual-fund holders, peers and checklist. Off = lightweight rows ($0.002 each) with price, market cap, P/E, P/B and dividend yield. Defaults to on in stocks mode and off in index / screener mode. |
maxItems | integer | Stop after this many records (0 = no limit). Useful to cap the cost of a NIFTY 500 or screener run. |
Price
$0.02 per stock profile ($20.00 per 1,000); $0.002 per quote / screener row ($2.00 per 1,000). List prices for Apify Free and Starter plans; Scale and Business plans pay 15% to 30% less.
| Event | Price | Per 1,000 | Charged when |
|---|---|---|---|
| Stock profile | $0.02 | $20.00 | One complete stock profile: quote, ratios, scorecard, 10-year financials, quarterly results, shareholding history, dividends, corporate actions, forecasts, MF holders, peers, checklist. |
| Quote / screener row | $0.002 | $2.00 | One lightweight index constituent or screener row. |
Worked example: the input above, capped at 50 stock profiles, costs at most $1. Apify's free plan includes $5 of usage a month, about 250 stock profiles; the Actor's own compute is included in the per-record price, and records skipped by filters, de-duplication or only-new mode are not charged.
What it is not for
Intraday tick data; derivatives; mutual fund NAVs. The data belongs to its publisher; the Actor reads public pages and endpoints and leaves out personal contact details.
Ready-made example pages
Saved inputs you can run with one click on Apify (Examples tab); each has its own page:
- NIFTY 50 stock list as JSON: price, market cap, P/E, P/B: All 50 NIFTY constituents with price, 1-day change, market cap, P/E, P/B, dividend yield, sector and free float as a lightweight JSON table from Tickertape.
{"mode": "index", "indexSid": "NIFTY 50", "fullProfile": false} - NIFTY Bank stocks: full fundamentals and shareholding: Complete profiles for every NIFTY Bank stock: 10-year financials, quarterly results, promoter/FII/DII shareholding history, dividends, forecasts and peers.
{"mode": "index", "indexSid": "NIFTY BANK", "fullProfile": true} - Indian stock screener: P/E under 20, dividend yield over 2%: Screen NSE stocks with market cap above ₹5,000 Cr, P/E below 20 and dividend yield above 2%, sorted by yield.
{"mode": "screener", "screenerMatch": {"mrktCapf": {"g": 5000}, "apef": {"l": 20}, "divYield": {"g": 2}}, "screenerSortBy": "divYield", "fullProfile": false} - NIFTY 500 stock list with sector, price and market cap: All NIFTY 500 constituents from Tickertape with ticker, company name, sector, last price, 1-day change, market cap, P/E, P/B, dividend yield and free float. Lightweight rows; switch on full profiles for financials and sh
{"mode": "index", "indexSid": "NIFTY 500", "fullProfile": false} - Indian stocks with ROE above 20% (screener): NSE stocks with market cap over ₹5,000 Cr, ROE above 20% and P/E under 30, sorted by ROE, with P/B, dividend yield, 1-week and 1-year returns from Tickertape's screener.
{"mode": "screener", "screenerMatch": {"mrktCapf": {"g": 5000}, "roe": {"g": 20}, "apef": {"l": 30}}, "screenerSortBy": "roe"} - NIFTY IT stocks list with price, market cap and P/E: All NIFTY IT index constituents from Tickertape with ticker, company name, last price, 1-day change, market cap, P/E, P/B, dividend yield and free float as a lightweight JSON table.
{"mode": "index", "indexSid": "NIFTY IT", "fullProfile": false} - NSE large-cap fundamentals as JSON (Tickertape, 5 stocks): Full Tickertape profiles for five NSE large caps (Reliance, TCS, Infosys, HDFC Bank, ICICI Bank) as JSON: quote, key ratios, scorecard, 10-year income statement, balance sheet, cash flow, shareholding pattern and peers.
{"mode": "stocks", "stocks": ["RELIANCE", "TCS", "INFY", "HDFCBANK", "ICICIBANK"], "fullProfile": true}
Questions buyers ask
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.
Alternatives, honestly
| Option | What it gives you | Where it falls short for this job |
|---|---|---|
| Exchange data feeds (NSE, BSE) | Official, real time | Licence fees and bot protection; no ratios or scorecards |
| Tickertape website and Pro | The same pages for a person | No bulk export or API |
| Python libraries that read exchange sites | Free | Break when the exchange changes; fundamentals and shareholding history are thin |