Skip to main content

Criminal Risk Check API

This document highlights the Criminal Risk Check API details.

API Description

Objective

The Criminal Risk Check (CRC) API takes in information such as an individual's name, date of birth, and address as its inputs, and delivers a detailed risk assessment of their potential involvement in criminal activities.

InputOutput
The details of the individual being assessed for potential criminal involvementThe details corresponding to the criminal records fetched for the individual. The complete list of output fields is available in the Success Response Details section.
info
The Criminal Risk Check API employs fuzzy matching techniques to compare the input details against the database. the Criminal Risk Check API also provides a match score, which indicates the degree of similarity between the input details and the database records.

API URL

https://ind-engine.thomas.hyperverge.co/v1/criminalRiskCheck

API Endpoint

criminalRiskCheck

Overview

the Criminal Risk Check API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format and you should upload all images and files as form-data through a POST request.

Authentication

You need a unique pair of application ID ( appId ) and application key (appKey) from HyperVerge to verify your identity for accessing the Criminal Risk Check API.

Method - POST

Headers

ParameterMandatory or OptionalDescriptionAllowed Values
content-type MandatoryThis parameter defines the media type for the request payloadapplication/json
appId MandatoryThe application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tab.This should be a unique value.
appKey MandatoryThe application key shared by HyperVerge. You can find the details in the dashboard's credentials tab.This should be a unique value.
transactionIdMandatoryA unique identifier for tracking a user journeyThis should be both unique and easily associated with the user's journey in your application(s)

Inputs

The following table outlines the parameters required in the Criminal Risk Check API's request body:

ParameterMandatory / OptionalTypeDescriptionInput FormatDefault Value
nameMandatorystringThe full name of the individualNot ApplicableNot Applicable
addressMandatorystringThe residential address of the individualNot ApplicableNot Applicable
fatherNameMandatorystringThe father's name of the individual. Improves match accuracy when address confidence is low or unavailableNot ApplicableNot Applicable
dobOptionalstringThe date of birth of the individual. Used as an additional filter when providedDD/MM/YYYYNot Applicable
jurisdictionTypeOptionalstringBy default, case searches are limited to the district derived from the individual's address. Use this parameter to expand the search to the individual's state or across India.panIndia or stateNot Applicable
enablePDFOptionalstringSet to yes to include a formatted PDF report in the response.
  • Includes a visual risk gauge, personal details, and a card for each matched case
  • Useful for audit and record-keeping purposes
  • See a sample report
yes or noNot Applicable

Request

The following code snippet demonstrates a standard curl request for the Criminal Risk Check API:

curl --location --request POST 'https://ind-engine.thomas.hyperverge.co/v1/criminalRiskCheck' \
--header 'Content-Type: application/json' \
--header 'appId: <Enter_the_App_ID>' \
--header 'appKey: <Enter_the_App_Key>' \
--header 'transactionId: <Enter_the_Transaction_ID>' \
--data '{
"name": "<Enter_the_name>",
"address": "<Enter_the_address>",
"fatherName": "<Enter_the_father_name>",
"dob": "<Enter_the_date_of_birth>",
"jurisdictionType": "<Enter_the_jurisdiction_type>",
"enablePDF": "<yes_or_no>"
}'

Success Responses

The following JSON code snippet demonstrates a success response from the Criminal Risk Check API:

{
"status": "success",
"statusCode": "200",
"result": {
"color": "<Risk_Color>",
"numberOfCases": <Number_Of_Cases>,
"result": [
{
"address": "<Address_As_Found_In_Case_Details>",
"addressScore": <Address_Similarity_Score>,
"algoRisk": "<Risk_Level_From_Algorithm>",
"asrInfo": "<Additional_ASR_Info>",
"businessCategory": "<Business_Category>",
"caseCategory": "<Category_Of_The_Case>",
"caseFilter": "<Applied_Case_Filter>",
"caseNo": "<Case_Number>",
"caseStatus": "<Status_Of_The_Case>",
"caseTypeDescription": "<Case_Type_Description>",
"caseTypeName": "<Case_Type_Name>",
"caseYear": "<Year_Of_The_Case>",
"cnr": "<CNR_Number>",
"courtCode": <Court_Code>,
"courtName": "<Name_Of_The_Court>",
"decisionDate": "<Decision_Date_If_Available>",
"distCode": <District_Code>,
"distMatch": "<District_Match_Status>",
"distName": "<District_Name>",
"falconScore": <Falcon_Score>,
"fatherMatchType": "<Father_Name_Match_Type>",
"firNo": "<FIR_Number>",
"firstHearingDate": "<First_Hearing_Date>",
"isDistrict": <Is_District_Level_Case>,
"isState": <Is_State_Level_Case>,
"jurisdiction": <Jurisdiction_Flag>,
"jurisdictionType": "<Jurisdiction_Type>",
"link": "<Case_Link_URL>",
"matchedAddress": "<Matched_Address>",
"matchedName": "<Matched_Name>",
"maxWordsMatched": <Maximum_Words_Matched>,
"md5": "<MD5_Hash_Of_Case>",
"name": "<Name_Of_The_Person>",
"nameMatchType": "<Name_Match_Type>",
"nameScore": <Name_Similarity_Score>,
"natureOfDisposal": "<Nature_Of_Disposal>",
"oparty": "<Opposing_Party>",
"policeStation": "<Police_Station_Name>",
"purposeOfHearing": "<Purpose_Of_Hearing>",
"rawAddress": "<Raw_Address_From_Record>",
"registrationDate": "<Registration_Date>",
"score": <Overall_Case_Score>,
"source": "<Case_Source>",
"stateCode": <State_Code>,
"stateMatch": "<State_Match_Status>",
"stateName": "<State_Name>",
"totalNameMatch": <Total_Name_Matches>,
"type": <Case_Type_ID>,
"underActs": "<Acts_Under_Which_Case_Is_Registered>",
"underSections": "<Sections_Under_Which_Case_Is_Registered>",
"uniqCaseId": "<Unique_Case_Identifier>",
"verifycode": "<Verification_Code>",
"wordsMatched": [
"<Matched_Word_1>",
"<Matched_Word_2>"
],
"caseColor": "<Case_Color>"
}
],
"pdf": "<PDF_Base64_Encoded_String>"
},
"metaData": {
"requestId": "<Request_ID>"
}
}

Success Response Details

The following table outlines the details of the success response from the Criminal Risk Check API:

ParameterTypeDescription
statusstringThe status of the request
statusCodeintegerThe HTTP status code returned by the Criminal Risk Check API
colorstringThe overall risk color assigned to the individual based on the severity of all associated cases. See Risk Color Levels for all possible values
numberOfCasesintegerThe total number of cases found
addressstringThe address found in the case record
addressScoreintegerThe confidence score for the address match, calculated using structural matching across locality, street, and city. A higher score indicates a stronger address match
algoRiskstringThe risk level derived for the specific case based on the legal sections and acts involved. Each act and section is mapped to a severity category based on client-defined requirements. For example, average risk
asrInfostringAdditional source registry information
businessCategorystringThe business category, if available
caseCategorystringThe category of the case
caseFilterstringThe filter applied for the type of case
caseNostringThe unique case number
caseStatusstringThe current status of the case
caseTypeDescriptionstringThe description of the case type
caseTypeNamestringThe name of the case type
caseYearstringThe year the case was registered
cnrstringThe unique case reference number
courtCodeintegerThe code of the court where the case was filed
courtNamestringThe name of the court handling the case
decisionDatestringThe date on which the decision was made
distCodeintegerThe code of the district where the case is registered
distMatchstringThe match result for the district name
distNamestringThe name of the district
falconScorenumberThe score computed by the Falcon algorithm
fatherMatchTypestringThe strategy used to match the father's name against the database record. Uses the same match types as nameMatchType
firNostringThe FIR number related to the case
firstHearingDatestringThe date of the first hearing for the case
isDistrictintegerIndicates if the jurisdiction is based on district (1 or 0)
isStateintegerIndicates if the jurisdiction is based on state (1 or 0)
jurisdictionbooleanSpecifies whether the case falls under jurisdiction
jurisdictionTypestringThe level of jurisdiction such as state or district
linkstringThe link to view the case document
matchedAddressstringThe address matched during verification
matchedNamestringThe name matched during verification
maxWordsMatchedintegerThe maximum number of words matched in the input
md5stringThe MD5 hash of the case document
namestringThe name involved in the case
nameMatchTypestringThe strategy used to match the input name against the database record. Possible values:
  • EXACT_MATCH : Both names are identical (e.g., "Rahul Sharma" = "Rahul Sharma")
  • EXACT_FUZZY_MATCH : Minor phonetic variations (e.g., "Rahul Sharma" ≈ "Rahool Sharma")
  • PARTIAL_EXACT_MATCH : One name fully matches a part of the other (e.g., "Rahul Kumar Sharma" = "Rahul Sharma")
  • PARTIAL_FUZZY_MATCH : Partial match with slight variations (e.g., "Rahul Kumar Sharma" ≈ "Rahool Sharma")
  • NO_MATCH : Names do not match
nameScoreintegerThe score for the name match
natureOfDisposalstringThe nature of the case disposal
opartystringThe name of the opposing party
policeStationstringThe name of the police station associated with the case
purposeOfHearingstringThe stated purpose for the court hearing
rawAddressstringThe unprocessed address data
registrationDatestringThe date when the case was registered
scorenumberThe final score used to determine risk
sourcestringThe source from which the case was fetched
stateCodeintegerThe code of the state where the case is registered
stateMatchstringThe match result for the state name
stateNamestringThe name of the state
totalNameMatchintegerThe total number of words matched in the name
typeintegerThe case type indicator
underActsstringThe acts under which the case is filed
underSectionsstringThe sections under which the case is filed
uniqCaseIdstringThe unique identifier for the case
verifycodestringThe verification code for the case report
wordsMatchedarrayThe list of matched words from the name or address
caseColorstringThe risk color for this specific case. See Risk Color Levels for all possible values
pdfstringThe base64-encoded PDF report containing a visual risk gauge, personal details, and a detailed card for each matched case. Useful for audit purposes. Returned only when enablePDF is set to yes. See a sample report.

Disclaimer: This report is compiled from publicly available records across courts, tribunals, and defaulters lists in India. Its accuracy depends on publicly available data at the time of retrieval. It should not be construed as legal, financial, or professional advice. Users are advised to conduct independent verification before making decisions based on this report.
requestIdstringThe unique request identifier provided in metadata

Risk Color Levels

The following table describes the possible values for the color and caseColor fields:

ColorRisk LevelDescription
RedHigh / Very High RiskOne or more cases with high or very high risk severity are associated with the individual
YellowRequires Manual ReviewThe legal section or act associated with the case is not yet categorized in the risk database. Manual review is recommended
GreenLow / Very Low RiskNo significant criminal risk detected; any associated cases are of low severity

Error Responses

The following are the error responses from the Criminal Risk Check API:

{
"message": "name should not be empty",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"status": "failure",
"statusCode": 500,
"message": "Internal Server Error",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}

Error Response Details

A failure or error response from the module contains a failure status, with a relevant status code and error message. The following table lists all error responses:

Status CodeError MessageError DescriptionError Resolution
400name should not be emptyThe request has a null or undefined value for the name parameterEnsure the name field is present and non-empty in the request body
400Input Validation Error: is not one of enum values: panIndia,stateAn invalid value was passed for jurisdictionTypeUse panIndia or state as the value for jurisdictionType
400Input Validation Error: is not one of enum values: yes,noAn invalid value was passed for enablePDFUse yes or no as the value for enablePDF
401Missing/Invalid credentialsThe request is missing the mandatory appId and appKey combination or has invalid valuesVerify and provide valid credentials from the dashboard's credentials tab
500Internal Server ErrorAn unexpected error occurred on the serverCheck the request headers or contact the HyperVerge team for resolution
503External source downtimeThe underlying data source is temporarily unavailableRetry the request after some time. Contact the HyperVerge team if the issue persists
504timeout errorThe request timed out before a response was receivedRetry the request after some time. Contact the HyperVerge team if the issue persists
Was this helpful?
Ask AIBeta
Hi! How can I help?
Ask me anything about HyperVerge products, APIs, and SDKs.
Try asking: