# 🇮🇳 India MCA Companies — CIN & Director Lookup (`nexgendata/india-mca-companies`) Actor

Search India MCA21 registry by name / CIN / entity type / status / state. Returns CIN, entity type, status, registered office, ROC, directors, paid-up & authorized capital INR, NSE/BSE listing. KYC, AML, M\&A — Bloomberg/BVD Orbis/Refinitiv/Tofler/Zauba alt.

- **URL**: https://apify.com/nexgendata/india-mca-companies.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 india mca company records

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## 🇮🇳 India MCA Companies Search — CIN, Director & Corporate Registry Lookup

Search India's **Ministry of Corporate Affairs (MCA21)** registry — the canonical record of every entity legally incorporated under the Companies Act 2013 (and the predecessor Companies Act 1956). Returns the registered legal name, **CIN** (Corporate Identification Number — India's universal 21-character corporate identifier), entity type, registry status, incorporation date, registered office state and city, **ROC** (Registrar of Companies office), NIC industry code, directors, paid-up and authorized capital in INR, last annual return date, and listing status on the **National Stock Exchange (NSE)** and **Bombay Stock Exchange (BSE)**.

India is the world's **fifth-largest economy by nominal GDP** (USD 4.1 trillion as of FY2025), the world's **fastest-growing major economy**, and home to the most active IPO market globally — over 240 mainboard IPOs raised more than ₹1.6 lakh crore (USD 19 billion) on NSE and BSE in calendar 2024 alone. MCA filings are the legal ground-truth for KYC / AML compliance, M&A due diligence, cross-border VC sourcing, FDI screening, KYB onboarding, investigative journalism, and Indian-counterparty sanctions screening. Every Reliance Industries, Tata Group entity, Infosys, HDFC Bank, ICICI Bank, Adani Group company, Mahindra, Wipro, Bharti Airtel, ITC, Bajaj Finance, Asian Paints, Larsen & Toubro, Maruti Suzuki, Hindustan Unilever, State Bank of India, Flipkart Pvt Ltd, Zomato, Paytm (One97 Communications), Ola, Byju's, OYO, Nykaa (FSN E-Commerce Ventures), and Stripe-Atlas-India-formed entity is filed with MCA — and so is every unicorn parent holdco, every Singapore- / Mauritius- / Cayman-bound flip-up structure that started with an Indian subsidiary, and every Section 8 non-profit. The CIN is to India what the UEN is to Singapore and the EIN is to the United States: the system-of-record identifier issued by the government, statutorily required on every letterhead, invoice, contract, and bank statement under Section 12(3) of the Companies Act 2013.

This Actor solves the MCA search problem: India's official **MCA21 portal** at `mca.gov.in` requires user-account login for the full company-master data view and full-text director search, the public **mca.gov.in/MinistryV2/companysearch.html** endpoint is captcha-protected for high-volume use, and the popular aggregators (**Tofler**, **Zauba Corp**) have anti-bot countermeasures that make programmatic lookup at scale unreliable. We combine a best-effort live probe of the MCA portal with a curated, **publicly-disclosed** universe of India's most-searched entities — covering the NSE Nifty 50, the Nifty Next 50, the BSE Sensex 30, the largest mid-caps, the major Indian unicorns (Flipkart, Paytm, Zomato, Nykaa, OYO, Byju's, Ola, PolicyBazaar, Razorpay, CRED, Meesho), the leading family conglomerates (Tata, Reliance, Adani, Birla, Mahindra, Bajaj, Godrej, Hinduja, Wadia), and a representative slice of public-sector undertakings (PSUs) like SBI, ONGC, NTPC, Coal India, and BHEL — so you always get clean, structured data even when MCA21 captcha-gates or Tofler / Zauba block scraping.

---

### What you get per row

Each dataset row is a single India MCA-registered entity:

- **`company_name`** — the canonical registered legal-entity name as filed with the Registrar of Companies (all-caps per MCA convention, including suffix `LIMITED`, `PRIVATE LIMITED`, `LLP`)
- **`cin`** — Corporate Identification Number, India's 21-character system-of-record identifier (format: listing-status + 5-digit NIC industry code + 2-letter state code + 4-digit year + 3-letter type code + 6-digit registration number — e.g. `L17110MH1973PLC019786` for Reliance Industries Ltd, decoded as: Listed + Textiles industry + Maharashtra + 1973 incorporation + Public Limited Company + reg. no. 019786). Statutorily required on every Indian invoice and contract under Section 12(3) of the Companies Act 2013.
- **`entity_type`** — `PUBLIC_LIMITED` (CIN starts with `L` — listed and unlisted public companies, the dominant form for NSE/BSE issuers), `PRIVATE_LIMITED` (CIN starts with `U` and the type code is `PTC` / `PRT` — the dominant form for startups, family businesses, and SMEs), `OPC` (One Person Company under Section 2(62) of the Companies Act 2013), `LLP` (Limited Liability Partnership under the LLP Act 2008 — uses LLPIN identifier, not CIN), `SECTION_8` (non-profit under Section 8 of the 2013 Act, formerly Section 25 of the 1956 Act), `FOREIGN` (foreign company registered under Section 380 of the Companies Act 2013)
- **`status`** — `ACTIVE` (currently active and compliant), `STRIKE_OFF` (struck off the register under Section 248 of the Companies Act 2013 for non-filing of annual returns), `UNDER_LIQUIDATION` (currently in liquidation under the Insolvency and Bankruptcy Code 2016 / IBC), `DORMANT` (registered but declared dormant under Section 455), `AMALGAMATED` (merged into another entity via NCLT order), `CONVERTED` (converted entity type)
- **`incorporation_date`** — ISO format (`YYYY-MM-DD`) — the date the entity was first registered with the Registrar of Companies
- **`registered_office_state`** — the Indian state of the registered office (e.g. `Maharashtra`, `Karnataka`, `Delhi`, `Gujarat`, `Tamil Nadu`, `Telangana`)
- **`registered_office_city`** — the city of the registered office (e.g. `Mumbai`, `Bengaluru`, `New Delhi`, `Ahmedabad`, `Chennai`, `Hyderabad`, `Gurugram`)
- **`roc`** — the Registrar of Companies office under whose jurisdiction the entity is filed (one of 22 ROCs: ROC-Mumbai, ROC-Bangalore, ROC-Delhi, ROC-Ahmedabad, ROC-Chennai, ROC-Hyderabad, ROC-Kolkata, ROC-Pune, ROC-Jaipur, ROC-Kanpur, ROC-Chandigarh, etc.)
- **`industry`** — text description of the NIC (National Industrial Classification) code embedded in the CIN
- **`directors`** — list of currently registered directors as filed in the most recent DIR-12 form / annual return. Each Indian director has a `DIN` (Director Identification Number) under Section 153 of the Companies Act 2013.
- **`paid_up_capital_inr`** — paid-up share capital in Indian Rupees (issued and paid)
- **`authorized_capital_inr`** — authorized share capital in Indian Rupees (the upper bound on paid-up capital under the Memorandum of Association)
- **`last_annual_return_date`** — ISO date of the most recent Annual Return (Form MGT-7 / MGT-7A) filing
- **`listed_on_exchange`** — `NSE`, `BSE`, `BOTH`, or `NONE` — whether the entity is actively listed on India's National Stock Exchange and/or Bombay Stock Exchange
- **`data_source`** — `mca.gov.in MCA21 + NSE/BSE listings + curated MCA disclosures`

---

### 8 use cases

1. **KYC / AML compliance for Indian counterparties** — India is FATF-compliant and a RBI / SEBI-regulated jurisdiction. Before onboarding an Indian counterparty, verify the entity is `ACTIVE` in MCA, cross-check the CIN against the company's invoice header (statutorily required under Section 12(3)), and confirm the directors match the names on KYC documents. If the CIN doesn't resolve or status is `STRIKE_OFF`, that's an immediate red flag — common with shell entities used for trade-finance fraud or hawala layering.

2. **M&A due diligence on Indian targets** — Hunt every entity matching a parent company's brand keyword to find Indian subsidiaries, holding companies, regional HQs, and offshore parent holdcos. Many Indian conglomerates (Tata, Reliance, Adani, Birla) operate dozens of subsidiaries — the CIN structure makes ownership-tree mapping trivial because the state + year + type are all encoded in the identifier.

3. **Cross-border VC sourcing — Indian unicorn pipeline** — Indian founders incorporating an Indian Pvt Ltd before a Singapore / Cayman flip-up show up in MCA21 *months* before any Tracxn, Crunchbase, or Inc42 entry. Filter on `incorporation_date_from` within the last 90 days and `entity_type = PRIVATE_LIMITED` and `state = KA` (Bengaluru) or `state = MH` (Mumbai) or `state = HR` (Gurugram) to surface fresh Indian-incorporated startups the moment they exist.

4. **Bloomberg / S&P Capital IQ / Bureau van Dijk Orbis India / Refinitiv / Tofler Pro / Zauba Corp Pro alternative** — Bloomberg, BVD Orbis India, Refinitiv, Tofler Pro, and Zauba Corp Pro charge enterprise prices for the same CIN + director + DIN + paid-up capital + ROC data that's public under the Companies Act 2013. Two orders of magnitude cheaper at $0.10/company.

5. **KYB onboarding pipelines for Indian SMB merchants** — Fintech and SaaS companies onboarding Indian SMB merchants need to verify the legal-entity name, CIN, GSTIN (the CIN is the bridge to the GSTIN), and director list. Pipe the output straight into Snowflake / BigQuery as the source-of-truth for the KYB step. Especially relevant for Razorpay, Cashfree, Stripe India, PhonePe Business, Khatabook, and RBI Account Aggregator onboarding flows.

6. **Sanctions / PEP screening — India focus** — Cross-reference the `directors` field (and embedded DINs) against OFAC SDN, EU consolidated, UK HMT, and Indian regulatory action lists (SEBI Debarred Entities, SFIO orders, NCLT defaulter lists). India has a public Wilful Defaulter list maintained by the RBI — a director name match warrants escalation.

7. **Journalism — Indian beneficial-ownership tracking** — MCA filings are the primary discovery layer for investigative work on Indian corporate structures, especially around shell companies, post-demonetization shell strikes, and the post-2018 Significant Beneficial Owner (SBO) disclosure regime under Section 90 of the Companies Act 2013. Reporters at The Wire, Reuters India, Mint, ET Prime, and OCCRP use MCA's CIN-by-director graph as the entry point.

8. **NSE / BSE listed-company research** — Use `listed_only = true` to restrict to NSE/BSE issuers and map directors interlocks, ROC concentration, paid-up capital distributions, and the auditor concentration (Big Four vs. mid-tier vs. local) on Indian listed companies — feeding academic, regulatory, or activist-investor research.

---

### How this Actor compares (vs. enterprise alternatives)

| Feature | This Actor | Bloomberg BBG | BVD Orbis India | Refinitiv | Tofler Pro | Zauba Corp Pro |
|---|---|---|---|---|---|---|
| **MCA India coverage** | Yes — curated top entities + MCA probe | Yes (legal entities, partial) | Yes (Orbis India module) | Yes (corporate-records add-on) | Yes — India-only specialist | Yes — India-only specialist |
| **CIN lookup** | Native field | Bloomberg Identifier (BBG GUID), not native CIN | Orbis BvD ID + CIN | Refinitiv PermID + CIN | CIN native | CIN native |
| **DIN (Director ID) returned** | Implicit in directors list | No | Premium tier | KYC tier | Yes | Yes |
| **NSE / BSE listing status** | Returned | Yes (Bloomberg ticker) | Yes (Orbis premium) | Yes (Refinitiv tickers) | Yes | Yes (partial) |
| **Paid-up + authorized capital INR** | Returned | Listed companies only | Yes (Orbis premium) | Yes (Refinitiv premium) | Yes | Yes |
| **ROC office** | Returned | Not native | Yes (Orbis India) | Not native | Yes | Yes |
| **Pricing** | **$0.10 / company** | ~$2,000/user/month + $24k Bloomberg Terminal | ~$50k+/seat/year Orbis | ~$30k+/seat/year Refinitiv | ~$₹50k+/seat/year Tofler Pro | ~₹25k+/seat/year Zauba Corp Pro |
| **Pay-as-you-go** | Yes — Apify metered | No (annual) | No (annual) | No (annual) | No (subscription) | No (subscription) |
| **No login / no contract** | Yes | No | No | No | No (registration) | No (registration) |
| **API-first** | Yes — Apify REST + MCP | Bloomberg API (proprietary) | BvD WebServices (XML) | Refinitiv Data Platform | Tofler API (rate-limited) | Zauba API (limited) |
| **Pipe to Snowflake / BigQuery** | One-line connector | Bloomberg Data License (separate $$$) | BvD WebServices (custom ETL) | Refinitiv DataStream | CSV exports | CSV exports |
| **Cost for 1,000 India companies** | **$100** | $2,000+/month seat | ~$4,000+ annualized | ~$2,500+ annualized | ~$600+ annualized | ~$300+ annualized |

**Bottom line:** Bloomberg / BVD Orbis / Refinitiv are the right answer if you need world-spanning coverage of 400M+ legal entities across 200 jurisdictions and you already have an enterprise contract. Tofler Pro and Zauba Corp Pro are the right answer if you need deep Indian-only coverage with NCLT case history and director-network graphs and you're willing to subscribe. This Actor is the right answer if you need clean, structured MCA India data for compliance, M&A, KYB onboarding, or journalism — and you want to pay $0.10 per row, with no login, no contract, and a one-line pipe into Snowflake / BigQuery / dbt / Hex / your AI agent.

---

### Input

- **`search_query`** — partial-match name search (case-insensitive). Example: `Reliance`, `Tata`, `Infosys`, `Flipkart`, `HDFC`
- **`cin`** — exact-match 21-character CIN (e.g. `L17110MH1973PLC019786`). Takes precedence over `search_query`.
- **`entity_type`** — `ALL` | `PUBLIC_LIMITED` | `PRIVATE_LIMITED` | `OPC` | `LLP` | `SECTION_8` | `FOREIGN`
- **`status`** — `ALL` | `ACTIVE` | `STRIKE_OFF` | `UNDER_LIQUIDATION` | `DORMANT` | `AMALGAMATED` | `CONVERTED`
- **`state`** — 2-letter MCA state code (e.g. `MH` Maharashtra, `KA` Karnataka, `DL` Delhi, `GJ` Gujarat, `TN` Tamil Nadu, `TG` Telangana, `HR` Haryana)
- **`listed_only`** — true to restrict to NSE / BSE-listed companies
- **`limit`** — hard cap on rows returned (1-2000, default 50)

---

### Pricing — pay per event

- **`apify-actor-start`** — `$0.01` charged at run start (covers infrastructure & connection setup)
- **`apify-default-dataset-item`** — `$0.10` per India MCA company row pushed to the dataset

A typical 100-company KYC sweep costs **$0.01 + 100 × $0.10 = $10.01**. A 1,000-company India universe pull costs **$100.01**.

---

### Data quality & sourcing notes

The primary live source — MCA21 at `mca.gov.in` — is the canonical Indian Ministry of Corporate Affairs portal operated by the Government of India. MCA21 is captcha-protected and requires user registration for the full company-master detail view, so this Actor uses MCA21 as a **liveness signal** and falls back to a curated universe assembled from:

- **NSE & BSE disclosure portals** (`nseindia.com`, `bseindia.com`) — every listed company publishes its CIN, registered office, directors, paid-up capital, and authorized capital in its Annual Report, Offer Document, Form MGT-7 / MGT-7A, and BSE / NSE disclosures (Regulation 30 of SEBI LODR).
- **MCA21 free public search** (`mca.gov.in/MinistryV2/companysearch.html`) — confirms entity existence, status, and CIN without login.
- **Company own corporate websites and annual reports** — every Indian company statutorily publishes its CIN on its website footer under Section 12(3) of the Companies Act 2013.
- **Tracxn + Inc42 + YourStory unicorn coverage** — for India's unicorn / soonicorn ecosystem (Flipkart, Paytm, Zomato, Nykaa, OYO, Byju's, Razorpay, CRED, etc.).
- **Wikipedia structured infoboxes** — for the most-searched family conglomerates (Tata, Reliance, Adani, Birla, Mahindra, Bajaj, Godrej) where the CIN, incorporation date, and registered address are public knowledge confirmed against the entity's own annual reports.

All directors returned are those publicly disclosed in the most recent MGT-7 / MGT-7A Annual Return or in SEBI LODR-required disclosures — never private contact information. DINs are not exposed by default to reduce risk of misuse for impersonation.

---

### Related NexGenData Actors

If this Actor is useful, the following sister Actors complete an India + APAC corporate-data stack:

- 🇮🇳 [NSE India Stock Screener](https://apify.com/nexgendata/nse-india-stock-screener) — National Stock Exchange of India equity screener; pair with this Actor to cross-reference NSE tickers (e.g. `RELIANCE`, `TCS`, `INFY`) against full MCA filings
- 🇸🇬 [SGX Singapore Stock Screener](https://apify.com/nexgendata/sgx-singapore-stock-screener) — Singapore Exchange equity screener; map India-out → Singapore-flip-up unicorn structures
- 🇭🇰 [HKEX Hang Seng Stock Screener](https://apify.com/nexgendata/hkex-hang-seng-stock-screener) — Hong Kong Stock Exchange screener; relevant for India-Mauritius-HK FDI chains
- 🇭🇰 [Hong Kong Companies Registry](https://apify.com/nexgendata/hk-companies-registry) — sister APAC jurisdiction for corporate-registry data, identical schema shape (CIN ↔ CR number)
- 🇸🇬 [Singapore ACRA Companies](https://apify.com/nexgendata/singapore-acra-companies) — sister APAC jurisdiction for corporate-registry data, identical schema shape (CIN ↔ UEN)
- 🤖 [Finance MCP Server](https://apify.com/nexgendata/finance-mcp-server) — MCP-protocol financial-data server, useful for piping India MCA results into Claude / OpenAI / Cursor agents

---

### Legal & compliance

All data returned is sourced from public MCA21 filings under India's Companies Act 2013 (and predecessor Companies Act 1956) and SEBI-required public disclosures (LODR Regulations 2015). Director names, registered office addresses, paid-up capital, authorized capital, and CINs are all matters of public record — every MCA-registered company is statutorily required to publish them on its letterhead, website, and invoices under Section 12(3) of the Companies Act 2013.

This Actor does **not** scrape MCA paid downloads (Form-fee-bearing documents at `mca.gov.in`); it does not bypass captchas; it does not access any non-public data; it does not return DINs by default. The fallback curated universe is composed entirely of entities that have voluntarily disclosed their CIN and directors via SEBI LODR disclosures, NSE / BSE filings, their own corporate website, their annual report, or other publicly-disclosed sources.

Users are responsible for complying with India's Digital Personal Data Protection Act 2023 (DPDP Act) when handling director names in downstream pipelines, especially when crossing into automated-decision-making workflows (Section 11 of the DPDP Act) or cross-border transfer scenarios.


---

### About NexGenData

NexGenData publishes 220+ buyer-intent actors covering SEC filings, YC alumni, Delaware DOC, global stock screeners across 30+ exchanges, IPO calendars, IP and patent intelligence, FDA approvals, B2B lead generation, and more. Every actor is pay-per-result with no seat licensing.

#### Apify affiliate program — free credits + 30% off

Sign up to Apify via our referral link and you'll get:

- **Free starter credits** to test this actor and the rest of our 220+ actor fleet
- **30% off platform fees** for the life of your account

**[Browse the full NexGenData catalog and sign up here](https://apify.com/nexgendata?fpr=2ayu9b)** — same Apify, same actors, just cheaper for you.

*Built and maintained by NexGenData.*

# Actor input Schema

## `search_query` (type: `string`):

Partial-match company-name search. Searches India's Ministry of Corporate Affairs (MCA21) registry plus aggregated public lists (NSE/BSE-listed companies and India's largest privately-held unicorns). Case-insensitive substring match against the registered legal name. Leave empty to retrieve the full curated universe filtered by the other fields. Example: 'Reliance', 'Tata', 'Infosys', 'Flipkart', 'Adani', 'HDFC'.
## `cin` (type: `string`):

India's Corporate Identification Number — the 21-character canonical MCA-issued identifier for every company registered under the Companies Act 2013 (and predecessor Companies Act 1956). Format: L/U + 5-digit industry code + 2-letter state code + 4-digit year + 3-letter type code + 6-digit registration number (e.g. 'L17110MH1973PLC019786' for Reliance Industries Ltd, 'L85110KA1981PLC013115' for Infosys Ltd). Exact match. Takes precedence over search_query when both are provided.
## `entity_type` (type: `string`):

Filter by MCA entity type. 'ALL' returns everything. 'PUBLIC_LIMITED' covers companies whose CIN starts with 'L' — listed and unlisted public limited companies (the dominant form for NSE/BSE-listed firms). 'PRIVATE_LIMITED' covers companies whose CIN starts with 'U' and have 'PTC' / 'PRT' in the type code — the dominant form for Indian startups, family businesses, and SME entities. 'OPC' covers One Person Companies introduced under Section 2(62) of the Companies Act 2013. 'LLP' covers Limited Liability Partnerships registered under the LLP Act 2008 (LLPIN format, not CIN). 'SECTION_8' covers non-profits under Section 8 of the Companies Act 2013 (formerly Section 25 under the 1956 Act).
## `status` (type: `string`):

Filter by MCA registry status. 'ACTIVE' = currently active and compliant with annual filings. 'STRIKE_OFF' = struck off the register under Section 248 of the Companies Act 2013 (typically for non-filing of annual returns). 'UNDER_LIQUIDATION' = currently in liquidation under the Insolvency and Bankruptcy Code 2016 (IBC) or the Companies Act provisions. 'DORMANT' = registered but inactive under Section 455 of the Companies Act 2013. 'AMALGAMATED' = merged into another entity via a National Company Law Tribunal (NCLT) order. 'CONVERTED' = converted to a different entity type (e.g. private to public). 'ALL' returns every status.
## `state` (type: `string`):

Filter by registered-office state (the 2-letter MCA state code embedded in positions 7-8 of the CIN). Common codes: 'MH' = Maharashtra (Mumbai — financial capital, most NSE/BSE issuers), 'KA' = Karnataka (Bengaluru — IT/startup capital), 'DL' = Delhi (capital, conglomerate HQs), 'GJ' = Gujarat (industrial / Adani), 'TN' = Tamil Nadu (Chennai — autos / IT), 'TG' = Telangana (Hyderabad — IT / pharma), 'UP' = Uttar Pradesh, 'WB' = West Bengal (Kolkata), 'HR' = Haryana (Gurugram — startups), 'RJ' = Rajasthan, 'AP' = Andhra Pradesh, 'KL' = Kerala. Leave empty for nationwide.
## `listed_only` (type: `boolean`):

When true, restricts results to companies actively listed on India's National Stock Exchange (NSE) and/or Bombay Stock Exchange (BSE). These companies have CIN prefix 'L' AND are confirmed listed on at least one exchange. Useful when cross-referencing MCA filings against NSE/BSE ticker symbols for buy-side equity research, sell-side coverage, or index-construction workflows.
## `limit` (type: `integer`):

Hard cap on total companies returned in this run (1-2000). Each company is one dataset row. Premium pricing applies per row ($0.10/company).

## Actor input object example

```json
{
  "search_query": "Reliance",
  "entity_type": "ALL",
  "status": "ACTIVE",
  "listed_only": false,
  "limit": 5
}
````

# 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 = {
    "search_query": "Reliance",
    "cin": "",
    "entity_type": "ALL",
    "status": "ACTIVE",
    "state": "",
    "listed_only": false,
    "limit": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/india-mca-companies").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 = {
    "search_query": "Reliance",
    "cin": "",
    "entity_type": "ALL",
    "status": "ACTIVE",
    "state": "",
    "listed_only": False,
    "limit": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/india-mca-companies").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "search_query": "Reliance",
  "cin": "",
  "entity_type": "ALL",
  "status": "ACTIVE",
  "state": "",
  "listed_only": false,
  "limit": 5
}' |
apify call nexgendata/india-mca-companies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/india-mca-companies",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🇮🇳 India MCA Companies — CIN & Director Lookup",
        "description": "Search India MCA21 registry by name / CIN / entity type / status / state. Returns CIN, entity type, status, registered office, ROC, directors, paid-up & authorized capital INR, NSE/BSE listing. KYC, AML, M&A — Bloomberg/BVD Orbis/Refinitiv/Tofler/Zauba alt.",
        "version": "0.0",
        "x-build-id": "EqPN7W2IJJwbTHdCU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~india-mca-companies/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-india-mca-companies",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~india-mca-companies/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-india-mca-companies",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~india-mca-companies/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-india-mca-companies",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "search_query": {
                        "title": "Company name / keyword (partial match)",
                        "type": "string",
                        "description": "Partial-match company-name search. Searches India's Ministry of Corporate Affairs (MCA21) registry plus aggregated public lists (NSE/BSE-listed companies and India's largest privately-held unicorns). Case-insensitive substring match against the registered legal name. Leave empty to retrieve the full curated universe filtered by the other fields. Example: 'Reliance', 'Tata', 'Infosys', 'Flipkart', 'Adani', 'HDFC'."
                    },
                    "cin": {
                        "title": "CIN — Corporate Identification Number (exact match)",
                        "type": "string",
                        "description": "India's Corporate Identification Number — the 21-character canonical MCA-issued identifier for every company registered under the Companies Act 2013 (and predecessor Companies Act 1956). Format: L/U + 5-digit industry code + 2-letter state code + 4-digit year + 3-letter type code + 6-digit registration number (e.g. 'L17110MH1973PLC019786' for Reliance Industries Ltd, 'L85110KA1981PLC013115' for Infosys Ltd). Exact match. Takes precedence over search_query when both are provided."
                    },
                    "entity_type": {
                        "title": "Entity type",
                        "enum": [
                            "ALL",
                            "PUBLIC_LIMITED",
                            "PRIVATE_LIMITED",
                            "OPC",
                            "LLP",
                            "SECTION_8",
                            "FOREIGN"
                        ],
                        "type": "string",
                        "description": "Filter by MCA entity type. 'ALL' returns everything. 'PUBLIC_LIMITED' covers companies whose CIN starts with 'L' — listed and unlisted public limited companies (the dominant form for NSE/BSE-listed firms). 'PRIVATE_LIMITED' covers companies whose CIN starts with 'U' and have 'PTC' / 'PRT' in the type code — the dominant form for Indian startups, family businesses, and SME entities. 'OPC' covers One Person Companies introduced under Section 2(62) of the Companies Act 2013. 'LLP' covers Limited Liability Partnerships registered under the LLP Act 2008 (LLPIN format, not CIN). 'SECTION_8' covers non-profits under Section 8 of the Companies Act 2013 (formerly Section 25 under the 1956 Act).",
                        "default": "ALL"
                    },
                    "status": {
                        "title": "Registry status",
                        "enum": [
                            "ALL",
                            "ACTIVE",
                            "STRIKE_OFF",
                            "UNDER_LIQUIDATION",
                            "DORMANT",
                            "AMALGAMATED",
                            "CONVERTED"
                        ],
                        "type": "string",
                        "description": "Filter by MCA registry status. 'ACTIVE' = currently active and compliant with annual filings. 'STRIKE_OFF' = struck off the register under Section 248 of the Companies Act 2013 (typically for non-filing of annual returns). 'UNDER_LIQUIDATION' = currently in liquidation under the Insolvency and Bankruptcy Code 2016 (IBC) or the Companies Act provisions. 'DORMANT' = registered but inactive under Section 455 of the Companies Act 2013. 'AMALGAMATED' = merged into another entity via a National Company Law Tribunal (NCLT) order. 'CONVERTED' = converted to a different entity type (e.g. private to public). 'ALL' returns every status.",
                        "default": "ACTIVE"
                    },
                    "state": {
                        "title": "Registered office state (2-letter MCA code)",
                        "type": "string",
                        "description": "Filter by registered-office state (the 2-letter MCA state code embedded in positions 7-8 of the CIN). Common codes: 'MH' = Maharashtra (Mumbai — financial capital, most NSE/BSE issuers), 'KA' = Karnataka (Bengaluru — IT/startup capital), 'DL' = Delhi (capital, conglomerate HQs), 'GJ' = Gujarat (industrial / Adani), 'TN' = Tamil Nadu (Chennai — autos / IT), 'TG' = Telangana (Hyderabad — IT / pharma), 'UP' = Uttar Pradesh, 'WB' = West Bengal (Kolkata), 'HR' = Haryana (Gurugram — startups), 'RJ' = Rajasthan, 'AP' = Andhra Pradesh, 'KL' = Kerala. Leave empty for nationwide."
                    },
                    "listed_only": {
                        "title": "Only NSE / BSE-listed companies",
                        "type": "boolean",
                        "description": "When true, restricts results to companies actively listed on India's National Stock Exchange (NSE) and/or Bombay Stock Exchange (BSE). These companies have CIN prefix 'L' AND are confirmed listed on at least one exchange. Useful when cross-referencing MCA filings against NSE/BSE ticker symbols for buy-side equity research, sell-side coverage, or index-construction workflows.",
                        "default": false
                    },
                    "limit": {
                        "title": "Max companies returned",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Hard cap on total companies returned in this run (1-2000). Each company is one dataset row. Premium pricing applies per row ($0.10/company).",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
