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

Skip to content
APIserver.in

Directors

Who runs the company, since when, and in what role.

POST/v1/mca/directors

₹4.00

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

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

What it does

Lists current and past directors (or designated partners for an LLP) with DIN, designation, appointment and cessation dates, and DIN status.

Input
CIN
Output
Directors with DIN, designation, dates

Use cases

  • UBO and signatory checks
  • Related-party detection
  • Fraud investigations

Request

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

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/directors",
    headers={
        "Authorization": f"Bearer {os.getenv('APISERVER_KEY', 'as_test_YOUR_KEY')}",
    },
    json={
        "cin": "L29130MH1998PLC115602",
    },
    timeout=10,
)
body = res.json()
print(body["meta"]["charged"], body["meta"]["amount_inr"])
<?php
$ch = curl_init('https://api.apiserver.in/v1/mca/directors');
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' => 'L29130MH1998PLC115602',
    ]),
]);
$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.directors",  : "2026-10-01",  : {    : "L29130MH1998PLC115602",    : null,    : "TAPTI ENGINEERING LIMITED",    : 4,    : 4,    : [      {        : "00327715",        : "Arvind Kulkarni",        : "Chairman & Managing Director",        : "1998-09-01",        : null,        : "Approved"      },      {        : "01844206",        : "Sunita Joshi",        : "Independent Director",        : "2015-07-28",        : null,        : "Approved"      },      {        : "07955318",        : "Rohan Deshpande",        : "Whole-time Director",        : "2017-10-16",        : null,        : "Approved"      },      {        : "07419266",        : "Anand Raghavan",        : "Independent Director",        : "2022-01-10",        : null,        : "Approved"      }    ]  },  : {    : true,    : 4,    : 371,    : "live",    : 1,    : "2026-10-03T09:12:00+05:30",    : "live"  }}

Field dictionary — data

Response data fields
FieldTypeDescription
cinstring | null—
llpinstring | null—
company_namestring—
countinteger—
currentintegerDirectors currently on the board
directorsobject[]—
↳dinstring—
↳namestring—
↳designationstring—
↳appointed_onstring—
↳ceased_onstring | null—
↳din_status"Approved" | "Disqualified"—

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

₹4.00

Directors · incl. GST · failed calls ₹0

Get early access