Indian Company Data — CIN, Directors & Financials
Pricing
from $4.00 / 1,000 results
Indian Company Data — CIN, Directors & Financials
Look up any Indian company by CIN and get directors, financials, balance sheet, paid-up capital, charges & registry details as clean JSON. MCA-sourced data via Tofler — for due diligence, KYC, lead enrichment & investor research.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
1
Bookmarked
142
Total users
22
Monthly active users
11 hours ago
Last modified
Categories
Share
Indian Company Data — CIN, Directors & Financials 🇮🇳
foXLabs India series: Government tenders · NSE filings · Tech hiring signals · IndiaMART suppliers
🎉 Turn Indian company filings into clean, structured company records — look companies up by CIN or name, or discover them by industry and state, and get directors with DIN, capital, balance sheet, charges, subsidiaries and locations as one row per company. Built for due diligence, KYC / KYB, lead generation and investor research on Indian companies.
🔍 What is Indian Company Data — and when should you use it?
Give this Actor Indian CINs (the 21-character Corporate Identification Number), company names or Tofler URLs — or pick an industry and/or state to discover companies you don't know yet — and it returns one enriched record per company from the public company pages of Tofler, which are compiled from Ministry of Corporate Affairs (MCA) filings. Every run reads the pages live.
Use it when you need: a company profile for KYC or vendor onboarding (status, class, registered office, directors with DIN); a lead list of Indian companies by sector and state; director, subsidiary and secured-loan (charge) networks for due diligence.
Use something else when: you need exact profit or net-worth rupee figures (Tofler keeps those in its paid tier — this Actor returns the public tier: revenue band plus year-on-year EBITDA and net-worth change), or personal phone numbers.
🤖 Use with AI agents
Already on the Apify MCP server? Ask for this Actor by name: foxlabs/indian-company-data.
Your agent can pay for its own runs. This Actor is pay-per-event with agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — no Apify account or API token of its own. Billing is the same either way: per delivered company record — rows that only report a failed lookup are free from 25 September 2026.
Otherwise paste this into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want Indian company records from the Apify Actor `foxlabs/indian-company-data`.Input: `cins` is a list of 21-character CINs (exact match); `companyNames` is a list of company names (resolved by search, best-effort); or set `industry` and/or `state` to discover companies. `maxResults` caps the rows; `includeDirectorNetwork: true` adds every board seat of each director.Start with: {"cins":["L17110MH1973PLC019786","L85110KA1981PLC013115"],"maxResults":10}Ask me what to look up, run the Actor, then summarise the rows as a table.
The machine-readable API, MCP config and OpenAPI definition live at apify.com/foxlabs/indian-company-data.md.
📋 Overview
Everything you need to turn Indian company filings into structured data — in one Actor, with no login, cookies or API key.
Why teams pick this Actor:
- ✅ Look up or discover — exact CIN lookup, name lookup, or a lead list by industry × state (30 industries × 36 states and union territories).
- 🧑💼 Directors with DIN — and, on request, every other company each director sits on.
- 🏦 Capital, balance sheet and charges — paid-up and authorised capital, latest balance-sheet items, secured borrowings.
- 🌐 Subsidiaries and locations — subsidiary list plus registered office, branches, factories and warehouses with coordinates.
- 💰 Pay per record — $0.004 per company record, no subscription.
- 🤖 Agent-ready — MCP + x402 agentic payments.
✨ Features
- 🔍 Three ways in —
cins(exact),companyNames(resolved by search),companyUrls(Tofler company URLs). - 🧭 Discovery —
industryand/orstatewalk Tofler's public company directory and enrich every company found. - 🧹 Filters — keep one status (
Active,Strike Off,Dissolved, …) or one class (public, private, one person). - 🕸️ Director network —
includeDirectorNetworkfetches each director's board seats (maxDirectorsPerCompany, default 25). - 🧾 Clean values — capital as numeric ₹ Cr next to the readable text, placeholder dashes turned into
null, ISO dates inside the director network.
🎬 Quick Start
curl -X POST "https://api.apify.com/v2/acts/foxlabs~indian-company-data/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"cins":["L17110MH1973PLC019786","L85110KA1981PLC013115"],"maxResults":10}'
🚀 Getting Started (3 steps)
- Choose your targets — CINs for exact matches, names for convenience, or an industry and state to discover companies.
- Set the cap —
maxResultslimits how many companies come back (default 100; 0 = no limit). - Run and export — download the dataset as JSON, CSV, Excel, HTML or XML.
📥 Input
{"cins":["L17110MH1973PLC019786","L85110KA1981PLC013115"],"maxResults":100}
| Field | Type | Description |
|---|---|---|
cins | array | 21-character CINs, one per line — exact match. |
companyNames | array | Company names, resolved to a CIN by search (best-effort — check name in the output). |
companyUrls | array | Full Tofler company URLs, or a .txt / .csv upload. |
industry | string | Discover companies in one of 30 sectors, e.g. computer-related-services, manufacturing-textiles. |
state | string | Discover companies registered in one of 36 states / UTs (e.g. karnataka), or filter look-ups to it. |
statusFilter | string | Keep one status: Active, Strike Off, Dissolved, Under Liquidation, Dormant, Not Available for eFiling. |
companyClassFilter | string | Keep one class: public, private, one person. |
maxResults | integer | Cap on companies returned (default 100; 0 = unlimited). In discovery mode it is also how many companies are pulled from the directory. |
includeDirectorNetwork | boolean | For every director, also fetch every company they sit on — one extra page per director. Default off. |
maxDirectorsPerCompany | integer | Director network only — how many directors per company get their board seats fetched (default 25, max 100). |
maxConcurrency | integer | Companies fetched in parallel (default 10). |
proxyConfiguration | object | Apify proxy settings (default: Apify proxy, automatic selection). |
More recipes
- Lead list:
{"industry":"computer-related-services","state":"karnataka","maxResults":50}— 50 IT companies registered in Karnataka, each fully enriched (≈ $0.20). - Watch-list screen:
{"companyNames":["Infosys","Reliance Industries"],"statusFilter":"Active","companyClassFilter":"public","maxResults":20}— resolves each name, keeps only active public companies. - Director network:
{"cins":["L85110KA1981PLC013115"],"includeDirectorNetwork":true,"maxResults":1}— Infosys' directors, each with every company they sit on.
📤 Output
One row per company. A lookup that fails still writes a row with an error field (and matched: false when a name could not be resolved), so nothing disappears silently. From 25 September 2026 these rows are not charged.
| Field | Description |
|---|---|
cin / pan | Corporate Identification Number and PAN |
name / status / companyClass | Legal name, status (Active / Strike Off …), public / private class |
incorporationDate / incorporationYear / ageYears | Incorporation date, year and age in years |
description | One-line business description (null when the page has none) |
registeredAddress / registeredState / registeredPincode | Registered office |
paidUpCapital / paidUpCapitalCr / authorisedCapital / authorisedCapitalCr / currency | Capital — readable text and numeric ₹ Cr |
operatingRevenueRange / revenueFyEnd | Public revenue band and financial-year end |
ebitdaChangePct / networthChangePct | Year-on-year change, % |
agm / lastAgmDate / email | Last AGM and the registered email on the filings |
directors[] / directorsCount / directorsText | Board — name, designation, DIN, tenure, profileUrl; with Director network on also directorships[] (company, CIN, status, industry, incorporation date, appointment date, designation) and directorshipsCount |
directorNetworkRequested / directorNetworkCount | Director network only — flag and number of distinct other companies reached through the board |
balanceSheet / balanceSheetText | Latest-year balance-sheet items (₹ Cr) |
charges[] / chargesCount / chargesText | Secured borrowings — holder, amount, date |
subsidiaries[] / subsidiariesCount / subsidiariesText | Subsidiaries — name, incorporation year, location, paid-up capital, link (up to 200 per company; the count is always the full total) |
locations[] / locationsCount | Registered office, branches, factories, warehouses with coordinates (up to 100 per company; the count is always the full total) |
query / nameMatchScore | Name look-ups only — the name you searched and the share of its words found in the resolved legal name (1 = all, 0 = none); null for CIN, URL and discovery rows |
url / matched / source / scrapedAt | Source page, match flag, source name, timestamp |
Sample — Reliance Industries, captured 2026-09-10 with Director network on (lists trimmed to one entry):
{"url": "https://www.tofler.in/company/L17110MH1973PLC019786","cin": "L17110MH1973PLC019786","name": "RELIANCE INDUSTRIES LIMITED","status": "Active","companyClass": "public limited company","pan": null,"incorporationDate": "08 May, 1973","incorporationYear": 1973,"ageYears": 53.3,"description": "The company is engaged in Exploration & Production, Petroleum Refining & Marketing, Retail Investor Relations, Petrochemicals, Textiles, Retail and mobile network operations","registeredAddress": "3 RD FLOORMAKER CHAMBER IV 222 NARIMAN POINT","registeredState": "Maharashtra","registeredPincode": "400021","paidUpCapital": "₹ 13,532.5 Cr","paidUpCapitalCr": 13532.5,"authorisedCapital": "₹ 50,000.0 Cr","operatingRevenueRange": "Over INR 500 cr","revenueFyEnd": "31 March, 2025","ebitdaChangePct": -21.81,"networthChangePct": 5.43,"lastAgmDate": "19 June, 2026","directorsCount": 14,"directors": [{"designation": "Whole-time Director","name": "Hital Rasiklal Meswani","din": "00001623","tenure": "16 years","profileUrl": "https://www.tofler.in/hital-rasiklal-meswani/director/00001623","directorships": [{"companyName": "THE INDIAN FILM COMBINE PVT LTD","cin": "U92100MH1942PTC003702","companyUrl": "https://www.tofler.in/the-indian-film-combine-pvt-ltd/company/U92100MH1942PTC003702","incorporationDate": "1942-10-19","industry": "Recreational, cultural and sporting activities","status": "Active","appointedOn": "2018-07-23","asOn": "2025-07-16","designation": "Director"}],"directorshipsCount": 5}],"directorNetworkRequested": true,"directorNetworkCount": 48,"balanceSheet": {"period": "Mar 2025","currency": "INR (₹ Cr)","items": {"Equity Capital": 13532,"Reserves": 996094,"Borrowings +": 347530,"Long term borrowings": 236899}},"chargesCount": 0,"charges": [],"subsidiariesCount": 291,"subsidiaries": [{"name": "Reliance Digital Health USA Inc.","incorporation": null,"location": "Usa","paidUpCapital": null,"url": null}],"locationsCount": 312,"locations": [{"address": "3 RD FLOORMAKER CHAMBER IV 222 NARIMAN POINT","type": "Registered Office","state": "Maharashtra","pincode": "400021","lat": 19.0759837,"lng": 72.8776559}],"matched": true,"source": "tofler.in","scrapedAt": "2026-09-10T11:29:40.686Z"}
💼 Use cases
1. KYC and vendor onboarding — verify an Indian company before you sign. Input: its CIN. Output: status, class, registered office, directors with DIN, charges. Use: confirm the entity exists, is Active and who runs it.
2. B2B lead lists by sector and state — no names needed. Input: an industry and a state. Output: enriched companies with capital and revenue bands. Use: a ready prospect list.
3. Due diligence and conflict-of-interest checks — see who else the board controls.
Input: a CIN with includeDirectorNetwork: true. Output: every board seat of every director. Use: spot related parties and shared directors.
4. Credit and risk screening — secured borrowings and financial direction. Input: a list of CINs. Output: charges, balance sheet, year-on-year EBITDA and net-worth change. Use: flag leveraged or shrinking counterparties.
🔗 Integration
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('foxlabs/indian-company-data').call({"cins":["L17110MH1973PLC019786"],"maxResults":10});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('foxlabs/indian-company-data').call(run_input={"cins": ["L17110MH1973PLC019786"], "maxResults": 10})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
Automation (n8n / Zapier / Make): schedule or webhook → HTTP request to the Actor API with your cins → handle the JSON dataset → push to a sheet, CRM or dashboard.
📊 Pricing
Pay-per-event: $0.004 per delivered company record (≈ $4 per 1,000 companies), plus Apify's run-start event ($0.00005 per GB of run memory). Director network fetches more pages but costs the same per company. From 25 September 2026, rows that only report a failed lookup (error) are free. Until then Apify still counts them as dataset items. Current pricing.
❓ FAQ
Where does the data come from? From Tofler's public company pages, which compile Ministry of Corporate Affairs (MCA) filings. The Actor reads the public tier only — no login and no paid account.
CIN or name? A CIN is exact. A name is resolved by web search and can land on a similarly named company — check name and nameMatchScore in the output, or use the CIN. A score of 0 usually means a different company — or a brand whose registered legal name is different. A score of 1 can still be a group company that carries the brand in its name — in our test, searching Byju's returned BYJU'S K3 EDUCATION PRIVATE LIMITED — so use the CIN when the exact entity matters.
How does discovery work? Pick an industry and/or state; the Actor walks Tofler's public company directory page by page up to maxResults and enriches every company it finds.
What does Director network add? For each director (up to maxDirectorsPerCompany), every company they sit on — company, CIN, status, industry, incorporation date, appointment date and designation. Measured on Infosys + Reliance: 22 directors → 127 board seats (run gBJT7xLtc5EctFXnI).
Why are exact profit figures missing? Tofler keeps exact profit and net-worth numbers in its paid tier. You get the public revenue band and the year-on-year EBITDA and net-worth change.
Can I export to CSV / Excel / JSON? Yes — directly from the Apify dataset.
🐛 Troubleshooting
- A name returns the wrong company — look at
nameMatchScore(low = likely mismatch) and use the CIN instead; names are resolved by search. - Rows with
matched: falseorerror— the name could not be resolved or the page returned an error; check the spelling or use the CIN. - The run takes long — Director network adds one page per director; lower
maxDirectorsPerCompanyor switch it off. - Discovery returns fewer rows than
maxResults— that industry × state combination has fewer companies in the directory.
⚖️ Is it legal to scrape this data?
The Actor reads publicly accessible company pages; the underlying information is statutory MCA filing data. Director names and DINs are personal data under India's Digital Personal Data Protection Act, 2023 — process them only for a lawful purpose such as KYC or due diligence, and check that your use fits the source website's terms. Tofler is a trademark of its owner; this Actor is not affiliated with Tofler or the MCA.
🤝 Support & contact
- 🌐 Website: data.foxlabs.com.tr
- 📧 Email: info@foxlabs.com.tr
- 🐛 Issues: open a ticket in the Actor’s Issues tab
- 🧰 More clean B2B data actors: Fox Labs on Apify
Changelog
0.3.2 — 2026-09-10 — failed lookups become free (per-record billing)
- You will pay only for delivered company records. The Actor now charges a new
company-recordevent for each delivered company, and rows that only report a failed lookup (error,matched: false) are pushed without a charge. - Timing: Apify applies pricing changes after a 14-day notice. From 25 September 2026 the pricing switches from the per-dataset-item event to
company-recordat the same price ($0.004). Until then billing is exactly as before; the code detects the switch by itself. - No output field changed.
0.3.1 — 2026-09-10 — name-match check, README + dataset schema
- New fields for name look-ups:
queryandnameMatchScore. Names are resolved through web search, and a vague or unknown name could come back as an unrelated company with nothing in the row to show it. Rows fromcompanyNamesnow carry the searched name and the share of its words found in the resolved legal name (1 = all, 0 = none; legal suffixes ignored). Both arenullfor CIN, URL and discovery rows. Additive — no existing field changed, no row is dropped. - README rebuilt to the current Fox Labs standard (AI agents / MCP / x402, use cases, integration, FAQ, troubleshooting, legal, support) with this Actor's real inputs:
cins,companyNames,companyUrls,industry,state, the status / class filters and Director network. The 2026-09-07 README showed a placeholder input (queries) that this Actor does not read. - Typed dataset schema restored (the 0.3 build shipped without it) and extended with the Director network fields and the two new fields.
0.3 — 2026-09-10 — Director network
- New input
includeDirectorNetwork(default off) +maxDirectorsPerCompany(default 25). For every director the Actor fetches their Tofler director page (/<slug>/director/<DIN>) and attachesdirectorships[]— company name, CIN, company URL, status, industry, incorporation date, appointment date, "as on" date, designation — plusdirectorshipsCount. The company row getsdirectorNetworkRequestedanddirectorNetworkCount(distinct other CINs across the board). directors[].profileUrlis now always emitted (link to the director page).- Measured locally 2026-09-10 (Infosys + Reliance, 24 requests, 0 failed): 22 directors → 127 board seats; fill: companyName/cin/companyUrl/incorporationDate/status/appointedOn/asOn/designation 127/127, industry 124/127; uniqueness DIN+CIN 127/127; 96/127 seats have an "as on" date in 2025–2026.
- Additive change: no existing field renamed or removed. Dates in
directorships[]are ISO (YYYY-MM-DD). - A failed director page never drops the company: the director gets
directorships: null+directorNetworkErrorand the company row still ships.
0.2.1 — 2026-07-28
agesplit into typed fields. Tofler renders one string,"1981, 45.1 years", and the Actor shipped it verbatim asage— whileincorporationYear(1981) already carried the year half.ageis replaced by numericageYears(45.1);incorporationYearis unchanged. Measured on 30 live company pages:agefilled 30/30 before →ageYearsfilled 30/30 after,incorporationYear30/30 in both.- Masked empties are
null, not placeholder text. Tofler writes"-"where it has no figure and"NA"/"0"where it has no address detail, and those placeholders were reaching the dataset as values. A singleunmask()helper now maps them tonull. Measured over the same 30 pages:balanceSheet.items26 of 374 cells were the string"-"(12 of 30 companies affected) → 0, nownull;pan7 of 30 was"-"→ 0;locations[]3 cells (address:"NA",pincode:"NA",type:"0") → 0. Whole-record scan for masked empties: 35 → 0. Numeric balance-sheet values,balanceSheetTextand every other field are unchanged. descriptionis the company's business description, not Tofler's ad copy. The field wasmeta[name="description"], i.e. Tofler's SEO line — "Are you looking for Infosys Limited financials? Visit Tofler for its net worth, ratios…" — identical boilerplate on 30 of 30 companies and of no value to a buyer. It now carries the one-line business description Tofler prints above the company paragraph ("The company manufactures and refines sugar in India and internationally"). Measured: 17 of 30 companies have one and now return it, 0 boilerplate leaked, 0 clipped; the other 13 pages carry no description at all and returnnullrather than filler.- Unchanged and re-verified on the same run: CIN, PAN (where present), status, company class, email,
directors[]with DIN, balance-sheet figures, charges, subsidiaries, locations and geo-coordinates.
0.2 — 2026-07-17
- Discovery mode: browse companies by industry + state (30 industries × 36 states) and enrich every match.
- Prefilled example CINs (Reliance, Infosys) so the first run returns full profiles with no setup.
0.1
- Initial release. CIN / company-name / Tofler-URL lookup: identity, status, capital, directors with DIN, latest balance sheet, charges, subsidiaries and locations.