# Tickertape India Stocks Scraper – Fundamentals & Screener (`data_daemon/tickertape-stocks-scraper`) Actor

Indian stock data from Tickertape as JSON: quotes, key ratios, scorecard, 10-year financials, quarterly results, promoter/FII/DII/MF shareholding history, dividends, corporate actions, analyst forecasts, MF holders, peers, NIFTY index constituents and a full screener. No login, pay per stock.

- **URL**: https://apify.com/data\_daemon/tickertape-stocks-scraper.md
- **Developed by:** [Daemon Data](https://apify.com/data_daemon) (community)
- **Categories:** Business, Developer tools, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 stock profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Tickertape India Stocks Scraper – Fundamentals, Shareholding, Screener

Get **NSE and BSE stock data** from [Tickertape](https://www.tickertape.in) as clean JSON, without fighting the exchanges' anti-bot walls. 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 / FII / DII / mutual-fund shareholding history**, dividends, corporate actions, announcements, **analyst forecasts**, top mutual-fund holders, peers and the investment checklist.

It also pulls **index constituents** (NIFTY 50, NIFTY BANK, NIFTY 500, SENSEX …) and runs the **Tickertape stock screener** with any filter you like.

No login, no proxy, no browser. Pay per stock.

### Why this scraper

- **Everything on the stock page in one call.** Financial statements come with readable field names (Total Revenue, Net Income, EPS, Free Cash Flow …), not just codes.
- **Shareholding trend, not a snapshot.** Six quarters of promoter, pledged, FII, DII, mutual-fund, insurance and retail percentages.
- **Screener with 100+ ratios.** Filter by market cap, P/E, P/B, dividend yield, ROE, returns, beta, sector and more, then optionally enrich every hit with the full profile.
- **Agent-ready.** Works as an MCP tool, so an AI agent can ask "which NIFTY 500 stocks have promoter holding above 60% and P/E under 15?" and get structured data.
- **Fast and cheap.** Pure JSON and server-rendered pages; a 50-stock index profile run finishes in about a minute.

### Who uses it

- Fintech and broker apps that need fundamentals without licensing an exchange feed.
- Quant and value investors backtesting Indian equities.
- Newsletter and Telegram-bot builders publishing screens and shareholding changes.
- Researchers tracking FII/DII flows, promoter pledging or mutual-fund positioning.

### Input

**Stocks mode** (default):

```json
{ "mode": "stocks", "stocks": ["RELIANCE", "TCS", "Infosys"] }
```

**Index mode**:

```json
{ "mode": "index", "indexSid": "NIFTY 50", "fullProfile": true }
```

**Screener mode**:

```json
{
    "mode": "screener",
    "screenerMatch": { "mrktCapf": { "g": 5000 }, "apef": { "l": 20 }, "divYield": { "g": 1.5 } },
    "screenerSortBy": "divYield",
    "fullProfile": false
}
```

| Field | Description |
| --- | --- |
| `mode` | `stocks`, `index` or `screener`. |
| `stocks` | Tickers, company names or Tickertape URLs. |
| `indexSid` | Index name (`NIFTY 50`, `NIFTY BANK`, `NIFTY 100`, `NIFTY 500`, `SENSEX`) or Tickertape id (`.NSEI`). |
| `screenerMatch` | Filter object. `g` = greater than, `l` = less than. Fields include `mrktCapf`, `apef`, `pbr`, `divYield`, `roe`, `pr1y`, `pr1w`, `4wpct`, `beta`, `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. |

### Output

Full profile (abridged):

```json
{
    "ticker": "RELIANCE",
    "name": "Reliance Industries Ltd",
    "sector": "Energy",
    "industry": "Oil & Gas - Refining & Marketing",
    "isin": "INE002A01018",
    "quote": { "price": 1309, "change": -3.2, "volume": 8123456 },
    "marketCapCr": 1780882,
    "pe": 22.0,
    "pb": 1.64,
    "dividendYield": 0.46,
    "roe": 8.9,
    "week52High": 1551,
    "week52Low": 1115,
    "scorecard": [{ "name": "Performance", "score": 5.2, "rank": 3 }, { "name": "Valuation", "score": 6.1 }],
    "shareholding": [{ "date": "2026-06-30", "promoter": 50.07, "foreignInstitutions": 19.1, "mutualFunds": 9.2, "retail": 7.4 }],
    "incomeStatementAnnual": [{ "period": "FY 2026", "Total Revenue": 1086181, "Net Income": 80775, "EPS": 59.7 }],
    "balanceSheetAnnual": [ "…" ],
    "cashFlowAnnual": [ "…" ],
    "incomeStatementQuarterly": [ "…" ],
    "analystForecast": { "analystCount": 34, "buyPercent": 88 },
    "dividends": { "past": [{ "exDate": "2026-06-05", "dividend": 6 }] },
    "corporateActions": { "past": [{ "type": "bonus", "value": "1:1", "exDate": "2024-10-28" }] },
    "mutualFundHoldings": [{ "fund": "ICICI Pru Large Cap Fund", "weightPercent": 5.75 }],
    "peers": [{ "ticker": "BPCL", "ratios": { "pe": 9.1 } }],
    "investmentChecklist": [{ "title": "Intrinsic Value", "state": "positive" }]
}
```

Index and screener rows are lightweight: ticker, name, sector, price, market cap and the requested ratios.

Download as JSON, CSV or Excel, or connect via API, webhooks and Google Sheets.

### Pricing

Pay per event:

- **Stock profile** – one charge per full profile record.
- **Quote row** – one charge per lightweight index or screener row.

Profiling all of NIFTY 50 costs about a dollar; a screener run of a few hundred rows costs cents.

### Tips

- Use `index` mode with `fullProfile: true` and a weekly schedule to maintain a fundamentals database for a whole index.
- Financial statement values are in ₹ crore, as on Tickertape.
- `shareholding` dates are quarter-ends; 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.

### 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?**

NIFTY 50, NIFTY BANK, NIFTY 100, NIFTY 200, NIFTY 500, NIFTY Next 50, midcap and smallcap indices, SENSEX, or any Tickertape index id.

**Can I run a screener?**

Yes. Pass any Tickertape filter object such as `{"mrktCapf": {"g": 5000}, "apef": {"l": 20}}`.

**Do I need a proxy or login?**

No.

### Related Actors by Daemon Data

- [India IPO Tracker](https://apify.com/data_daemon/india-ipo-tracker) – live IPO GMP, subscription and listing data for India
- [Hirist Jobs Scraper](https://apify.com/data_daemon/hirist-jobs-scraper) – India IT jobs with full descriptions and recruiter activity
- [IIMJobs Scraper](https://apify.com/data_daemon/iimjobs-jobs-scraper) – India management, finance and MBA jobs
- [Oracle Cloud HCM Jobs Scraper](https://apify.com/data_daemon/oracle-hcm-jobs-scraper) – every job on any Oracle Recruiting career site
- [Dubai Property Transactions](https://apify.com/data_daemon/dubai-property-transactions) – Dubai Land Department sales, mortgages and gifts
- [UK Gazette Insolvency Notices](https://apify.com/data_daemon/uk-gazette-insolvency-notices) – winding-up petitions, administrations and liquidations
- [Startup India DPIIT Directory](https://apify.com/data_daemon/startup-india-dpiit-scraper) – India's recognised startups with sector, stage and CIN

### 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.

### 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.

# Actor input Schema

## `mode` (type: `string`):

`stocks`: profiles for a list of tickers. `index`: all constituents of an index (NIFTY 50, NIFTY BANK, NIFTY 500 …). `screener`: run a stock screen with custom filters.

## `stocks` (type: `array`):

NSE tickers, company names or Tickertape URLs, e.g. `RELIANCE`, `TCS`, `Infosys`, `https://www.tickertape.in/stocks/hdfc-bank-HDBK`.

## `indexSid` (type: `string`):

For `index` mode. Accepts names (`NIFTY 50`, `NIFTY BANK`, `NIFTY 100`, `NIFTY 500`, `SENSEX`) or Tickertape index ids such as `.NSEI`, `.NSEBANK`.

## `screenerMatch` (type: `object`):

For `screener` mode. Tickertape filter object, e.g. `{"mrktCapf": {"g": 1000}, "apef": {"l": 20}, "divYield": {"g": 2}}` (g = greater than, l = less than). Common fields: mrktCapf (market cap ₹Cr), apef (P/E), pbr (P/B), divYield, roe, pr1y (1-year return %), 4wpct, beta, sector.

## `screenerSortBy` (type: `string`):

Field to sort screener results by (default `mrktCapf`).

## `screenerSortDesc` (type: `boolean`):

Sort screener results descending (default) or ascending.

## `screenerFields` (type: `array`):

Additional ratio fields to return per screener row (added to the defaults: subindustry, mrktCapf, lastPrice, apef, pbr, divYield, pr1w, pr1y, 4wpct, 52whigh, 52wlow, roe, beta).

## `fullProfile` (type: `boolean`):

Fetch the complete profile for every stock: 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 quote/ratio rows only. Defaults to on in `stocks` mode and off in `index`/`screener` mode.

## `maxItems` (type: `integer`):

Stop after this many records (0 = no limit).

## `proxyConfiguration` (type: `object`):

Optional. Not needed by default.

## Actor input object example

```json
{
  "mode": "stocks",
  "stocks": [
    "RELIANCE",
    "TCS",
    "HDFCBANK"
  ],
  "indexSid": "NIFTY 50",
  "screenerMatch": {
    "mrktCapf": {
      "g": 1000
    }
  },
  "screenerSortBy": "mrktCapf",
  "screenerSortDesc": true,
  "screenerFields": [],
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Stocks as JSON items in the default dataset (also downloadable as CSV, Excel, XML).

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "stocks": [
        "RELIANCE",
        "TCS",
        "HDFCBANK"
    ],
    "screenerMatch": {
        "mrktCapf": {
            "g": 1000
        }
    },
    "screenerFields": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_daemon/tickertape-stocks-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "stocks": [
        "RELIANCE",
        "TCS",
        "HDFCBANK",
    ],
    "screenerMatch": { "mrktCapf": { "g": 1000 } },
    "screenerFields": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("data_daemon/tickertape-stocks-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "stocks": [
    "RELIANCE",
    "TCS",
    "HDFCBANK"
  ],
  "screenerMatch": {
    "mrktCapf": {
      "g": 1000
    }
  },
  "screenerFields": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call data_daemon/tickertape-stocks-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_daemon/tickertape-stocks-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/LjrpONBpsSkqWrHs5/builds/agQHdp43zygqYjcUg/openapi.json
