NCLAT Court API

NCLAT Court API provides a seamless and automated solution for retrieving real-time case information from court records. It enables access to details such as case registration number, filing number, filing date, case type, petitioner and respondent information, counsel details, case stage, hearing dates, court name, judge and bench details, and current case status. The API also supports retrieval of orders, judgments, FIR information, IA details, objections, lower court references, transfer details, related documents, and other important case-related data efficiently and accurately.

API Details

Request URL

POST
https://g99.in/api/ecourt/nclat/casesearch
Copied!

Request Body Parameters

Type Name Optional Description
String benchName Required Name of the court or bench handling the case. refer to NCLAT Benches API.
String caseTypeName Required Category or type of the case filed. refer to NCLAT Case Types API.
String caseNumber Required Unique number assigned to the case.

Sample Request Payload

request.json
Copied!
{
  "benchName": "National Company Law Tribunal, Chennai Bench",
  "caseTypeName": "Interlocutory Application(IBC)(IBC)",
  "caseNumber": "IA(I.B.C) - 1/2026"
}

Request Header Parameters

Type Name Value / Description Optional
String Content-Type application/json Required

Sample Code

request.php
Copied!
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://g99.in/api/ecourt/nclat/casesearch',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'
{
  "benchName": "National Company Law Tribunal, Chennai Bench",
  "caseTypeName": "Interlocutory Application(IBC)(IBC)",
  "caseNumber": "IA(I.B.C) - 1/2025"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
request.py
Copied!
import requests
import json

url = "https://g99.in/api/ecourt/nclat/casesearch"

payload = json.dumps({
  "benchName": "National Company Law Tribunal, Chennai Bench",
  "caseTypeName": "Interlocutory Application(IBC)(IBC)",
  "caseNumber": "IA(I.B.C) - 1/2025"
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
request.cs
Copied!
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://g99.in/api/ecourt/nclat/casesearch");
var content = new StringContent("\n\n\n\n\n\n{\r\n  \"benchName\": \"National Company Law Tribunal, Chennai Bench\",\r\n  \"caseTypeName\": \"Interlocutory Application(IBC)(IBC)\",\r\n  \"caseNumber\": \"IA(I.B.C) - 1/2025\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response

HTTP status code 200

Key Type Description
caseType String Case type as registered
filingNumber String File number assigned to the case
filingDate String Case filing date
filingYear String Filing year if available
registrationNumber String Case registration number
registrationDate String Date of registration of the case
cnrNumber String Unique case identification number
state String Court state where case is registered
district String Court district where case is registered
courtName String Name of the court eg Junior Civil Judge Court
courtNumberAndJudge String Court number and judge info if available.
courtEstablishment String Court complex / establishment name where the case is being contested
firstHearingDate String Date of first hearing of the case
nextHearingDate String Next hearing date if case is in pending state. For disposed cases this could be empty.
previousHearingDate String Date of last hearing
caseStage String Current stage of the case.
decisionDate String Date of decision if the case stands disposed.
natureOfDisposal String Type of disposal, contested, uncontested etc if the case is disposed.
caseStatus String Case status - Pending, Disposed etc.
coram String Generally applies to Hon'able High courts, indicates the number of judges on the bench
judicial String Judicial section information generally available for higher courts only
causeListName String Name of the cause list if available
bench String Applicable for higher courts. Name of the bench that heard the case.
shortOrder String Short order if put up for hearing on another date
petitioners Array

List of petitioners as mentioned in the case. Each petitioner has the following fields.

petitionerName - Name of the petitioner petitionerCounsel- Name of the advocate / counsel if available.

petitionersText String All the petitioners's information combined in one long text format.
respondents Array

List of respondents as mentioned in the case. Each respondent in the list has the following fields.

respondentName - Name of the respondent respondentCounsel - Counsel or the advocate name for the respondent.

respondentsText String All the respondent's information combined in one long text format
acts Array

List of Acts and corresponding sections as applicable to this case. Each entry in the list has the following structure.

act - Name of the act as applied to the case sections - Applied sections from the corresponding act.

interlocutoryApplicationDetails Array

List of any interlocutory petitions/applications (IA) filed. An IA is generally filed in existing legal proceedings to request interim relief. Each item in the list has the following structure.

number IA file number party Party name and counsel that filed IA filingDate Date of filing of the IA application nextDate Next date as applicable status Status of the application - approved, rejected, in hearing etc. caseNumber - case number if available particulars - particulars of the case if available

Null if the details are not available

caseHistory Array

History of case hearings. This is a list, each item in the list has the following structure.

reg - Registration number if available causeListType - Cause list name generally applicable for higher courts only judge - Judge / bench that heard the case. purpose - Purpose of hearing nextHearingDate - Date of next hearing as assigned businessDate - Date of hearing businessDescription - A brief description of what happened during this hearing adjournmentReason - Reason if the hearing was adjourned.

orders Array List of order and judgements if available. Each order in the list has the following structure - number - Order number orderDate - Date on which the order was issued judge - Judge / bench that issued the order attachment - In basic mode, as it is a real-time API, order documents are not provided and set as null. Refer to Courts Download Order And Judgement Document API for order documents pdf links. details - Order details if available orderType - orderType such as interim, final if available
objections Array List of any objections raised by either of the parties during the trial. Each objection has the following structure. number - Objection number objection - Objection title / description scrutinyDate - Date of scrutiny as assigned for the object complianceDate - Compliance date if any receiptDate - Date of receipt of the scrutiny
category String Category of the case generally applies to the higher courts.
subCategory String Sub category if applicable
subSubCategory String Further division under the sub category if applicable
fir Object Details of FIR if any mapped to this case. The FIR object has the following structure. state - State where the police station is located district - District where the police station is located policeStation - Name of the police station number - FIR number year - Date or year in which FIR is filed
earlierCourts Object Lower court information if applicable. It has the following structure - courtNumberAndName - Name of the lower court caseNumberAndYear - Case number as year as registered in the lower court state - State where lower court is located district - District where lower court is located
documents Array List of documents as filed by the counsels in the case. Each document object has the following structure. docNumber - Document number as assigned at the time of filing docName - Name of the document filed advocate - Counsel name who filed the document receivingDate - Date of receiving as registered in the court records filedBy - Party name
linkedCases Array Case linked to the provided case. Each linked case object has the following structure. filingNumber - Linked case filing number caseNumber - Linked case number status - Linked case status caseTitle - Title of the case if available petitioner - Petitioner party name if available respondent - Respondent party name if available statusDescription - description of the status if available
transfers Array List of transfers to other courts if any. Each transfer object has the following structure. reg - Registration no transferred - Date of transfer from - Source court name to - Destination court name

Sample Response

Sample response for valid document

response.json
Copied!
{
    "caseType": "Interlocutory Application(IBC)(IBC)",
    "filingNumber": "72/2025",
    "filingDate": "07-04-2025",
    "filingYear": "2025",
    "registrationNumber": "13/2026",
    "registrationDate": "21-01-2026",
    "cnrNumber": null,
    "state": "Tamil Nadu",
    "district": "Chennai",
    "courtName": "City Civil Court, Chennai",
    "courtNumberAndJudge": "19-IX ASSISTANT JUDGE",
    "courtEstablishment": null,
    "firstHearingDate": "21th January 2026",
    "nextHearingDate": null,
    "caseStage": "Arguments",
    "decisionDate": null,
    "natureOfDisposal": null,
    "caseStatus": null,
    "coram": null,
    "judicial": null,
    "causeListName": null,
    "bench": null,
    "shortOrder": null,
    "petitioners": [
        {
            "petitionerName": "R Kumar",
            "petitionerCounsel": "Advocate- Kathir I"
        }
    ],
    "petitionersText": "1) R Kumar\n Advocate- Kathir I\n",
    "respondents": [
        {
            "respondentName": "Rani",
            "respondentCounsel": null
        }
    ],
    "respondentsText": "1) Rani",
    "acts": [
        {
            "act": "CodeofCivilProcedure",
            "sections": "Order 21 Rule 43,Order 21 Rule 64,Section 151"
        }
    ],
    "caseHistory": [
        {
            "reg": "13/2026",
            "judge": "IX ASSISTANT JUDGE",
            "purpose": "Arguments",
            "nextHearingDate": "27-01-2026",
            "businessDate": "23-01-2026"
        },
        {
            "reg": "13/2026",
            "judge": "IX ASSISTANT JUDGE",
            "purpose": "Service Pending-Notice",
            "nextHearingDate": "23-01-2026",
            "businessDate": "22-01-2026"
        },
        {
            "reg": "13/2026",
            "judge": "IX ASSISTANT JUDGE",
            "purpose": "Service Pending-Notice",
            "nextHearingDate": "22-01-2026",
            "businessDate": "21-01-2026"
        }
    ],
    "orders": [],
    "objections": null,
    "category": null,
    "subCategory": null,
    "subSubCategory": null,
    "fir": {
        "state": null,
        "district": null,
        "policeStation": null,
        "number": null,
        "year": null
    },
    "transfers": []
}

Error Response

Parameter Type Description
status Number Unique error codes for different errors. Always available.
message String Error message describing the error. Always Available.
error Boolean True / False for different errors. Always available.

Error Codes

HTTP Status Error Code Error Message
400 4001 Malformed data or missing required parameter values.
400 4002 Invalid Case Number.
400 4003 Invalid Case Number Type.
500 5001 Request could not be processed. Please try again later.

Sample Error Response

response.json
Copied!
{
  "message": "Malformed data or missing required parameter values.",
  "status": 4001,
  "error": True
}