MCA Data API · India

The MCA data API,
built for developers.

Company master data, directors, charges, filings and extracted financials for every company registered in India — clean JSON, one API key, transparent pricing.

check_circleNo credit card to start check_circleSandbox on real data check_circlePublished pricing
api.filesure.in
curl https://api.filesure.in/v1/companies/L74110KA2013PLC096530 \
  -H "Authorization: Bearer fsk_live_••••"
import requests
r = requests.get(
  "https://api.filesure.in/v1/companies/" + cin,
  headers={"Authorization": f"Bearer {KEY}"})
const res = await fetch(
  `https://api.filesure.in/v1/companies/${cin}`,
  { headers: { Authorization: `Bearer ${KEY}` } })
check_circle200 OKapplication/json · 142 ms
{
  "data": {
    "cin": "L74110KA2013PLC096530",
    "company": "SWIGGY LIMITED",
    "masterData": {
      "companyData": {
        "companyStatus": "Active",
        "whetherListedOrNot": "Listed",
        "dateOfIncorporation": "09/12/2013",
        "authorisedCapital": "250000000000",
        "paidupCapital": "22390000000"
      },
      "directorData": [ … 6 directors ],
      "indexChargesData": []
    }
  },
  "meta": { "priceChargedPaisa": 150 }
}

Trusted by teams building on Indian company data

3.49M+
Entities tracked
Companies, LLPs & foreign cos
8.4M+
Directors
Resolved by DIN
150M+
Filed documents
Statutory filings & financials
138T+
Authorised capital tracked
₹76T+ paid-up
3.7M+
Identity links
Renames & old CINs resolved
Live
Refreshed daily
Synced from the MCA

The Catalog

Everything in the MCA filing cabinet, as an API.

Six endpoint families, one consistent JSON envelope. Query by CIN or DIN and get verified registry data back in milliseconds.

corporate_fare

Company

GET /v1/companies/:cin

Master data: CIN, status, registered address, capital, category.

View docsarrow_forward
badge

Directors

GET /v1/directors/:din

Director profile by DIN and the companies they're tied to.

View docsarrow_forward
account_balance

Charges

GET /v1/companies/:cin/charges

Open and satisfied charges with lender and amount detail.

View docsarrow_forward
description

Filings

GET /v1/companies/:cin/filings

Every document a company has filed — list, filter, download.

View docsarrow_forward
data_object

Extractions

GET /v1/companies/:cin/extractions

Structured data from MGT-7, PAS-3, AOC-4 and charge forms.

View docsarrow_forward
lock_open

Unlock & refresh

POST /v1/companies/:cin/unlock

Unlock a company to trigger a fresh MCA pull and open its documents.

View docsarrow_forward

Your Control Panel

A dashboard that shows exactly where your spend goes.

  • account_balance_walletPrepaid walletTop up in INR and watch the balance draw down per call — billed to the paisa.
  • vpn_keyLive & test keysIssue, roll and revoke keys yourself. No ticket, no wait.
  • monitoringUsage & errorsPer-endpoint call counts and recent errors, updated in real time.
Explore the dashboardarrow_forward
lockapp.filesure.in/dashboard

Welcome back, Aditya

Your developer dashboard

Wallet balance
₹6,180.00
Each live API call deducts from this balance.
vpn_key
Active API keys
2
Manage keys
sync_alt
Total API calls
14,820
View usage
error_outline
Errors (24h)
0
View errors
All systems active

Coverage & Freshness

Wide coverage, fresh when you need it.

account_balance
Sourced directly from the MCA

Every record traces back to the Ministry of Corporate Affairs — no scraped intermediaries.

sync
Refreshed on demand

Force a fresh registry pull for any company the moment you need the latest state.

corporate_fareCompaniesPrivate, public & OPC
handshakeLLPsFull LLP registry
badgeDirectorsProfiles by DIN
account_balanceChargesOpen & satisfied
descriptionFilingsFull document history
data_objectExtractionsStructured from forms

The Difference

Self-serve, the way an API should be.

Most company-data vendors make you talk to sales before you see a single response. Here's the whole journey — no gatekeeping.

01
Live secret key
fsk_live_8Kd2••••••4Qxcontent_copy
boltIssued instantly on signup
vpn_key

Instant API key

Sign up and your live and test keys are waiting in the dashboard. No approval queue.

blockSales call required
02
test key
GET /v1/companies/:cin
{ "name": "SWIGGY LIMITED",
  "status": "Active" }
science

Sandbox on real data

Your test key hits live registry records, so what you build is what you ship.

blockDemo-gated access
03
/companies/:cin₹1.50
/directors/:din₹1.50
/companies/:cin/unlock₹330
sellEvery price, published
price_check

Published pricing

Every endpoint's per-call price is on the rate card before you write a line of code.

block"Contact us for a quote"
04
₹6,180Wallet
3,820 calls usedbilled to the paisa
account_balance_wallet

Pay as you go

Top up a prepaid wallet and spend only on successful calls — billed to the paisa. Failed calls are never charged.

blockAnnual contract
05
1Sign up
2Call the sandbox
3Recharge wallet
4Flip to live key
rocket_launch

Live in minutes

From first signup to production traffic is four steps — and no human in the loop.

blockWeeks of procurement

Use Cases

Built for teams that run on company data.

payments

Lending & credit

Underwrite with live charges and financials pulled straight from the registry.

verified_user

Due diligence & KYB

Verify any counterparty before you onboard — directors, status, and history.

monitoring

Monitoring

Watch a portfolio for new filings and charges as they hit the MCA.

query_stats

Data & research

Bulk company and director intelligence for analytics and enrichment.

Pricing

Pay per call. No contracts. No surprises.

Every endpoint has a published price. Prepaid wallet, billed to the paisa. See exactly what each call costs before you write a line of code.

See the full rate card
Published rate cardno hidden fees
corporate_fare
Company master dataGET /v1/companies/:cin
₹1.50 / call
badge
Director profileGET /v1/directors/:din
₹1.50 / call
lock_open
Unlock a companyPOST /v1/companies/:cin/unlock
₹330.00 / unlock
description
Download a filing documentGET .../filings/:id/download
₹0.15 / call
infoEvery call returns live registry data. Failed calls are never charged.

Trust & Reliability

Source-of-truth data you can build a business on.

account_balance

Direct from the MCA

Every field traces back to the Ministry of Corporate Affairs.

sync

Refreshed on demand

Force a fresh registry pull whenever you need the latest.

encrypted

Encrypted end to end

TLS in transit, encrypted at rest. Keys you control.

receipt_long

GST-registered

GST-registered and GST-invoiced for every recharge.

science

Sandbox on real data

Test against live registry records before you spend a paisa.

Developer Experience

boltOpenAPI 3.0 · Scalar

Docs you can actually call.

Generated from a hand-authored OpenAPI 3.0 spec and rendered with Scalar — one source of truth that stays in lock-step with the live API. Search every endpoint, read 117 real examples, and fire a request right from the page.

lockapi.filesure.in/docs

Get company master data

lockAuth Required
GET/v1/companies/{cin}

The full MCA master-data packet — registration, type, capital, status, addresses, directors and charges — surfaced exactly as the MCA returns them.

Path parameters

cinstring21-char CIN, 6-char FCIN or 8-char LLPINrequired

Query parameters

idTypeenumcin · fcin · llpin — auto-detect when omitted

Responses

200 400 404 → CompanyResponse
GET/v1/companies/{cin}
curl 'https://api.filesure.in/v1/companies/U74999HR2015FTC056386?idType=cin' \
  --header 'x-api-key: YOUR_SECRET_TOKEN'
const res = await fetch(
  `https://api.filesure.in/v1/companies/${cin}`,
  { headers: { "x-api-key": KEY } })
const { data } = await res.json()
import requests
r = requests.get(
  f"https://api.filesure.in/v1/companies/{cin}",
  headers={"x-api-key": KEY})
data = r.json()["data"]
import { request } from "undici"
const { body } = await request(
  `https://api.filesure.in/v1/companies/${cin}`,
  { headers: { "x-api-key": KEY } })
req, _ := http.NewRequest("GET",
  "https://api.filesure.in/v1/companies/"+cin, nil)
req.Header.Set("x-api-key", key)
res, _ := http.DefaultClient.Do(req)
$ch = curl_init("https://api.filesure.in/v1/companies/$cin");
curl_setopt($ch, CURLOPT_HTTPHEADER,
  ["x-api-key: $key"]);
$res = curl_exec($ch);
require "net/http"
uri = URI("https://api.filesure.in/v1/companies/#{cin}")
req = Net::HTTP::Get.new(uri)
req["x-api-key"] = key
var http = new HttpClient();
http.DefaultRequestHeaders.Add("x-api-key", key);
var res = await http.GetStringAsync(
  $"https://api.filesure.in/v1/companies/{cin}");
200400401402403404 Show Schema
{
  "data": {
    "cin": "U74999HR2015FTC056386",
    "company": "CARS24 SERVICES PRIVATE LIMITED",
    "cinHistory": [],
    "nameHistory": [],
    "masterData": {
      "companyData": {
        "companyName": "CARS24 SERVICES PRIVATE LIMITED",
        "companyType": "Company limited by Shares",
        "classOfCompany": "Private",
        "dateOfIncorporation": "02/02/2015",
        "authorisedCapital": 100000000,
        "paidupCapital": 76934000,
        "companyStatus": "Active"
      }
    }
  },
  "meta": { "priceChargedPaisa": 150 }
}
Master data foundSandbox CIN — CARS24 (registered company) expand_more
play_circleTry it live
searchFull-text search
data_object117 real examples
schema77-model explorer
syncOpenAPI-native — always in sync
menu_bookConceptual guide, not just a reference
paletteBranded to FileSure
downloadGenerate your own SDK
file_downloadOr download the OpenAPI spec and generate your own client.

FAQ

Questions, answered.

What can I actually pull from the API?add
Company master data (CIN, status, address, capital, category), directors (profile by DIN and the companies they're tied to), charges (open and satisfied), filings (the full document history for a company), and structured extractions from forms like MGT-7, PAS-3, AOC-4 and the charge forms. Unlocking a company also triggers a fresh pull from the MCA. The API reference has the full schema and response shape for every endpoint.
How does pricing work?add
Three tiers. Flat ₹1.50 per call for the most-used reads (company master, director profile, company filings list). A 1-year unlock for deeper access — ₹330 to unlock a company's filings and extractions. ₹0.15 micro-charges for individual filing downloads and extraction items. Sandbox is always free, account and wallet operations don't cost anything, and you're only ever charged on a successful response. Full rate card.
What's the difference between sandbox and live keys?add
Every account gets both. Test keys (fsk_test_…) call the same endpoints against a fixed whitelist of sample CINs and DINs at zero cost, so you can build and verify your integration end to end without spending a paisa. Live keys (fsk_live_…) query the full registry and bill from your wallet — same code, just swap the key.
How does the prepaid wallet work?add
You top up a wallet in ₹, and every successful call deducts that endpoint's published price, billed to the paisa. Failed calls are never charged. When your balance hits zero, requests are hard-blocked with a 402 until you top up — there is no overdraft or post-paid mode. Recharge, balance, and per-call costs are all in your dashboard.
What exactly is an "unlock" and how long does it last?add
An unlock is a one-time, per-company purchase that opens up the deeper data for that company for one year. Unlocking a company (₹330) triggers a fresh MCA pull and opens its full filings list and extractions for the next 365 days. Reads against an unlocked company within the window are either free or at the ₹0.15 micro-charge tier — see the rate card.
How fresh is the data, and do you cache responses?add
The dataset refreshes daily against the MCA, and any unlock or explicit refresh call triggers an on-demand pull for that company so you get the current registry state at that moment. We do not cache API responses — every call returns live data. You're free to cache on your side; the response includes the timestamp so you always know what you're holding.
What's the coverage and where does the data come from?add
3.49M+ companies and LLPs, 8.4M+ directors, and 150M+ filed documents — every record sourced directly from the Ministry of Corporate Affairs. Coverage includes private, public and one-person companies, LLPs, their directors, charges, statutory filings, and structured extractions from forms like MGT-7, PAS-3, AOC-4 and the charge forms.
Are there rate limits?add
Yes — per-key rate limits keep the platform fast and fair, and every response includes rate-limit headers so you always know where you stand. Exact published thresholds aren't finalised yet, so we haven't put numbers here we'd have to change next week. Limits can be raised for higher-volume workloads — talk to us.
What does a response look like, and how do I handle errors?add
Every endpoint returns a consistent { data, meta } envelope on success and { error, meta } on failure, with machine-readable error codes you can switch on. Every response carries an X-Request-ID header — quote it when you contact support and we can trace the exact call. List endpoints use offset pagination via ?page= and ?limit= (default 50, max 200). Full error-code table in the docs.
How do I keep my API key secure?add
Treat live keys as production secrets — never commit them to a public repo, embed them in client-side code, or paste them into shared channels. If a key is exposed, rotate it from the dashboard immediately; you are responsible for charges incurred under a compromised key. Use test keys (which can't bill) for prototyping, build environments, and CI fixtures.
Can I use the data inside my own product?add
Yes — that's the point. Subject to the Terms of Service, you may build, operate, and improve your own applications, products, and internal systems on top of the API and the data it returns. What you may not do is republish raw API responses in bulk as a standalone dataset or use the API to construct a competing data API.
Do you provide GST invoices?add
Yes. FileSure is GST-registered, 18% GST is added to every wallet recharge, and a GST tax invoice is issued to the billing details on your account for clean accounting and input credit. Recharges run through Zoho Payments.
Do you offer enterprise pricing or higher rate limits?add
For higher-volume workloads, custom pricing, raised rate limits, or a committed-use contract, talk to us and we'll work out terms. The published rate card is the right starting point for most teams — we only quote custom when you actually need it.
What's your refund policy?add
Successful calls are non-refundable, and failed calls are never charged in the first place. Duplicate or erroneous recharges, demonstrable platform faults, and unused wallet balance on account closure are refundable under specific conditions. Full details in the Refund & Cancellation Policy.

Start building with India's
company data today.

Self-serve signup, a sandbox on real data, and pricing you can read before you commit.