Search cases across district, high, and supreme courts
Full-text search across all court types. At least one of litigant, petitioner, respondent, advocate, judge, filingNumber, or firNumber is required. Combine multiple filters to narrow results.
curl --request POST \
--url https://api-neevlegal.neeved.com/api/v1/case-search \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"litigant": "<string>",
"petitioner": "<string>",
"respondent": "<string>",
"advocate": "<string>",
"judge": "<string>",
"filingNumber": "<string>",
"caseType": "<string>",
"year": 123,
"firNumber": "<string>",
"policeStation": "<string>",
"state": "<string>",
"district": "<string>",
"filingDateFrom": "<string>",
"filingDateTo": "<string>",
"decisionDateFrom": "<string>",
"decisionDateTo": "<string>",
"page": 1,
"perPage": 10
}
'import requests
url = "https://api-neevlegal.neeved.com/api/v1/case-search"
payload = {
"litigant": "<string>",
"petitioner": "<string>",
"respondent": "<string>",
"advocate": "<string>",
"judge": "<string>",
"filingNumber": "<string>",
"caseType": "<string>",
"year": 123,
"firNumber": "<string>",
"policeStation": "<string>",
"state": "<string>",
"district": "<string>",
"filingDateFrom": "<string>",
"filingDateTo": "<string>",
"decisionDateFrom": "<string>",
"decisionDateTo": "<string>",
"page": 1,
"perPage": 10
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
litigant: '<string>',
petitioner: '<string>',
respondent: '<string>',
advocate: '<string>',
judge: '<string>',
filingNumber: '<string>',
caseType: '<string>',
year: 123,
firNumber: '<string>',
policeStation: '<string>',
state: '<string>',
district: '<string>',
filingDateFrom: '<string>',
filingDateTo: '<string>',
decisionDateFrom: '<string>',
decisionDateTo: '<string>',
page: 1,
perPage: 10
})
};
fetch('https://api-neevlegal.neeved.com/api/v1/case-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-neevlegal.neeved.com/api/v1/case-search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'litigant' => '<string>',
'petitioner' => '<string>',
'respondent' => '<string>',
'advocate' => '<string>',
'judge' => '<string>',
'filingNumber' => '<string>',
'caseType' => '<string>',
'year' => 123,
'firNumber' => '<string>',
'policeStation' => '<string>',
'state' => '<string>',
'district' => '<string>',
'filingDateFrom' => '<string>',
'filingDateTo' => '<string>',
'decisionDateFrom' => '<string>',
'decisionDateTo' => '<string>',
'page' => 1,
'perPage' => 10
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-neevlegal.neeved.com/api/v1/case-search"
payload := strings.NewReader("{\n \"litigant\": \"<string>\",\n \"petitioner\": \"<string>\",\n \"respondent\": \"<string>\",\n \"advocate\": \"<string>\",\n \"judge\": \"<string>\",\n \"filingNumber\": \"<string>\",\n \"caseType\": \"<string>\",\n \"year\": 123,\n \"firNumber\": \"<string>\",\n \"policeStation\": \"<string>\",\n \"state\": \"<string>\",\n \"district\": \"<string>\",\n \"filingDateFrom\": \"<string>\",\n \"filingDateTo\": \"<string>\",\n \"decisionDateFrom\": \"<string>\",\n \"decisionDateTo\": \"<string>\",\n \"page\": 1,\n \"perPage\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-neevlegal.neeved.com/api/v1/case-search")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"litigant\": \"<string>\",\n \"petitioner\": \"<string>\",\n \"respondent\": \"<string>\",\n \"advocate\": \"<string>\",\n \"judge\": \"<string>\",\n \"filingNumber\": \"<string>\",\n \"caseType\": \"<string>\",\n \"year\": 123,\n \"firNumber\": \"<string>\",\n \"policeStation\": \"<string>\",\n \"state\": \"<string>\",\n \"district\": \"<string>\",\n \"filingDateFrom\": \"<string>\",\n \"filingDateTo\": \"<string>\",\n \"decisionDateFrom\": \"<string>\",\n \"decisionDateTo\": \"<string>\",\n \"page\": 1,\n \"perPage\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-neevlegal.neeved.com/api/v1/case-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"litigant\": \"<string>\",\n \"petitioner\": \"<string>\",\n \"respondent\": \"<string>\",\n \"advocate\": \"<string>\",\n \"judge\": \"<string>\",\n \"filingNumber\": \"<string>\",\n \"caseType\": \"<string>\",\n \"year\": 123,\n \"firNumber\": \"<string>\",\n \"policeStation\": \"<string>\",\n \"state\": \"<string>\",\n \"district\": \"<string>\",\n \"filingDateFrom\": \"<string>\",\n \"filingDateTo\": \"<string>\",\n \"decisionDateFrom\": \"<string>\",\n \"decisionDateTo\": \"<string>\",\n \"page\": 1,\n \"perPage\": 10\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"response": {
"totalCount": 42,
"page": 1,
"limit": 10,
"pages": 5,
"cases": [
{
"cnrNumber": "MHPN010123456789",
"caseStatus": "Pending",
"court": {
"stateName": "Maharashtra",
"stateCode": "MH",
"districtName": "Pune",
"districtCode": "PUNE",
"courtName": "Civil Court, Pune"
},
"petitioners": [
{
"partyName": "John Doe",
"advocateName": "<string>"
}
],
"respondents": [
{
"partyName": "<string>",
"advocateName": "<string>"
}
],
"nextHearingDate": "<string>",
"nextHearingPurpose": "<string>",
"caseType": "CS",
"caseNumber": "CS/12/2023",
"filingDate": "01-01-2023",
"year": 2023,
"filingNumber": "<string>",
"registrationNumber": "<string>",
"registrationDate": "<string>",
"decisionDate": "<string>",
"natureOfDisposal": "<string>",
"category": "<string>"
}
]
}
}{
"success": false,
"message": "API key not found or has been revoked.",
"moreInfo": "No additional info found."
}{
"success": false,
"message": "API key not found or has been revoked.",
"moreInfo": "No additional info found."
}Authorizations
Body
Search by name on either side of the case. Minimum 3 characters.
3Search by petitioner or applicant name. Minimum 3 characters.
3Search by respondent or defendant name. Minimum 3 characters.
3Search by advocate name appearing for any party. Minimum 3 characters.
3Search by presiding judge name. Minimum 2 characters.
2Search by the provisional filing number assigned at submission.
Filter by court case type code — for example, CS, WP, or CC.
Filter by the year in which the case was filed.
Search criminal cases by FIR number.
Filter criminal cases by police station name.
Limit results to a specific state using its state code — for example, MH.
Limit results to a specific district using its district code.
Filter by case lifecycle state.
pending, disposed, all Return only cases filed on or after this date. Format: DD-MM-YYYY.
Return only cases filed on or before this date. Format: DD-MM-YYYY.
Return only cases decided on or after this date. Format: DD-MM-YYYY.
Return only cases decided on or before this date. Format: DD-MM-YYYY.
Field to sort results by.
year, filingDate, registrationDate, decisionDate Sort direction.
asc, desc Page number to retrieve, starting from 1.
x >= 11
Number of results per page. Maximum 50.
1 <= x <= 5010
curl --request POST \
--url https://api-neevlegal.neeved.com/api/v1/case-search \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"litigant": "<string>",
"petitioner": "<string>",
"respondent": "<string>",
"advocate": "<string>",
"judge": "<string>",
"filingNumber": "<string>",
"caseType": "<string>",
"year": 123,
"firNumber": "<string>",
"policeStation": "<string>",
"state": "<string>",
"district": "<string>",
"filingDateFrom": "<string>",
"filingDateTo": "<string>",
"decisionDateFrom": "<string>",
"decisionDateTo": "<string>",
"page": 1,
"perPage": 10
}
'import requests
url = "https://api-neevlegal.neeved.com/api/v1/case-search"
payload = {
"litigant": "<string>",
"petitioner": "<string>",
"respondent": "<string>",
"advocate": "<string>",
"judge": "<string>",
"filingNumber": "<string>",
"caseType": "<string>",
"year": 123,
"firNumber": "<string>",
"policeStation": "<string>",
"state": "<string>",
"district": "<string>",
"filingDateFrom": "<string>",
"filingDateTo": "<string>",
"decisionDateFrom": "<string>",
"decisionDateTo": "<string>",
"page": 1,
"perPage": 10
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
litigant: '<string>',
petitioner: '<string>',
respondent: '<string>',
advocate: '<string>',
judge: '<string>',
filingNumber: '<string>',
caseType: '<string>',
year: 123,
firNumber: '<string>',
policeStation: '<string>',
state: '<string>',
district: '<string>',
filingDateFrom: '<string>',
filingDateTo: '<string>',
decisionDateFrom: '<string>',
decisionDateTo: '<string>',
page: 1,
perPage: 10
})
};
fetch('https://api-neevlegal.neeved.com/api/v1/case-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-neevlegal.neeved.com/api/v1/case-search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'litigant' => '<string>',
'petitioner' => '<string>',
'respondent' => '<string>',
'advocate' => '<string>',
'judge' => '<string>',
'filingNumber' => '<string>',
'caseType' => '<string>',
'year' => 123,
'firNumber' => '<string>',
'policeStation' => '<string>',
'state' => '<string>',
'district' => '<string>',
'filingDateFrom' => '<string>',
'filingDateTo' => '<string>',
'decisionDateFrom' => '<string>',
'decisionDateTo' => '<string>',
'page' => 1,
'perPage' => 10
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-neevlegal.neeved.com/api/v1/case-search"
payload := strings.NewReader("{\n \"litigant\": \"<string>\",\n \"petitioner\": \"<string>\",\n \"respondent\": \"<string>\",\n \"advocate\": \"<string>\",\n \"judge\": \"<string>\",\n \"filingNumber\": \"<string>\",\n \"caseType\": \"<string>\",\n \"year\": 123,\n \"firNumber\": \"<string>\",\n \"policeStation\": \"<string>\",\n \"state\": \"<string>\",\n \"district\": \"<string>\",\n \"filingDateFrom\": \"<string>\",\n \"filingDateTo\": \"<string>\",\n \"decisionDateFrom\": \"<string>\",\n \"decisionDateTo\": \"<string>\",\n \"page\": 1,\n \"perPage\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-neevlegal.neeved.com/api/v1/case-search")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"litigant\": \"<string>\",\n \"petitioner\": \"<string>\",\n \"respondent\": \"<string>\",\n \"advocate\": \"<string>\",\n \"judge\": \"<string>\",\n \"filingNumber\": \"<string>\",\n \"caseType\": \"<string>\",\n \"year\": 123,\n \"firNumber\": \"<string>\",\n \"policeStation\": \"<string>\",\n \"state\": \"<string>\",\n \"district\": \"<string>\",\n \"filingDateFrom\": \"<string>\",\n \"filingDateTo\": \"<string>\",\n \"decisionDateFrom\": \"<string>\",\n \"decisionDateTo\": \"<string>\",\n \"page\": 1,\n \"perPage\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-neevlegal.neeved.com/api/v1/case-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"litigant\": \"<string>\",\n \"petitioner\": \"<string>\",\n \"respondent\": \"<string>\",\n \"advocate\": \"<string>\",\n \"judge\": \"<string>\",\n \"filingNumber\": \"<string>\",\n \"caseType\": \"<string>\",\n \"year\": 123,\n \"firNumber\": \"<string>\",\n \"policeStation\": \"<string>\",\n \"state\": \"<string>\",\n \"district\": \"<string>\",\n \"filingDateFrom\": \"<string>\",\n \"filingDateTo\": \"<string>\",\n \"decisionDateFrom\": \"<string>\",\n \"decisionDateTo\": \"<string>\",\n \"page\": 1,\n \"perPage\": 10\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"response": {
"totalCount": 42,
"page": 1,
"limit": 10,
"pages": 5,
"cases": [
{
"cnrNumber": "MHPN010123456789",
"caseStatus": "Pending",
"court": {
"stateName": "Maharashtra",
"stateCode": "MH",
"districtName": "Pune",
"districtCode": "PUNE",
"courtName": "Civil Court, Pune"
},
"petitioners": [
{
"partyName": "John Doe",
"advocateName": "<string>"
}
],
"respondents": [
{
"partyName": "<string>",
"advocateName": "<string>"
}
],
"nextHearingDate": "<string>",
"nextHearingPurpose": "<string>",
"caseType": "CS",
"caseNumber": "CS/12/2023",
"filingDate": "01-01-2023",
"year": 2023,
"filingNumber": "<string>",
"registrationNumber": "<string>",
"registrationDate": "<string>",
"decisionDate": "<string>",
"natureOfDisposal": "<string>",
"category": "<string>"
}
]
}
}{
"success": false,
"message": "API key not found or has been revoked.",
"moreInfo": "No additional info found."
}{
"success": false,
"message": "API key not found or has been revoked.",
"moreInfo": "No additional info found."
}