India MCA Company Data Scraper - CIN, Directors & Charges
Pricing
from $2.00 / 1,000 results
India MCA Company Data Scraper - CIN, Directors & Charges
India company data scraper & API (MCA / CIN lookup): enrich any Indian company by CIN and export name, status, incorporation date, RoC, category, authorized & paid-up capital, address, email, directors with DIN & registered charges. India KYC, due-diligence & B2B lead data — fast, no login.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
1
Bookmarked
127
Total users
18
Monthly active users
an hour ago
Last modified
Categories
Security
Limited permissionsShare
India MCA Company Data Scraper 🇮🇳 — CIN Lookup, Directors (DIN), Capital & Registered Charges
Enrich any registered Indian company by its Corporate Identification Number (CIN) or discover 1,000+ Indian corporate profiles in minutes. This India MCA company scraper and CIN lookup API transforms a list of CINs (or seed companies) into structured, analysis-ready corporate records: company name, legal status, date of incorporation, Registrar of Companies (RoC), company class & category, listing status, authorized & paid-up capital, registered office address, official email, the full board of directors (with DIN & appointment dates), and registered secured charges.
Export your results in bulk to JSON, CSV, Excel (XLSX), XML, or via the Apify API for India KYB/KYC onboarding, commercial credit & risk underwriting, B2B lead enrichment, M&A due diligence, and vendor compliance.
💡 Built for: KYB and compliance teams, B2B lenders and fintech underwriting platforms, Indian B2B sales and lead-generation teams, M&A and legal due-diligence analysts, credit bureaus, and data engineers maintaining Indian corporate intelligence pipelines.
⚡ At a glance
| Feature | Details |
|---|---|
| Target registry data | Indian registered companies (Public, Private, OPC, Government, Listed & Unlisted) keyed by 21-character CIN |
| Lookup & discovery modes | Exact bulk CIN list enrichment (cins), automatic CIN extraction from URLs (companyUrls), or corporate-graph expansion up to maxItems: 1000+ |
| Core firmographics | cin, companyName, status, classOfCompany, category, subcategory, listingStatus, dateOfIncorporation, dateOfLastAGM, dateOfBalanceSheet, registrationNumber, rocCode, numberOfMembers |
| Financial & capital fields | authorizedCapital, paidUpCapital (in INR), chargesCount, openChargesCount |
| Contact & location fields | email (registered official corporate email), registeredAddress, otherAddress, pincode, description |
Board of directors (directors[]) | Full signatory & director list: name, din (Director Identification Number), beginDate, status, updatedOn, plus directorsCount |
Secured liabilities (charges[]) | Registered charges against company assets: amount, assets, dateOfCreation, dateOfModification, status (OPEN / CLOSED) |
| Scale & speed | Pure HTTP parallel architecture (maxConcurrency up to 15) — enriches 500 companies in ~90 seconds and scales to 1,000+ companies (0 duplicates) |
| Authentication | None required — no MCA portal captchas, no login, no API keys |
| Export & integrations | JSON, CSV, Excel, XML, RSS, Apify API, Google Sheets, Make, Zapier, n8n, Snowflake, BigQuery & webhooks |
📋 Table of contents
- Why scrape India MCA company data?
- What this India MCA scraper does
- Understanding the 21-character Indian CIN
- High-value use cases
- Input configuration
- Output dataset & examples
- Field reference & coverage
- Bulk enrichment & 1,000+ corporate-graph scaling
- How to use step by step
- API & automation integration
- Pro tips for best results
- Frequently asked questions
- Limitations
- Related scrapers
- Changelog
🔎 Why scrape India MCA company data?
Every company incorporated in India under the Ministry of Corporate Affairs (MCA) is assigned a unique 21-character Corporate Identification Number (CIN) — such as L17110MH1973PLC019786 (Reliance Industries) or L22210MH1995PLC084781 (Tata Consultancy Services). Tied to that CIN is the company's statutory corporate record: its legal standing (Active, Strike Off, Under Liquidation), share capital structure, registered office address, statutory filing dates (last AGM and balance sheet), board of directors (each identified by a unique DIN), and secured bank loans (registered charges).
Looking up companies manually one by one across registry pages, solving captchas, and copying director tables and charge ledgers by hand is impossible when you have hundreds or thousands of vendors, borrowers, or B2B prospects. This India MCA company scraper automates the entire workflow: pass a list of CINs (or let the scraper expand from seed companies) and receive a clean, normalized JSON/CSV/Excel dataset in seconds.
Common reasons teams scrape Indian corporate registry data:
- 🛡️ Automated KYB & vendor onboarding — instantly verify whether an Indian counterparty is
ActiveorStrike Off, confirm its incorporation date, and validate its registered office address. - 🏦 Commercial lending & credit-risk underwriting — inspect
authorizedCapital,paidUpCapital,openChargesCount, and individual securedcharges[]to evaluate leverage and existing asset pledges before extending credit. - 🧲 B2B sales & account enrichment — enrich raw CIN lists (from GST invoices, tender awards, or trade directories) with the company's official registered
email, director names (directors[]), and paid-up capital to prioritize high-value accounts. - 🕵️ M&A, legal & investigative due diligence — map board memberships via DIN (
din), audit AGM and balance-sheet filing compliance (dateOfLastAGM,dateOfBalanceSheet), and review historical asset charges. - 📊 Sector & regional market mapping — build 1,000+ company datasets across Maharashtra, Karnataka, Delhi, Gujarat, Tamil Nadu, and Telangana for market sizing.
✨ What this India MCA scraper does
- ✅ Bulk CIN lookup & enrichment — pass 1, 100, or 1,000+ CINs and get a complete structured company profile for each.
- ✅ Automatic corporate-graph expansion for 1,000+ runs — when you leave
cinsempty or setmaxItemshigher than the number of seed CINs provided (e.g.maxItems: 1000), the scraper automatically discovers related subsidiaries, industry peers, and group companies to fulfill your full target count. - ✅ URL-aware input parsing — paste any company profile URL containing a CIN into
companyUrls(orcins) and the 21-character CIN is extracted and normalized automatically. - ✅ Complete statutory firmographics — extracts
companyName,status,classOfCompany,category,subcategory,listingStatus,dateOfIncorporation,dateOfLastAGM,dateOfBalanceSheet,registrationNumber,rocCode,numberOfMembers,authorizedCapital,paidUpCapital,email,registeredAddress,otherAddress,pincode, anddescription. - ✅ Board of directors with DIN (
directors[]) — returns every listed director/promoter withname,din,beginDate,status, andupdatedOn, plusdirectorsCount. - ✅ Registered secured charges (
charges[]) — capturesamount,assets,dateOfCreation,dateOfModification, andstatus, alongside summary counterschargesCountandopenChargesCount. - ✅ Dual-tier high-coverage architecture — combines a deep primary corporate data layer with an automatic secondary fallback layer (
dataSource: "primary"vs"secondary") to achieve ~100% lookup resolution across valid Indian CINs.
🧩 Understanding the 21-character Indian CIN
Every Indian CIN follows a strict 6-part structure (L17110MH1973PLC019786) that you can also use to filter and segment your exported dataset:
| Position | Example | Meaning |
|---|---|---|
| 1st character | L or U | Listing status: L = Listed on a recognized Indian stock exchange; U = Unlisted |
| Digits 2–6 | 17110 | NIC industry code: 5-digit National Industrial Classification activity code |
| Letters 7–8 | MH, KA, DL, GJ | State code: Two-letter Indian state/UT of registration (MH = Maharashtra, KA = Karnataka, DL = Delhi) |
| Digits 9–12 | 1973 | Year of incorporation: Four-digit founding year |
| Letters 13–15 | PLC, PTC, OPC, GOI | Ownership class: PLC = Public Limited, PTC = Private Limited, OPC = One Person Company, GOI = Government of India |
| Digits 16–21 | 019786 | Registration number: 6-digit sequential number assigned by the state Registrar of Companies (RoC) |
🎯 High-value use cases
1. Fintech & B2B credit underwriting
Before approving working-capital loans, invoice discounting, or trade credit to an Indian enterprise, underwriting pipelines query this Actor by CIN to check three critical signals:
- Is
status === "Active"and isdateOfBalanceSheetrecent? - Does
paidUpCapitalsupport the requested credit line? - How many
openChargesCountexist incharges[], and whatamountandassetsare already pledged to other lenders?
2. B2B lead enrichment (pairing with IndiaMART & GST data)
Raw supplier lists often lack decision-maker names, company size indicators, or official emails. Enriching Indian companies via this scraper appends the board of directors (directors[].name), the statutory corporate email, and paid-up capital (an objective proxy for company scale).
3. Continuous KYB & vendor portfolio monitoring
Schedule monthly runs across your active vendor CIN list to detect companies whose status shifts from Active to Strike Off or Under Liquidation, or companies that register sudden large new secured charges.
📥 Input configuration
All fields are optional. Paste your own list of CINs, or run with default settings to automatically enrich a sample (or scale to 1,000+ companies by raising maxItems).
| Field | Type | Default / Prefill | Description |
|---|---|---|---|
cins | array<string> | Prefill: 2 seed CINs | Corporate Identification Numbers (21 characters, e.g. L17110MH1973PLC019786), one per entry. Leave empty or combine with a higher maxItems to auto-discover related Indian companies. |
companyUrls | array<string> | [] | Optional: paste any company URLs that contain a 21-character CIN; the scraper extracts the CIN automatically. |
includeCharges | boolean | true | Include each company's charges[] array (secured loans and asset pledges). Set to false for lighter records. |
maxItems | integer | Default 0 (Prefill 50) | Maximum companies to return (0 = enrich all provided cins; set to 100, 500, or 1000+ to automatically expand and enrich related Indian companies). |
maxConcurrency | integer | 5 (1–15) | Number of parallel company lookups. Raise to 10–15 for high-speed bulk runs. |
proxyConfiguration | object | { "useApifyProxy": true } | Proxy configuration. Default Apify Proxy works out of the box. |
Input example 1 — Enrich a specific list of CINs (maxItems: 0)
{"cins": ["L17110MH1973PLC019786","L22210MH1995PLC084781","L85110KA1981PLC013115","L65920MH1994PLC080618"],"includeCharges": true,"maxItems": 0}
Input example 2 — Discover & enrich 1,000+ Indian companies automatically
{"cins": ["L17110MH1973PLC019786","L22210MH1995PLC084781"],"includeCharges": true,"maxItems": 1000,"maxConcurrency": 10}
📤 Output dataset & examples
Each company is saved as a single structured JSON record containing its statutory firmographics, directors[], and charges[].
Sample output record
{"cin": "U00000PB2003PTC026066","dataSource": "primary","companyName": "A.N.E. INDUSTRIES PRIVATE LIMITED","status": "Active","classOfCompany": "Private","category": "Company limited by Shares","subcategory": "Non-govt company","listingStatus": "Unlisted","dateOfIncorporation": "29-05-2003","dateOfLastAGM": "30-09-2022","dateOfBalanceSheet": "31-03-2022","registrationNumber": "026066","rocCode": "RoC-Chandigarh","numberOfMembers": "0","authorizedCapital": "2,00,00,000","paidUpCapital": "1,94,91,000","email": "rajinder@aneindustries.com","registeredAddress": "CHANDIGARH ROAD NAWANSHAHR Nawan Shehar PB 144514 IN","otherAddress": null,"pincode": "144514","description": "A.N.E. INDUSTRIES PRIVATE LIMITED is a Private registered under RoC-Chandigarh...","directors": [{"name": "GAGANDEEP SINGH","din": "01655358","beginDate": "2003-05-29","status": "Approved","updatedOn": "2019-06-26"}],"directorsCount": 2,"chargesCount": 103,"openChargesCount": 53,"charges": [{"amount": "64390000","assets": "Movable property (not being pledge)","dateOfCreation": "19/06/2013","dateOfModification": null,"status": "OPEN"}],"url": "https://www.indiafilings.com/search/company-cin-U00000PB2003PTC026066","scrapedAt": "2026-11-10T02:00:00.000Z"}
📊 Field reference & coverage
🏛️ Statutory Identity & Classification
| Field | Type | Coverage | Description |
|---|---|---|---|
cin | string | 🟢 High (100%) | 21-character Corporate Identification Number (unique primary key). |
companyName | string | 🟢 High (100%) | Official registered legal name of the company. |
status | string | null | 🟢 High (~99%) | Current registry status (Active, Strike Off, Amalgamated, Under Liquidation, etc.). |
classOfCompany | string | null | 🟢 High (~99%) | Public, Private, or One Person Company. |
category | string | null | 🟢 High (Primary) | Company category (e.g. Company limited by Shares, Company limited by Guarantee). |
subcategory | string | null | 🟢 High (Primary) | Subcategory (e.g. Non-govt company, Union Govt company, Subsidiary of Foreign Company). |
listingStatus | string | null | 🟢 High (100%) | Listed or Unlisted. |
registrationNumber | string | null | 🟢 High (100%) | 6-digit RoC registration number. |
rocCode | string | null | 🟢 High (Primary) | Registrar of Companies jurisdiction (e.g. RoC-Mumbai, RoC-Bangalore, RoC-Delhi). |
dataSource | string | 🟢 High (100%) | "primary" (full director/charge profile) or "secondary" (core statutory fallback). |
💰 Capital, Filings & Contact Details
| Field | Type | Coverage | Description |
|---|---|---|---|
authorizedCapital | string | null | 🟢 High (100%) | Authorized share capital in INR. |
paidUpCapital | string | null | 🟢 High (100%) | Paid-up share capital in INR. |
dateOfIncorporation | string | null | 🟢 High (100%) | Incorporation date (DD-MM-YYYY or DD Month, YYYY). |
dateOfLastAGM | string | null | 🟢 High (Primary) | Date of most recent Annual General Meeting filing. |
dateOfBalanceSheet | string | null | 🟢 High (Primary) | Date of latest filed balance sheet. |
numberOfMembers | string | null | 🟡 Conditional | Number of members when reported. |
email | string | null | 🟢 High (~89% Primary) | Statutory corporate email address on file. |
registeredAddress | string | null | 🟢 High (100%) | Complete registered office street address, city, state, and PIN. |
otherAddress | string | null | 🟡 Conditional | Secondary/correspondence address when filed. |
pincode | string | null | 🟢 High (~85%) | 6-digit Indian PIN code. |
description | string | null | 🟢 High (Primary) | Narrative summary of the company's registration details. |
👥 Board of Directors & Secured Charges
| Field | Type | Coverage | Description |
|---|---|---|---|
directors | array<object> | 🟢 High (~88% Primary) | Array of { name, din, beginDate, status, updatedOn } objects. |
directorsCount | integer | null | 🟢 High (Primary) | Total directors/signatories listed on the board. |
charges | array<object> | 🟡 Conditional (includeCharges) | Array of { amount, assets, dateOfCreation, dateOfModification, status } secured loan records. |
chargesCount | integer | null | 🟢 High (Primary) | Total historical and active charges registered. |
openChargesCount | integer | null | 🟢 High (Primary) | Count of currently active (OPEN) secured charges. |
url | string | 🟢 High (100%) | Reference profile URL. |
scrapedAt | string | 🟢 High (100%) | ISO-8601 extraction timestamp. |
🔁 Bulk enrichment & 1,000+ corporate-graph scaling
This Actor supports two seamless operating modes depending on your workflow:
- Exact CIN list enrichment (
maxItems: 0): Paste 10, 200, or 5,000 CINs intocins(orcompanyUrls) and leavemaxItemsat0. The scraper deduplicates your input list and enriches only the exact CINs you provided using a bounded parallel worker pool (maxConcurrency). - Corporate-graph discovery & expansion (
maxItems > cins.length): When you run with an emptycinslist or provide a handful of seed CINs alongside a highermaxItemstarget (such as50,250, or1,000+), the scraper automatically harvests related subsidiary, group, and industry-peer CINs from the corporate registry graph and enriches them in parallel until your exactmaxItemstarget is reached with 0 duplicate CINs.
⚙️ How to use step by step
- Open India MCA Company Data Scraper in the Apify Console and click Try for free.
- Paste your list of 21-character Company CINs to look up (
cins), or keep the default seed CINs to test automatic discovery. - Choose whether to Include registered charges (
includeCharges: true). - Set Maximum companies to return (
maxItems) — use0to process only your exactcinslist, or set50,200, or1000to automatically expand and collect that many companies. - Click Start and download your enriched dataset as JSON, CSV, Excel, XML, or HTML.
🔌 API & automation integration
Python example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("haketa/india-mca-scraper").call(run_input={"cins": ["L17110MH1973PLC019786","L22210MH1995PLC084781","L85110KA1981PLC013115",],"includeCharges": True,"maxItems": 0,"maxConcurrency": 10,})for company in client.dataset(run["defaultDatasetId"]).iterate_items():print(company["cin"], company["companyName"], company["status"], company["paidUpCapital"], company["email"])
Node.js example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('haketa/india-mca-scraper').call({cins: ['L17110MH1973PLC019786'],maxItems: 250,includeCharges: true,maxConcurrency: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Enriched ${items.length} Indian companies.`);
💡 Pro tips for best results
- 🚀 Increase
maxConcurrencyto10–15for large runs: Because the scraper uses lightweight pure-HTTP requests with per-request proxy rotation, 1,000 companies finish in roughly 2.5–3 minutes at concurrency 10. - 🪶 Turn off
includeChargeswhen you only need contact/board data: Large industrial enterprises can have 100+ historical bank charges; settingincludeCharges: falsekeeps CSV/JSON payloads compact while still preservingchargesCountandopenChargesCount. - 🔍 Filter by
dataSource: "primary"for full board & email enrichment: Records resolved via the primary layer carry the fulldirectors[],charges[], andemailfields;secondaryfallback records provide guaranteed core statutory coverage (companyName,dateOfIncorporation,authorizedCapital,paidUpCapital,registeredAddress,status).
❓ Frequently asked questions
What is a CIN and where do I find it?
A Corporate Identification Number (CIN) is the official 21-character alphanumeric identifier assigned by the Ministry of Corporate Affairs (MCA) to every company registered in India (e.g. L17110MH1973PLC019786). It appears on company invoices, letterheads, annual reports, and financial filings.
Can this scraper discover 1,000+ Indian companies if I only have a few seed CINs?
Yes. Whenever maxItems is set higher than the number of CINs in your input (or when cins is left empty), the scraper automatically traverses the corporate registry graph from your seed CINs to discover and enrich up to maxItems unique companies (1,000+ supported).
What happens if I only want to enrich my exact list of CINs without adding related companies?
Simply set maxItems: 0 (the default). When maxItems is 0 and you provide one or more cins or companyUrls, the scraper enriches only the exact CINs you supplied.
Do I need an MCA login or captcha solver? No. Everything runs over fast, headless HTTP with zero login and zero captcha prompts.
⚠️ Limitations
- Lookup and discovery are keyed by 21-character Indian company CINs (
[LU]\d{5}[A-Z]{2}\d{4}[A-Z]{3}\d{6}); Limited Liability Partnerships (LLPs, which use a 7-character LLPIN) are not covered by the CIN format. - Records resolved via the
secondaryfallback source include core statutory fields (companyName,status,classOfCompany,listingStatus,dateOfIncorporation,authorizedCapital,paidUpCapital,registeredAddress,pincode) but omitdirectors[],charges[], andemail.
🔗 Related scrapers
Pair Indian corporate registry intelligence with these B2B and company data scrapers:
- IndiaMART Scraper — Suppliers, Exporters, Prices & GST — discover Indian B2B manufacturers, GST numbers, IEC codes, and export markets.
- TradeIndia Scraper — extract Indian wholesale suppliers and product catalogs.
- Dun & Bradstreet Scraper — Companies, DUNS & Revenue — global firmographics, DUNS numbers, revenue, and principals.
- BBB Scraper — Better Business Bureau Profiles — North American company ratings, accreditation, and complaint histories.
📋 Changelog
v1.2 (2026-11)
- Unlocked 1,000+ corporate-graph discovery & scaling: Added automatic related-CIN harvesting (
harvestCinsFromHtml) whencinsis empty or whenmaxItemsexceeds the seed CIN count, allowing single runs to scale to 1,000+ unique Indian companies while preserving exact-list mode whenmaxItems: 0. - Enhanced secondary fallback fields: Derived
classOfCompany,listingStatus,registrationNumber, and 6-digitpincodeautomatically on secondary-source records. - Fast prefill tuning: Set
maxItemsprefill to50for rapid< 25sverification runs with 0 duplicates. - Documentation upgrade: Expanded README with
At a glancetable, 21-character CIN structure breakdown, emoji field tables, and API examples.
v1.1 (2026-11)
- Verified 500-company benchmark run in 89 seconds with 100% core statutory field coverage and 0 duplicate CINs.
v1.0 (2026-06)
- Initial release with dual-source CIN enrichment, RSC payload extraction for directors (DIN) and secured charges, and URL-embedded CIN detection.