Early accessWe're onboarding teams in batches. The sandbox and docs are open to everyone. Request access →

Skip to content
APIserver.in

Company

MCA company master: status, capital, incorporation, RoC.

POST/v1/mca/company

₹3.50

per successful call · incl. GST · failed calls ₹0

Need this plus more? Add it to a Business360 call →Company master is a Business360 module. Combine it with others and pay only for what succeeds, capped at ₹10.00.

What it does

Returns the MCA master record for a company (CIN) or LLP (LLPIN): name, status, class, category, incorporation date, RoC, capital, listing status and registered address.

Input
CIN or LLPIN
Output
Company master data

Use cases

  • B2B onboarding
  • Contract counterparty checks
  • Credit underwriting

Request

curl https://api.apiserver.in/v1/mca/company \
  -H "Authorization: Bearer as_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cin":"U17120KA2016PTC094312"}'
const res = await fetch("https://api.apiserver.in/v1/mca/company", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.APISERVER_KEY ?? "as_test_YOUR_KEY"}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "cin": "U17120KA2016PTC094312"
  }),
});

const { success, data, meta, error } = await res.json();
console.log(meta.charged, meta.amount_inr); // failed calls are never charged
import os, requests

res = requests.post(
    "https://api.apiserver.in/v1/mca/company",
    headers={
        "Authorization": f"Bearer {os.getenv('APISERVER_KEY', 'as_test_YOUR_KEY')}",
    },
    json={
        "cin": "U17120KA2016PTC094312",
    },
    timeout=10,
)
body = res.json()
print(body["meta"]["charged"], body["meta"]["amount_inr"])
<?php
$ch = curl_init('https://api.apiserver.in/v1/mca/company');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . (getenv('APISERVER_KEY') ?: 'as_test_YOUR_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'cin' => 'U17120KA2016PTC094312',
    ]),
]);
$body = json_decode(curl_exec($ch), true);
echo $body['meta']['charged'] ? 'charged' : 'not charged';
Request body fields
FieldTypeDescription
cinstring21-character Corporate Identification Number.
llpinstringLLP Identification Number (AAA-1234).

Response

Sample response for a fictional sandbox entity. Click any key to copy its JSON path.

{  : true,  : "as_req_01J9X2K7R8M4V6T2Q9W3E5Y1ZB",  : "mca.company",  : "2026-10-01",  : {    : "company",    : "U17120KA2016PTC094312",    : null,    : "KAVERI TEXTILES PRIVATE LIMITED",    : "Active",    : "Private",    : "Company limited by shares",    : "Non-government company",    : "2016-05-12",    : "RoC-Bengaluru",    : "Unlisted",    : 5000000,    : 3250000,    : {      : "17120",      : "Textiles"    },    : "2025-09-26",    : "2025-03-31",    : {      : "No. 14, 3rd Cross, Phase II",      : "Peenya Industrial Area",      : "Bengaluru",      : "Bengaluru Urban",      : "Karnataka",      : "560058"    }  },  : {    : true,    : 3.5,    : 388,    : "live",    : 1,    : "2026-10-03T09:12:00+05:30",    : "live"  }}

Field dictionary — data

Response data fields
FieldTypeDescription
entity_type"company" | "llp"—
cinstring | null—
llpinstring | null—
namestring—
status"Active" | "Strike Off" | "Under Liquidation"—
classstringPrivate / Public / LLP
categorystring—
sub_categorystring—
date_of_incorporationstring—
rocstringRegistrar of Companies
listing_status"Listed" | "Unlisted"—
authorised_capital_inrnumberAuthorised capital in INR (0 for LLPs)
paid_up_capital_inrnumberPaid-up capital, or total contribution for an LLP
industryobject | null—
↳nic_codestring—
↳descriptionstring—
last_agm_datestring | null—
last_balance_sheet_datestring | null—
registered_addressobject—
↳line1string—
↳localitystring—
↳citystring—
↳districtstring—
↳statestring—
↳pincodestring6-digit PIN code

Errors

Every error uses the same envelope and is billed ₹0 — `meta.charged` is always false.

Errors this endpoint can return
HTTPCodeWhat it meansRetryBilled
400VALIDATION_FAILEDSomething in the request isn't in the right shape — usually an ID with a typo or a missing field.no₹0
401AUTH_INVALID_KEYWe couldn't find a valid API key on this request.no₹0
402WALLET_INSUFFICIENT_BALANCEYour wallet doesn't have enough for this call, so we didn't run it.no₹0
404RECORD_NOT_FOUNDThe source has no record for this ID.no₹0
429RATE_LIMITEDYou sent requests faster than your key's limit.yes₹0
503PROVIDER_UNAVAILABLEAll upstream sources for this check were down, even after fallback.yes₹0
504PROVIDER_TIMEOUTThe upstream source took too long to answer.yes₹0

₹3.50

Company · incl. GST · failed calls ₹0

Get early access