# India New Company Registrations | Daily MCA Incorporations Feed (`data_daemon/india-new-company-registrations`) Actor

$3 per 1,000 companies | Newly incorporated Indian companies from the MCA register, by incorporation date: name, CIN, type (Pvt Ltd, OPC, Section 8, foreign subsidiary), RoC, state, NIC activity, capital, registered office. Only-new mode for daily lead feeds. No director personal data, no login.

- **URL**: https://apify.com/data_daemon/india-new-company-registrations.md
- **Developed by:** [Daemon Data](https://apify.com/data_daemon) (community)
- **Categories:** Lead generation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.10 / 1,000 companies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**India New Company Registrations** is a pay-per-result Apify Actor that returns **newly incorporated Indian companies from the MCA register**, by incorporation date, as JSON, CSV or Excel: company name, CIN, type (Private Limited, Public Limited, OPC, Section 8, foreign subsidiary), Registrar of Companies, state, NIC activity, authorised and paid-up capital, registered office address with PIN code and the number of directors. It reads the public company directory at companies.dubleu.co, which mirrors the Ministry of Corporate Affairs (MCA) register and lists each day's incorporations (504 companies on 28 October 2026, 898 on 27 October, 940 on 26 October). **$3 per 1,000 companies**, no login, no proxy. Director names, phone numbers and e-mails are not collected.

Built for schedules: `onlyNewSinceLastRun` delivers only companies you have not received before, so a daily run is a **new-company lead feed** for banks, CA and CS firms, payroll, insurance, SaaS and compliance vendors, and for researchers tracking incorporations by state, sector or capital.

### Why use India New Company Registrations?

| Who | What they run | Typical cost |
|---|---|---|
| B2B sales (banking, accounting, payroll, insurance, SaaS) | Daily: every company incorporated yesterday in their state or sector, into a CRM or sheet | 500-1,000 companies a day = $1.50-3.00 |
| CA / CS / legal practices | Daily feed of new Private Limited companies and OPCs in their RoC | $0.30-1.50 a day |
| Market research, journalists, economists | One-off: all incorporations in a date range, by NIC activity and capital | $3 per 1,000 |
| Data vendors and startup databases | Weekly backfill plus a daily only-new run, keyed on CIN | pay only for new rows |

- **Daily feed shape.** The register lists incorporations by date. Read the newest date (`recentDates: 1`) or the last three with only-new mode, and nothing is charged twice.
- **Filter before paying.** Company type, state (both from the CIN) and name keywords are checked before any company page is opened; activity keywords and RoC names are checked on the page. Rows outside your filters are never charged.
- **Business facts only.** The row is the company: CIN, type, RoC, state, activity, capital, registered office. No personal data of directors.
- **Cheaper than the alternatives.** Store actors for MCA data charge $3-10 per 1,000 and most focus on director lookups; this feed is $3 per 1,000 at the FREE tier and less on paid plans.

### How to get new Indian company registrations

1. Open the Actor and click **Start** with the default input: the newest incorporation date, up to 50 companies with full details (about $0.15).
2. Change `recentDates`, `dates` or `fromDate`/`toDate` for more days; add `companyTypes`, `states`, `activityKeywords` or `nameKeywords` to narrow the feed.
3. Download the dataset (JSON, CSV, Excel, XML) or read it through the API.
4. For a daily feed: set `onlyNewSinceLastRun: true` and `recentDates: 3`, save the run as a task and schedule it. Add Google Sheets, Slack, e-mail or a webhook in the task's Integrations tab.

### Input

| Field | Meaning |
|---|---|
| `recentDates` | Take the N newest incorporation dates the register lists (default 1). Ignored when `dates` or `fromDate`/`toDate` are set. |
| `dates` | Specific dates, `YYYY-MM-DD`. Each is read in full. |
| `fromDate`, `toDate` | Inclusive date range. |
| `companyTypes` | `private`, `public`, `opc`, `section8`, `foreign`, `government`, `producer` (and `llp`, though the directory's daily lists held no LLPs in October 2026, so it currently returns nothing). Read from the CIN, so excluded companies cost nothing and no page is opened for them. |
| `states` | State names or codes (`Maharashtra`, `KA`) are matched against the CIN before any page is opened; RoC names (`RoC-Bangalore`) are matched on the company page. |
| `activityKeywords` | Words or NIC codes matched against the activity, e.g. `software`, `62011`, `real estate`. |
| `nameKeywords` | Words in the company name, e.g. `foundation`, `technologies`. |
| `includeDetails` | Open each company page (default true). Off = listing fields plus what the CIN encodes. Same price. |
| `maxResults` | Cap on saved companies (default 50; 0 = no cap). |
| `onlyNewSinceLastRun`, `stateName` | Remember delivered CINs in a key-value store named `india-new-companies-state` in your account and skip them next time. Skipped companies are not charged. `stateName` names the memory; by default it follows the filters. |
| `skipIds` | CINs you already have. Not saved, not charged. |
| `proxyConfiguration` | Not needed. |

Example: daily feed of new software companies in Karnataka and Maharashtra.

```json
{
    "recentDates": 3,
    "states": ["Karnataka", "Maharashtra"],
    "activityKeywords": ["software", "computer programming", "62011", "62013"],
    "companyTypes": ["private", "opc"],
    "maxResults": 0,
    "onlyNewSinceLastRun": true,
    "stateName": "software-ka-mh"
}
```

### Output

```json
{
    "cin": "U47990HR2026PTC152212",
    "name": "9BARS COFFEE PRIVATE LIMITED",
    "url": "https://companies.dubleu.co/company/9bars-coffee-private-limited-U47990HR2026PTC152212",
    "registrationDate": "2026-10-28",
    "registrationNumber": "152212",
    "status": "active",
    "companyType": "Private Limited",
    "companyTypeCode": "PTC",
    "listed": false,
    "roc": "RoC-Haryana",
    "state": "Haryana",
    "cinStateCode": "HR",
    "category": "Company limited by Shares",
    "subCategory": "Non-govt company",
    "companyClass": "Private",
    "activity": "Retail trade, except of motor vehicles and motorcycles",
    "nicCode": "47990",
    "listingStatus": "Unlisted Company",
    "authorizedCapitalInr": 600000,
    "paidUpCapitalInr": 600000,
    "registeredAddress": "Hno. 1108, 116 F- Block, Laxman Vihar, Gurgaon, Sadar Bazar, Gurgaon, Haryana, India, 122001",
    "pincode": "122001",
    "directorsCount": 3,
    "lastAgmDate": null,
    "lastFinancialsDate": null,
    "detailsIncluded": true,
    "source": "companies.dubleu.co (MCA register)",
    "scrapedAt": "2026-10-29T20:40:12.000Z"
}
```

You can download the dataset as JSON, CSV, Excel or XML. The run's `RUN-SUMMARY` record (key-value store) lists the dates read, companies found, saved, filtered and skipped, so a webhook or n8n flow can act without opening the dataset.

#### Fields

| Field | Notes |
|---|---|
| `cin`, `name`, `url`, `registrationDate`, `registrationNumber` | From the date listing and the CIN. Always present. |
| `companyType`, `companyTypeCode`, `listed`, `nicCode`, `cinStateCode` | Decoded from the CIN (type PTC/PLC/OPC/NPL/FTC/GOI/PRC, listed L/U, five-digit NIC code, state code). LLPs carry an LLPIN and `companyTypeCode: "LLP"`. |
| `status`, `roc`, `state`, `category`, `subCategory`, `companyClass`, `activity`, `listingStatus` | From the company page (`includeDetails`). |
| `authorizedCapitalInr`, `paidUpCapitalInr` | INR, as filed at incorporation. |
| `registeredAddress`, `pincode` | Registered office as filed; the PIN code is the last six digits of the address. |
| `directorsCount` | Number of directors / key management persons. Names are not collected. |
| `lastAgmDate`, `lastFinancialsDate` | Null for new companies. |

### How much does it cost?

Pay per event: **company** ($0.003) per saved row, plus $0.001 per run. 1,000 companies cost $3 at the FREE and BRONZE tiers, $2.55 at SILVER and $2.10 at GOLD and above. The default run (50 companies) costs about $0.15. Companies skipped by only-new mode, `skipIds` or the filters are not charged. Platform usage is included in the price. Measured on 30 October 2026: the default run (50 companies with details) took 76 s; 20 type-filtered companies without details took 6 s; a full day (500-1,000 companies with details) takes roughly 15-40 minutes at 512 MB because company pages are opened two at a time to stay polite.

### Tips

- **Daily schedule:** `recentDates: 3`, `onlyNewSinceLastRun: true`, `maxResults: 0`. The register adds late entries to earlier days, so reading three dates with the memory on catches them once.
- **Backfill:** `fromDate`/`toDate` with `maxResults: 0`; a month is roughly 15,000-20,000 companies ($45-60).
- **Fast type-only lists:** `includeDetails: false` with `companyTypes` gives name, CIN, date, type, NIC code and state code without opening pages.
- **Section 8 and OPC watchlists:** `companyTypes: ["section8"]` or `["opc"]` with a daily schedule.
- The source orders a date's companies alphabetically, not by time; use `maxResults: 0` for a complete day.
- Company pages are read two at a time (about 40 companies a minute). Give long backfills a run timeout of an hour or more; the run stops before the timeout, keeps what it has and remembers it in only-new mode.

### FAQ

**Where does the data come from?** From the public MCA company register as mirrored by the companies.dubleu.co directory (`robots.txt` allows crawling; Dubleu's terms of service contain no clause on automated access, checked 30 October 2026). The directory's robots.txt carries the content signal `ai-train=no`: do not use this data to train or fine-tune AI models. Fields are as filed with the Registrar of Companies.

**Is the register complete and same-day?** Days are populated as the MCA publishes; the newest listed day can still grow for a day or two, which is why `recentDates: 3` with only-new mode is the recommended schedule. Counts seen on 29 October 2026: 504 (28 Oct), 898 (27 Oct), 940 (26 Oct), 33 (25 Oct, a Saturday), 324 (24 Oct).

**How many companies are registered in India each day?** About 800 per working day in October 2026: 17,622 companies from 1 to 29 October (15,892 over 20 weekdays, about 420 on Saturdays, almost none on Sundays). Maharashtra registered the most (16.7%), and IT services was the largest industry (13.4%; 24% in Karnataka). Full breakdown by state, type and industry: [How many companies were registered in India in October 2026?](https://dev.to/datadaemon/how-many-companies-were-registered-in-india-in-october-2026-17622-new-companies-by-state-type-2h9b)

**What do CIN state codes like PN, MR or UW mean?** Codes of newer Registrars of Companies: PN Pune, MR Mumbai II, ME Nagpur (Maharashtra), UW Uttar Pradesh II, DC Delhi II, WR Kolkata II (West Bengal), TZ Coimbatore (Tamil Nadu). They were on 26% of new CINs in October 2026; the Actor maps them to the state (since build 0.1.9).

**Are LLPs included?** Not at the moment: the directory's daily lists contained companies only (no LLPINs among 17,622 October 2026 incorporations), so `companyTypes: ["llp"]` returns nothing.

**Does it include directors, e-mails or phone numbers?** No. The row is the company (business facts and the registered office). `directorsCount` is a number only.

**Can I filter by city or PIN?** Filter by `states` and use the `pincode` and `registeredAddress` fields in your sheet or flow; a PIN prefix filter in a post-processing step is the most reliable city filter.

**What happens if the directory is down?** The run stops with a clear status message, keeps what it has and charges only the saved rows. Only-new memory is saved on every page.

### Related Actors

- [Tickertape India Stocks Scraper](https://apify.com/data_daemon/tickertape-stocks-scraper): NSE/BSE fundamentals, shareholding and a stock screener.
- [India IPO Tracker](https://apify.com/data_daemon/india-ipo-tracker): live IPO GMP, subscription and listing data.
- [UK Gazette Insolvency Notices](https://apify.com/data_daemon/uk-gazette-insolvency-notices): winding-up petitions and administrations from The Gazette.
- [Dubai Property Transactions (DLD)](https://apify.com/data_daemon/dubai-property-transactions): daily Dubai Land Department transactions.
- [IIMJobs Jobs Scraper](https://apify.com/data_daemon/iimjobs-jobs-scraper) and [Apna Jobs Scraper](https://apify.com/data_daemon/apna-jobs-scraper): Indian job postings with only-new mode.
- All Actors by [Daemon Data](https://apify.com/data_daemon).

Questions or a field you need? Use the Issues tab.

# Actor input Schema

## `recentDates` (type: `integer`):

Take the N newest incorporation dates the register lists (1 = the latest day, usually 300-1,000 companies). Ignored when `dates` or `fromDate`/`toDate` are set. For a daily schedule use 2 or 3 with only-new mode, so late additions to earlier days are picked up once.

## `dates` (type: `array`):

Specific incorporation dates as YYYY-MM-DD, e.g. `2026-10-28`. Each date is read in full (all pages).

## `fromDate` (type: `string`):

Start of a date range (YYYY-MM-DD, inclusive). Every listed incorporation date from here to `toDate` (or the newest) is read.

## `toDate` (type: `string`):

End of the date range (YYYY-MM-DD, inclusive).

## `companyTypes` (type: `array`):

Only these types (read from the CIN before any page is opened; filtered-out companies are not charged). Empty = all.

## `states` (type: `array`):

Only companies whose state or RoC contains one of these words, e.g. `Maharashtra`, `Karnataka`, `Delhi`, `KA`, `RoC-Bangalore`. State names and codes are matched against the state code in the CIN before any company page is opened (fast); RoC names and LLPs are checked on the company page. Rows outside the filter are never charged.

## `activityKeywords` (type: `array`):

Only companies whose NIC activity description or 5-digit NIC code contains one of these, e.g. `software`, `real estate`, `62011`, `retail trade`. Checked on the company page.

## `nameKeywords` (type: `array`):

Only companies whose name contains one of these words, e.g. `foundation`, `technologies`, `hospitality`. Checked before any page is opened.

## `includeDetails` (type: `boolean`):

Read the company page for status, RoC, state, category, class, activity, capital, registered office and the number of directors. Off = listing fields only (name, CIN and what the CIN encodes: type, NIC code, state code, year), which is faster. Same price either way.

## `maxResults` (type: `integer`):

Stop after this many saved companies (default 50, about $0.15). 0 = no cap (the run's maximum cost still applies).

## `onlyNewSinceLastRun` (type: `boolean`):

For schedules: remember delivered CINs (in a named key-value store in your account) and save only companies that earlier runs with the same filters did not deliver. Skipped companies are not charged.

## `stateName` (type: `string`):

Name of the only-new memory. Empty = derived from the filters (dates do not change it). Give two schedules the same name to share one memory.

## `skipIds` (type: `array`):

CINs (or LLPINs) you already have. They are neither saved nor charged.

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

Not needed: the directory answers Apify servers directly. Use a proxy only if requests start failing.

## Actor input object example

```json
{
  "recentDates": 1,
  "dates": [],
  "companyTypes": [],
  "states": [],
  "activityKeywords": [],
  "nameKeywords": [],
  "includeDetails": true,
  "maxResults": 50,
  "onlyNewSinceLastRun": false,
  "skipIds": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

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

## `runSummary` (type: `string`):

RUN-SUMMARY record: dates read, companies found, saved, filtered, skipped (already delivered / skipIds), requests and charged counts.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("data_daemon/india-new-company-registrations").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("data_daemon/india-new-company-registrations").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 '{}' |
apify call data_daemon/india-new-company-registrations --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_daemon/india-new-company-registrations"
        }
    }
}
```

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/Z4okzsYXSCsoUfUXg/builds/fOCcs5uxjcATkvkY1/openapi.json
