IndiaFilings APIindiafilings.com ↗
Search Indian companies and LLPs by name, then fetch MCA registration details: status, directors, capital, address, and more via the IndiaFilings API.
What is the IndiaFilings API?
The IndiaFilings API gives developers access to MCA-registered Indian company and LLP data through 2 endpoints. Use search_companies to find entities by name fragment and retrieve their CIN or LLPIN identifiers, then call get_company to pull a full registration profile including incorporation date, registered address, directors list, capital figures, and ROC code — all sourced from IndiaFilings.
curl -X GET 'https://api.parse.bot/scraper/dbd99a7e-7345-463c-8fbf-d131751f70ce/search_companies?query=tata+consultancy' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace indiafilings-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: IndiaFilings Company Lookup — search by name, then fetch full details."""
from parse_apis.indiafilings_com_api import IndiaFilings, CompanyNotFound
client = IndiaFilings()
# Search for companies matching a name fragment (min 5 chars). limit= caps total items.
for hit in client.company_summaries.search(query="tata consultancy", limit=5):
print(hit.name, hit.entity_type)
# Drill down: take one search result and fetch its full registration profile.
summary = client.company_summaries.search(query="infosys technologies", limit=1).first()
if summary is not None:
company = summary.details()
print(company.name, company.company_status, company.date_of_incorporation)
print("Registered at:", company.registered_address)
# Walk directors / designated partners
if company.directors:
for d in company.directors:
print(f" Director: {d.name} (DIN {d.din}), since {d.begin_date}")
# Point lookup by id discovered from a previous search hit.
if summary is not None:
try:
full = client.companies.get(company_id=summary.id)
print(full.name, "—", full.entity_type, "— charges:", full.charges_count)
except CompanyNotFound:
print("Company not found for that identifier.")
print("exercised: company_summaries.search / summary.details / companies.get / directors")
Searches Indian companies and LLPs registered with the MCA by (partial) name and returns matching entities with their identifier (CIN for companies, LLPIN for LLPs), name and entity type. Matching is token-based on the site's side (a query word may match inside a longer word, e.g. 'infosys' matches 'INFOSYSTEMS'). The site returns at most about 10 suggestions per query and offers no paging, so narrow the query to find a specific entity. Queries shorter than 5 characters are rejected. A query with no matches returns an empty results array. Two round trips per call. The returned id is the input for get_company.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Company or LLP name fragment, at least 5 characters (e.g. 'tata consultancy'). Searching by CIN is not supported here; pass a CIN directly to get_company. |
{
"type": "object",
"fields": {
"count": "number of results returned",
"query": "the search text as used",
"results": "array of matching entities, each with id (CIN or LLPIN), name, entity_type (Company or LLP)"
},
"sample": {
"data": {
"count": 2,
"query": "tata consultancy",
"results": [
{
"id": "ABA-3729",
"name": "METATAG GLOBAL CONSULTANCY LLP",
"entity_type": "LLP"
},
{
"id": "L22210MH1995PLC084781",
"name": "TATA CONSULTANCY SERVICES LIMITED",
"entity_type": "Company"
}
]
},
"status": "success"
}
}About the IndiaFilings API
Search and Identify Entities
search_companies accepts a partial company or LLP name (minimum 5 characters) and returns an array of matches. Each result includes an id (CIN for companies, LLPIN for LLPs), the registered name, and the entity_type. Matching is token-based, so a query word can match inside a longer name on the source side. Searching by CIN directly is not supported — name-based lookup is the entry point.
Fetch Full Registration Profiles
get_company takes a CIN (21 characters, e.g. L22210MH1995PLC084781) or LLPIN (e.g. ABA-3729) and returns the entity's full MCA profile as published on IndiaFilings. Response fields include name, entity_type, status, incorporation_date, registered_address, roc_code, email (and its domain), listed status (companies only), obligation (partner contribution, LLPs only), and updated_on. The directors array contains each director or designated partner's name, din, begin_date, and DIN status.
Coverage and Freshness
The API covers companies and LLPs registered with India's Ministry of Corporate Affairs (MCA). The updated_on field on each profile indicates when IndiaFilings last refreshed that record. The profile_url field links back to the public IndiaFilings page for the entity, useful for cross-referencing or directing users to the source.
The IndiaFilings API is a managed, monitored endpoint for indiafilings.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when indiafilings.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official indiafilings.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Verify Indian vendor or partner company status and incorporation date before onboarding
- Build a due-diligence workflow that resolves a company name to its CIN and pulls director details
- Enrich a CRM with MCA registration data (address, ROC code, listed status) for Indian entities
- Screen LLPs by fetching LLPIN profiles and checking partner contribution obligations
- Automate KYC data collection by resolving registered email addresses for Indian companies
- Monitor director DIN status changes across a portfolio of Indian companies
- Populate a compliance database with incorporation dates and ROC codes for Indian subsidiaries
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does IndiaFilings have an official developer API?+
What does the directors field in get_company include?+
directors array returns one object per director or designated partner, containing their name, din (Director Identification Number), begin_date in YYYY-MM-DD format, and status reflecting the DIN status as recorded on the MCA profile. It reflects the latest director information available on the IndiaFilings record.Can I search for a company directly by its CIN or LLPIN?+
search_companies — that endpoint requires a name fragment of at least 5 characters. If you already know a CIN or LLPIN, you can pass it directly to get_company to retrieve the full profile without a prior name search.Does the API return historical filings, financial statements, or charge (mortgage) records?+
How current is the data returned by get_company?+
updated_on field (YYYY-MM-DD) showing when IndiaFilings last updated that record. Freshness varies by entity; frequently searched or recently changed companies tend to have more recent update dates. For time-sensitive compliance checks, treat updated_on as the authoritative freshness indicator.