High Courts Case Summarization And Risk Analysis API
TRANSFORM RAW HIGH COURTS CASE DETAILS INTO ACTIONABLE INSIGHTS WITH AI - GET CASE SUMMARIES, ORDER INSIGHTS, AND RISK ANALYSIS INSTANTLY FROM ANY INDIAN COURT USING THE CASE SUMMARISATION API.
Introduction
The High Court Case Summarisation API is an advanced AI layer built on top of High Court Case and Document APIs, designed to convert complex High Court data into clear, structured, and actionable insights. By providing the court/bench name and case registration number, the API fetches all available case details, orders, and judgments, analyzes them, and generates intelligent summaries and risk indicators in real time.
Key Features
AI Order Summaries: Concise summaries of each High Court order or judgment for quick understanding. Combined Order Summary: A single, unified summary covering the entire order and judgment history. Case Summary: A simplified narrative explaining the case background, progression, and key parties. Risk Assessment: A Risk Level (Very High to No Risk) and Risk Score (0–1000), where lower scores indicate higher litigation risk. Risk Summary: A clear explanation of the factors influencing the assigned risk score and level.
The High Court Case Summarisation API enables banks, NBFCs, insurers, legal tech platforms, compliance systems, and enterprises to instantly understand the nature, trajectory, and risk profile of any High Court case—without reading lengthy orders or judgments.
This API operates in asynchronous mode. Each case order or judgment document is individually fetched and uploaded to the Attestr CDN, ensuring reliable and continuous availability, followed by summarisation, analysis and case score generation. The total processing time may vary depending on the number of order documents linked to a given case. For detailed implementation guidance, please refer to the sections below. Webhooks are also supported for seamless automated response integration.
API Details
#1 - Initiate Request API
| Type | URL | Current Version |
|---|---|---|
| POST | https://api.attestr.com/api/{version}/public/ecourtx/hc/cnr/summarize | v2 |
Request Body Parameters
| Type | Name | Description | Optional (default) | Min Version | Max Version |
|---|---|---|---|---|---|
| String | establishmentCode | High court and bench in which the provided case number exists. Refer to the Establishment Codes Table below. Eg. SKHC01, TRHC01 etc. | Required | v2 | |
| String | registrationNumber | Case number as registered in the specific court. This has the following format. CaseType/Reg.No/Year eg. Arb.A./234/2024, Crl.A/12/2025 Refer link to get complete list of supported case types for all the high courts. | Required | v2 | |
| Boolean | webhook | Optional field. Use this only if you have configured webhooks to receive updates after request is completed. Refer to webhooks section below for details. | Optional | v2 |
Establishment Codes
| Establishment Code | High Court Name | Bench Name |
|---|---|---|
| SKHC01 | High Court of Sikkim | Principal Bench |
| TRHC01 | High Court of Tripura | Principal Bench |
| MLHC01 | High Court of Meghalaya | Principal Bench |
| MNHC01 | High Court of Manipur | Principal Bench |
| HPHC01 | High Court of Himachal Pradesh | Principal Bench |
| GAHC01 | The Gauhati High Court | Principal Seat at Guwahati |
| GAHC02 | The Gauhati High Court | Kohima Bench |
| GAHC03 | The Gauhati High Court | Aizawl Bench |
| GAHC04 | The Gauhati High Court | Itanagar Bench |
| JKHC02 | High Court Of Jammu & Kashmir | Jammu Wing |
| JKHC01 | High Court Of Jammu & Kashmir | Srinagar Wing |
| RJHC02 | Rajasthan High Court | Rajasthan High Court Bench at Jaipur |
| RJHC01 | Rajasthan High Court | Rajasthan High Court Principal Seat, Jodhpur |
| UPHC01 | Uttar Pradesh High Court | High Court of Judicature at Allahabad |
| UPHC05 | Uttar Pradesh High Court | High Court of Judicature at Allahabad |
| UPHC02 | Uttar Pradesh High Court | Allahabad High Court Lucknow Bench |
| CGHC01 | High Court of Chhattisgarh | Principal Bench |
| JHHC01 | High Court of Jharkhand | Principal Bench |
| ODHC01 | High Court of Orissa | Principal Bench |
| HBHC01 | High Court for the State of Telangana | Principal Bench |
| APHC01 | High Court of Andhra Pradesh | Principal Bench |
| GJHC24 | High Court of Gujarat | Principal Bench |
| KLHC01 | High Court of Kerala | Principal Bench |
| UKHC01 | High Court of Uttarakhand | Principal Bench |
| HCMA01 | Madras (Tamilnadu) High Court | Principal Bench Of Madras High Court |
| HCMD01 | Madras (Tamilnadu) High Court | Madurai Bench of Madras High Court |
| WBCHCO | Calcutta (West Bengal) High Court | Original Side |
| WBCHCJ | Calcutta (West Bengal) High Court | Circuit Bench At Jalpaiguri |
| WBCHCA | Calcutta (West Bengal) High Court | Appellate side |
| WBCHCP | Calcutta (West Bengal) High Court | Circuit Bench At Port Blair |
| BRHC01 | The High Court of Bihar | Principal Bench |
| KAHC01 | High Court of Karnataka | Principal Bench at Bengaluru |
| KAHC03 | High Court of Karnataka | Kalburagi Bench At Karnataka |
| KAHC02 | High Court of Karnataka | Dharwad Bench At Karnataka |
| HCBM01 | High Court of Maharashtra | Appellate Side,Bombay |
| HCBM02 | High Court of Maharashtra | Original Side, Bombay |
| HCBM03 | High Court of Maharashtra | Bench At Aurangabad |
| HCBM04 | High Court of Maharashtra | Bench At Nagpur |
| HCBM05 | High Court of Maharashtra | High Court of Bombay at Goa |
| HCBM06 | High Court of Maharashtra | Special Court (TORTS) Bombay High Court |
| DLHC01 | High Court of Delhi | Principal Bench |
| MPHC01 | High Court of Madhya Pradesh | Principal Seat Jabalpur |
| MPHC02 | High Court of Madhya Pradesh | Bench at Indore |
| MPHC03 | High Court of Madhya Pradesh | Bench at Gwalior |
| PHHC01 | High Court of Punjab and Haryana | Principal Bench at Chandigarh |
Request Header Parameters
| Type | Name | Value / Description | Optional | Min Version | Max Version |
|---|---|---|---|---|---|
| String | Content-Type | application/json | Required | v2 | |
| String | Authorization | Basic {authToken} | Required | v2 |
If you do not have the authentication token, please refer to Register App to generate one.
Sample Request Payload
{ "establishmentCode": "DLHC01", "registrationNumber": "CRL.A./1/2024", "webhook": false}Response
Http Status 200
Unique request ID is returned in the response from this API when a request for CNR download is made. This request ID is then used to query the results including the order document attachments. See Querying CNR Results section below for details.
| Key | Description | Type | Min Version | Max Version |
|---|---|---|---|---|
| _id | Unique request Id to be used later for querying the result | String | v2 | |
| number | Unique human readable number to be used for any reference later | String | v2 |
Sample Response
[{ "_id": "AR02zfeuv2iz5ksij09nf", "number": "3801-575765-9695"}]#2 - Querying Result API
| Type | URL | Min Version | Max Version |
|---|---|---|---|
| GET | https://api.attestr.com/api/{version}/public/ecourtx/cnr/async/<asyncId> | v2 |
Request URL Parameters
| Name | Description | Min Version | Max Version |
|---|---|---|---|
| asyncId | Replace <asyncId> in the URL with the _id received in the API above | v2 |
Request Header Parameters
| Type | Name | Value / Description | Optional | Min Version | Max Version |
|---|---|---|---|---|---|
| String | Content-Type | application/json | Required | v2 | |
| String | Authorization | Basic {authToken} | Required | v2 |
Response
Http Status 200
| Key | Description | Type | Min Version | Max Version |
|---|---|---|---|---|
| _id | Request Id as queried in the URL | String | v2 | |
| number | Request number as generated in the court search API response | String | v2 | |
| requestId | Unique ID used by Attestr for request tracing and report generation purposes | String | v2 | |
| status | Status of the request. Possible values are - COMPLETED, INITIATED, ERRORED | String | v2 | |
| input | The input object containing the CNR. | String | v2 | |
| output | CaseRecord output object. Details described below. Null if status is errored or initiated. | CaseRecord Object | v2 | |
| error | Error object if the operation ran into errors, null otherwise. Null if status is completed or initiated. | String | v2 | |
| created | Unix timestamp when the request was placed. | Number | v2 | |
| updated | Unix timestamp when the request was last updated. Null if status is initiated. | Number | v2 | |
| signature | Signature generated using the output and client secret. Used for validating the accuracy of data. Null if status is errored or initiated. | String | v2 |
CaseRecord Object
| Key | Description | Type | Min Version | Max Version |
|---|---|---|---|---|
| riskScore | A numerical value (0–1000) indicating the litigation risk associated with a case. Lower scores represent higher risk, while higher scores denote safer profiles. | String | v2 | |
| riskLevel | A categorical classification derived from the Risk Score — Very High, High, Moderate, Low, No Risk, or Unknown. It provides an at-a-glance understanding of the overall legal risk severity. | String | v2 | |
| riskSummary | A short AI-generated explanation describing why a specific risk level and score were assigned. It highlights key factors such as case type, order outcomes, frequency, and nature of proceedings. | String | v2 | |
| caseSummary | A concise AI-written overview of the entire case, explaining the background, events, parties, and progression. It helps users quickly understand what the case is about without reading full court documents. | String | v2 | |
| caseType | Case type as registered | String | v2 | |
| filingNumber | File number assigned to the case eg 362/2018 | String | v2 | |
| filingDate | Case filing date | String | v2 | |
| filingYear | Filing year if available | String | v2 | |
| registrationNumber | Case registration number eg 362/2018 | String | v2 | |
| registrationDate | Date of registration of the case | String | v2 | |
| cnrNumber | Unique case identification number | String | v2 | |
| state | Court state where case is registered | String | v2 | |
| district | Court district where case is registered | String | v2 | |
| courtName | Name of the court eg Junior Civil Judge Court | String | v2 | |
| courtNumberAndJudge | Court number and judge info if available. Eg. 2-Additional Junior Civil Judge | String | v2 | |
| courtEstablishment | Court complex / establishment name where the case is being contested | String | v2 | |
| firstHearingDate | Date of first hearing of the case | String | v2 | |
| nextHearingDate | Next hearing date if case is in pending state. For disposed cases this could be empty. | String | v2 | |
| caseStage | Current stage of the case. Eg. BAIL HEARING etc. | String | v2 | |
| decisionDate | Date of decision if the case stands disposed. | String | v2 | |
| natureOfDisposal | Type of disposal, contested, uncontested etc if the case is disposed. | String | v2 | |
| caseStatus | Case status - Pending, Disposed etc. | String | v2 | |
| coram | Generally applies to Hon'able High courts, indicates the number of judges on the bench Eg, 1760 HONOURABLE MR. JUSTICE KALYAN RAI SURANA | String | v2 | |
| judicial | Judicial section information generally available for higher courts only e.g Criminal Section | String | v2 | |
| causeListName | Name of the cause list if available | String | v2 | |
| bench | Applicable for higher courts. Name of the bench that heard the case. eg Single Bench | String | v2 | |
| shortOrder | Short order if put up for hearing on another date | String | v2 | |
| petitioners | 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 | Array | v2 | |
| petitionersText | All the petitioners's information combined in one long text format. | String | v2 | |
| respondents | 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 | Array | v2 | |
| respondentsText | All the respondent's information combined in one long text format | String | v2 | |
| acts | 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. | Array | v2 | |
| interlocutoryApplicationDetails | 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. Null if the details are not available | Array | v2 | |
| caseHistory | 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. | Array | v2 | |
| orders | 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 - Publicly viewable link of Case order and Judgments hosted on Attestr CDN orderSummary - Summarised explanation of the order document | Array | v2 | |
| objections | 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 | Array | v2 | |
| category | Category of the case generally applies to the higher courts. Eg. 10266 - Bail Application Under section 439 Cr. P. C ( 308 ) | String | v2 | |
| subCategory | Sub category if applicable | String | v2 | |
| subSubCategory | Further division under the sub category if applicable | String | v2 | |
| fir | 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 | Object | v2 | |
| lowerCourt | 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 | Object | v2 | |
| documents | 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 | Array | v2 | |
| linkedCases | Case linked to the provided case. Each linked case object has the following structure. filingNumber - Linked case filing number caseNumber - Linked case number | Array | v2 | |
| transfers | 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 | Array | v2 | |
| combinedOrderSummary | Provides a unified summary of all orders to give a complete picture of sequence of events. |
Sample Response
Sample response for valid case details
{ "_id": "AR0-f9-Q5XDGtwDhDg", "number": "3985-499458-5005", "requestId": "b1206eca-2090-43e2-b77c-7c0a2be05fad", "status": "COMPLETED", "input": {}, "output": {}, "error": null, "created": 1763477436322, "createdBy": null, "createdByOrg": "OX02zfeuvt8akkilm7kpt", "client": "AC02zfeuvg8qksd36sou", "updated": 1763482549743, "signature": "43011c78b3011018c018bb2ead265a4db0c691e90c578111a7fe8d7a7327a031", "tracker": [], "metadata": null}Sample response for invalid case number / data does not exist
{ "_id": "AR0YVLJw0S4NEWe-3S", "number": "3980-800865-9983", "requestId": "0ac9ccbd-877b-45db-89c6-d36c2967bcba", "status": "COMPLETED", "input": { "establishmentCode": "GAHC01", "registrationNumber": "WP(C)/5110/2023", "summarization": true, "type": "CNR_SUMMARIZE", "webhook": false }, "output": { "valid": false, "message": "Data not found", }, "error": null, "created": 1762622603777, "createdBy": null, "createdByOrg": "OX02zfeuvt8akkilm7kpt", "client": "AC02zfeuvg8qksd36sou", "updated": 1762622700698, "signature": "6ab2a43fc09c346a585605e292a984598d7e37082b56d23a7494b82166d95ceb", "tracker": [], "metadata": null}#3 - Case PDF Download API
| Type | URL | Min Version | Max Version |
|---|---|---|---|
| GET | https://api.attestr.com/api/{version}/public/instachecks/report/pdf?scope=checkx-pdf&xAttestrId=<requestId>&service=CNR_SUMMARIZE | v2 |
Request URL Parameters
| Name | Description | Min Version | Max Version |
|---|---|---|---|
| asyncId | Replace <requestId> in the URL from the requestId in the output of Querying CNR Result API. | v2 |
Request Header Parameters
| Type | Name | Value / Description | Optional | Min Version | Max Version |
|---|---|---|---|---|---|
| String | Content-Type | application/json | Required | v2 | |
| String | Authorization | Basic {authToken} | Required | v2 |
Response
Http Status 200
PDF of the case record. All the order and judgment documents are provided as an Annexure in the this PDF for easy access.
Sample response

Error Response
| Parameter | Type | Description |
|---|---|---|
| code | Number | Unique error codes for different errors. Always available. |
| message | String | Error message describing the error. Always Available. |
| details | String | Detail error message. Available only for certain types of errors. |
Error Codes
| HTTP Status | Error Code | Error Message |
|---|---|---|
| 400 | 4001 | Malformed data or missing required parameter values |
| 400 | 4005 | Operation could not be performed due to low credits balance |
| 401 | 4016 | Invalid client authorization |
| 403 | 4031 | Unauthorized access |
| 403 | 4035 | Requested service is not provisioned for your account |
| 403 | 4039 | Client's IP address is not whitelisted |
| 403 | 4035 | Requested service is not provisioned for your account |
| 429 | 4291 | Maximum account rate limit exceeded |
| 429 | 4292 | Maximum API rate limit exceeded |
| 429 | 4293 | Maximum account daily limit exceeded |
| 429 | 4294 | Maximum API daily limit exceeded |
| 500 | 5001 | Request could not be processed |
Sample Error Response
{ "code": 4001, "message": "Malformed data or missing required parameter values"}Webhooks
Court record check supports the following two webhook events.
See Webhooks for more details on how to register webhooks.
- async.completed
- async.errored
To enable webhooks, the API input parameter webhook must be set as true while initiating the request.
Webhook Event Payload
| Key | Type | Description | Min Version | Max Version |
|---|---|---|---|---|
| _id | String | ID of the async request. This is same as received in the output of Person / Business search API as described above. | v1 | |
| requestId | String | Unique request ID for internal tracing purposes. | v1 | |
| status | String | One of COMPLETED OR ERRORED | v1 | |
| output | Object | CNR Record output object same as output key described in Querying CNR Result API above. | v1 | |
| error | Object | Error object if the court checks runs into errors. The structure of this is same as the Error Response object described above. | v1 | |
| signature | String | generated using hmacHexDigest of output object and client secret. Null if status is errored. | v1 |