NAV undefined
undefined
bash ruby python php javascript go csharp java

Introduction

API Endpoint

https://crime.getupforchange.com/api/

Welcome to the CrimeCheck API! You can use our API to access court cases in our database.

Currently, the API checks for Court Records in all courts across India, including Supreme Court, All High Courts, District Courts and Tribunals. This includes pending and disposed cases. It also searches in important defaulter lists. The total number of records being searched is 17 Crores (17,16,85,644) as on 26-07-2020.

We have provided examples in cURL, Ruby, Python, PHP, JavaScript, Go, C# and Java! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

The CrimeCheck API is organized around REST. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We support cross-origin resource sharing, allowing you to interact securely with our API from a client-side web application (though you should never expose your secret API key in any public website's client-side code). JSON is returned by all API responses, including errors.

To make the API as explore-able as possible, accounts have test mode and live mode API keys. There is no "switch" for changing between modes, just use the appropriate key to perform a live or test transaction.

Basic API

Authentication

To authorize, use this code:

  curl https://crime.getupforchange.com/api/v3/authenticate \
   -u 'test_apikey:'

Note: curl uses the -u flag to pass basic auth credentials(adding 
a colon after your API key prevents cURL from asking for a password).
require 'uri'
require 'net/http'

url = URI("https://crime.getupforchange.com/api/v3/authenticate")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request.basic_auth("test_apikey", "")

response = http.request(request)
end
import requests

requests.get('https://crime.getupforchange.com/api/v3/uthenticate', auth=('test_apikey', ''))
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://crime.getupforchange.com/api/v3/authenticate");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");

curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var request = require('request');

var options = {
    url: 'https://crime.getupforchange.com/api/v3/authenticate',
    auth: {
        'user': 'test_apikey',
        'pass': ''
    }
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

  req, err := http.NewRequest("GET", "https://crime.getupforchange.com/api/v3/authenticate", nil)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()

var restClient = new RestClient('https://crime.getupforchange.com/api/v3/authenticate')
{
    Authenticator = new HttpBasicAuthenticator('test_apikey', '')
};
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
HttpResponse<String> response = Unirest.get("https://crime.getupforchange.com/api/v3/authenticate")
  .basicAuth("test_apikey", "")
  .asString();

The above command returns JSON structured like this:

  {
    'status': 'OK'
  }

Authenticate your account when using the API by including your secret API key in the request. Your API keys carry many privileges, so be sure to keep them secret! Do not share your secret API keys in publicly accessible areas such GitHub, client-side code, and so forth.

Authentication to the API is performed via HTTP Basic Auth. Provide your API key as the basic auth username value. You do not need to provide a password.

If you need to authenticate via bearer auth (e.g., for a cross-origin request), use -H "Authorization: test_apikey" instead of -u test_apikey:.

CrimeCheck expects for the API key to be included in all API requests to the server. API requests without authentication will fail.

API Status

  curl https://crime.getupforchange.com/api/v3/status \
   -u 'test_apikey:'

Note: curl uses the -u flag to pass basic auth credentials (adding 
a colon after your API key prevents cURL from asking for a password).
require 'uri'
require 'net/http'

url = URI("https://crime.getupforchange.com/api/v3/status")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request.basic_auth("test_apikey", "")

response = http.request(request)
end
import requests

requests.get('https://crime.getupforchange.com/api/v3/status', auth=('test_apikey', ''))
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://crime.getupforchange.com/api/v3/status");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");

curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var request = require('request');

var options = {
    url: 'https://crime.getupforchange.com/api/v3/status',
    auth: {
        'user': 'test_apikey',
        'pass': ''
    }
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

  req, err := http.NewRequest("GET", "https://crime.getupforchange.com/api/v3/status", nil)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()

var restClient = new RestClient('https://crime.getupforchange.com/api/v3/status')
{
    Authenticator = new HttpBasicAuthenticator('test_apikey', '')
};
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
HttpResponse<String> response = Unirest.get("https://crime.getupforchange.com/api/v3/status")
  .basicAuth("test_apikey", "")
  .asString();

The above command returns JSON structured like this:

  {
    'status': 'OK'
  }

GET https://crime.getupforchange.com/api/v3/status

Check if apiKey is valid using this API.

Errors

CrimeCheck uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, invalid API key etc.), and codes in the 5xx range indicate an error with CrimeCheck servers (these are rare).

HTTP status code summary

Status Description
200 OK - Everything worked as expected.
400 INVALID_REQUEST_ERROR - The request was unacceptable, often due to missing a required parameter or invalid value
401 INVALID_API_KEY, API_LIMIT_EXCEEDED - Authorization related
404 NOT_FOUND - The requested resource could not be found
429 Too Many Requests (Rate limit of Max per MINUTE=3600, HOUR=21000, DAY=504000)
500 Crimecheck service issue

CrimeCheck API

It is recommended to increase the maximum POST size of your receiving server suitably to receive a large number of records that might be returned. In some cases, this might run into 10s of MBs. In Nginx server for example, this is done setting the client_max_body_size value in the nginx configuration file, under the http section:



http {

    client_max_body_size 100M;

}

Crime Records

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm={"name":"Mallikarjun Sajjanshetty ","fatherName":"Chandrashekar Sajjanshetty","address":"H No 1-3-59 Station Road Basava Nilaya Chittapur Kalaburgi Karnataka – 585211"}' \
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body = "searchTerm=%7B%22name%22%3A%22Mallikarjun%20Sajjanshetty%20%22%2C%22fatherName%22%3A%22Chandrashekar%20Sajjanshetty%22%2C%22address%22%3A%22H%20No%201-3-59%20Station%20Road%20Basava%20Nilaya%20Chittapur%20Kalaburgi%20Karnataka%20%E2%80%93%20585211%22%7D"

  response = http.request(request)
  puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = 'searchTerm=%7B%22name%22%3A%22Mallikarjun%20Sajjanshetty%20%22%2C%22fatherName%22%3A%22Chandrashekar%20Sajjanshetty%22%2C%22address%22%3A%22H%20No%201-3-59%20Station%20Road%20Basava%20Nilaya%20Chittapur%20Kalaburgi%20Karnataka%20%E2%80%93%20585211%22%7D'


requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm=%7B%22name%22%3A%22Mallikarjun%20Sajjanshetty%20%22%2C%22fatherName%22%3A%22Chandrashekar%20Sajjanshetty%22%2C%22address%22%3A%22H%20No%201-3-59%20Station%20Road%20Basava%20Nilaya%20Chittapur%20Kalaburgi%20Karnataka%20%E2%80%93%20585211%22%7D",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    },
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: '{"name":"Mallikarjun Sajjanshetty ","fatherName":"Chandrashekar Sajjanshetty","address":"H No 1-3-59 Station Road Basava Nilaya Chittapur Kalaburgi Karnataka – 585211"}' } };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm=%7B%22name%22%3A%22Mallikarjun%20Sajjanshetty%20%22%2C%22fatherName%22%3A%22Chandrashekar%20Sajjanshetty%22%2C%22address%22%3A%22H%20No%201-3-59%20Station%20Road%20Basava%20Nilaya%20Chittapur%20Kalaburgi%20Karnataka%20%E2%80%93%20585211%22%7D`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("searchTerm", "{\"name\":\"Mallikarjun Sajjanshetty \",\"fatherName\":\"Chandrashekar Sajjanshetty\",\"address\":\"H No 1-3-59 Station Road Basava Nilaya Chittapur Kalaburgi Karnataka – 585211\"}");
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .field("searchTerm", "{\"name\":\"Mallikarjun Sajjanshetty \",\"fatherName\":\"Chandrashekar Sajjanshetty\",\"address\":\"H No 1-3-59 Station Road Basava Nilaya Chittapur Kalaburgi Karnataka – 585211\"}")
    .asString();

The above command returns JSON structured like this:

{
  "status": "OK",
  "searchTerm": "Ram Rahim",
  "searchType": "Name",
  "totalResult": 10,
  "totalHits": 136,
  "page": "1",
  "resultsPerPage": "10",
  "details": [
    {
      "year": "2004",
      "bench": "",
      "crawledDate": "2020-03-11T04:17:22.000Z",
      "judgementDate": "",
      "judgementDescription": "",
      "caseFlow": [
          {
              "Order": "Orders",
              "gfc_OrderType": "Order",
              "orderDate": "2005-03-23",
              "orderLink": ""
          }
      ],
      "original_caseFlow": "[[],[III ADDL. DISTRICT  SESSIONS JUDGE,Kalaburagi,23-03-2005,,Disposed],[III ADDL. DISTRICT  SESSIONS JUDGE,Kalaburagi,23-03-2005,,Restored]]",
      "orderFlow": "",
      "petitioner": "Marayan So Devindrappa Age 27 Occ Agri",
      "stateCode": "3",
      "distCode": "4",
      "courtNumber": "1",
      "regNumber": "97/2004",
      "filingNumber": "",
      "filingDate": "23-09-2004",
      "hearingDate": "",
      "courtNumberAndJudge": "588-III ADDL. DISTRICT  SESSIONS JUDGE,Kalaburagi",
      "score": 935.3333,
      "id": "IauWW3MBraW0X0FbK7TR",
      "respondent": "The State PSI Kalgi PS",
      "caseName": "CRL.R.P./97/2004",
      "caseTypeName": "CRL.R.P. - CRIMINAL REVISION PETITIONS",
      "caseTypeNumber": "20",
      "courtName": "PRL DISTRICT AND SESSIONS JUDGE",
      "caseStatus": "Disposed",
      "caseNo": "202000000972004",
      "firnumber": "",
      "firlink": "",
      "dist": "",
      "policestation": "",
      "circle": "",
      "state": "Karnataka",
      "courtType": "District Court",
      "district": "Kalaburagi",
      "caseLink": "https://services.ecourts.gov.in/ecourtindia_v6/",
      "gfc_updated_at": "20th October 2021",
      "cinNumber": "KA32010033342004",
      "caseRegDate": "23-09-2004",
      "petitionerAddress": "1) Marayan So Devindrappa Age 27 Occ Agri2)  Mallikarjun So Devindrappa Age 24 Occ Driver    Ro Kalagurti Tq Chittapur Dist Kalaburagi",
      "respondentAddress": "1) The State PSI Kalgi PS2)  The T.E.M. Chittapur    Ro T.E.M.Chittapur Dist Kalaburagi3)  Mallikarjun So Saibanna Age 27 Occ Agri    Ro Kalgurthi Tq Chittapur Dist Kalaburagi 4)  Perappa So Saibanna Age 20 Occ Agri    Ro Kalgurthi Tq Chittapur Dist Kalaburagi ",
      "underAct": "IPC",
      "underSection": "U/se397CrPC",
      "natureOfDisposal": " Contested--ALLOWED",
      "gfc_respondents": [
          {
              "name": "The State PSI Kalgi PS"
          },
          {
              "name": "The T.E.M. Chittapur",
              "address": "Ro T.E.M.Chittapur Dist Kalaburagi"
          },
          {
              "name": "Mallikarjun So Saibanna Age 27 Occ Agri",
              "address": "Ro Kalgurthi Tq Chittapur Dist Kalaburagi"
          },
          {
              "name": "Perappa So Saibanna Age 20 Occ Agri",
              "address": "Ro Kalgurthi Tq Chittapur Dist Kalaburagi"
          }
      ],
      "gfc_petitioners": [
          {
              "name": "Marayan So Devindrappa Age 27 Occ Agri"
          },
          {
              "name": "Mallikarjun So Devindrappa Age 24 Occ Driver",
              "address": "Ro Kalagurti Tq Chittapur Dist Kalaburagi"
          }
      ],
      "gfc_uniqueid": "DC_3_4_1_20_202000000972004_KA32010033342004_2004",
      "elasticId": "IauWW3MBraW0X0FbK7TR",
      "caseDetailsLink": "https://crime.getupforchange.com/getDetails?gfcId=9e79f537e977bb6e97d0723398f85895b50334147059a06cb5cc3ff89c8c75c260d8ff19ed1caaf01be96753d6d8b64f78034785e43c0774a3d8b1d9aaacb475",
      "gfc_fir_number_court": "38",
      "gfc_fir_year_court": "2004",
      "gfc_fir_policestation_court": "KALGI PS",
      "gfc_orders_data": {
          "petitioners": [],
          "respondents": []
      },
      "caseType": "Criminal",
      "position": 1
    }
  ]
}

This API returns crime records against a person or company. To query crime records do an HTTP POST request to the below URL.

HTTP Request

POST https://crime.getupforchange.com/api/v3/records

URL Parameters

searchTerm: string
Pass any person or company's name to search.
Deprecated: passing a simple string searchTerm returns non-optimal results. Use the JSON searchTerm described below
searchTerm: JSON
You can pass the profile of a person or company. Check Profile based Search for details.
matchType: string
Optional
If the value highAccuracy is passed, ML-based search model is invoked filtering out all false positives. Returns only results where algorithm confidence on the record is > 98%. Use-case: when you need only results that are guaranteed to be the input entity.
If the value highCoverage is passed, ML-based search model is invoked filtering out unlikely cases, to a lesser extend compared to highAccuracy mode (algorithm confidence > 25%). Use-case: when you want all cases that have even a remote chance of being the input entity.
If no value is passed, default search is used.
For highAccuracy and highCoverage modes, each of the returned records will have a matchFlag object to show what part of input matched in the respective record, and to what level.
Note that if precision parameter is passed, matchType is overridden. This is because highAccuracy is an alias for precision=98 and highCoverage is an alias for precision=25.
riskProfile: string
Optional
Default: false
If the value true is passed, returns riskProfile for each record, as well as an overallRiskType and overallRiskSummary for the entire list of cases
Note: Usage of riskProfile needs to be enabled for each API key from CrimeCheck side. Please request explicitly to enable this before use.
page: integer
Default: 1
Determines which page result should be sent as response. Supported values are 1 to 100.
resultsPerPage: integer
Default: 10
Determines how many results to return in one response. Supported values are 10 to 1000.
searchFields: string
Default: petitoner,respondent
Determines where the search has to be performed. Supported values are petitioner, respondent, petitioner,respondent.
clientRefNo: string
Optional
Used to uniquely identify a request for billing or audit purposes. Can be any string with maximum 100 characters.
precision: int
Default: precision algorithm is not used
If precision parameter is set, then ML models are invoked which will filter out false positives to an extend set by the precision value. For example, if precision is set to 25, the API will return only results where our ML model is more than 25% confident that it is a true positive match. If precision is set to 100, only exact matches are returned.
Note that passing the precision parameter overrides the matchType parameter. matchType=highAccuracy is an alias for precision=98 and matchType=highCoverage is an alias for precision=25.
matchFlag boolean
Default: false
If set to true, the API response will contain a key matchFlag inside each court record object which describes which all parts of the input matched (name, address etc) and to what extend (ExactMatch, PartialMatch etc). This can be used to understand why the search included this result in the court record and to present it in a UI.
matchingCriteria boolean
Default: false
If matchFlag parameter is set AND matchingCriteria flag is also set to true, then the matchFlag object for each court record will also contain the following fields: matchingScore which gives an integer value indicating the score of this search record compared to other records in the system based on the extend of match between input details and details in the court record. matchingCount gives an integer value which indicates how many other matches are found based on the parameters that matched (which is an indication of the uniqueness - hence lower is better).
highlight boolean
Default: false
If set to true, then each court record object will contain a field highlight which indicate the parts of the court record that matched with the input details, using <em> and <mem> tags. This can be used to indicate the matching parts of court record in UI for easing manual review, for example. Note that if matchFlag is set, then highlight is also set automatically.
  {
    'name':'Vinoth Ranganathan',
    'fatherName':'Ranganathan',
    'dob':'01/01/1990'
    'address': 'L66, Jeevan Bheema Nagar,Bangalore'
  }
  {
    'companyName':'GetupForChange Services Pvt Ltd',
    'cinNumber':'U74900KA2014PTC073629',
    'address': 'L66, Jeevan Bheema Nagar,Bangalore'
  }

searchTerm accepts text or a valid JSON object to perform search. When a JSON object is sent via searchTerm, profile based search will be done which improves accuracy.

Following values are accepted for profile based search (Individual)

Following values are accepted for profile based search (Companies). Of these, either companyName or cinNumber must be provided.

Webhook Version

{
apiKey: "test_apikey",
searchTerm: "Salman Khan",
match: "partial",
version: "v3",
callbackUrl: "https://your-backend-url.com/callbackUrl",
uniqueId: 1533621187520,
requestTime: "07/08/2018 11:23:07",
status: "OK"
}

To use the webhook version of the API, pass an extra parameter callbackUrl to Crime Records API.

callbackUrl: string
We will do an HTTP POST back to this URL when the results are ready. We expect this endpoint to send a 200 OK response as soon as call back is received.

Filters

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm=Ram Rahim' \
   -d 'year=2017'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body = "searchTerm=Ram%20Rahim&year=2017"

  response = http.request(request)
  puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', 'Ram Rahim'),
  ('year', '2017'),
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm=Ram%20Rahim&year=2017",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: 'Ram Rahim', year: '2017' } };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm=Ram%20Rahim&year=2017`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", "searchTerm=Ram%20Rahim&year=2017", ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm=Ram%20Rahim&year=2017")
    .asString();

For documentation purpose, instead of showing 10 crime records only one is shown.

Filters can be used to narrow the search results. CrimeCheck supports below filters and these can be applied alone or with combinations.

Filter Description Example Values
state Filter based on state Karnataka Check State List
district Filter based on district Karnataka,Bengaluru Check District List
year Filter based on year 2017 1954 to 2017
caseStatus Filter based on case status Pending Pending, Disposed
courtType Filter based on court type District Court District Court, High Court, Supreme Court, Tribunal, List, FIR.
You can search multiple court types together by combining with commas, except FIR. Search for FIR has to be done in it's own request, and cannot be combined with other court types (due to the nature of the data).
courtName Filter based on court name High Court of Andhra Pradesh Check Court List

For year, pass the exact year or a range. You can specify range using keywords gt(greater than) and lt(less than)

2017 Returns crime records from 2017
gt:2015 Returns crime records greater than 2017
lt:2013 Returns crime records less than 2013
gt:2010,lt:2015 Returns crime records greater than 2010,less than 2015

Pagination

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm=Ram Rahim' \
   -d 'page=2'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body = "searchTerm=Ram%20Rahim&page=2"

  response = http.request(request)
  puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', 'Ram Rahim'),
  ('page', '2'),
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm=Ram%20Rahim&page=2",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: 'Ram Rahim', page: '2' } };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm=Ram%20Rahim&page=2`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", "searchTerm=Ram%20Rahim&page=2", ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm=Ram%20Rahim&page=2")
    .asString();

The above command returns JSON structured like this:

{
  "status":"OK",
  "searchTerm":"Ram Rahim",
  "searchType":"",
  "matchType":"partial",
  "totalResult":10,
  "totalHits":2683555,
  "page":"2",
  "resultsPerPage":10,
  "details":[
    {
      "petitioner":"ABDUL RAHIM",
      "respondent":"ARJUN RAM",
      "caseName":"Mac/469/2014",
      "caseTypeName":"Mact - MACT Cases",
      "courtName":"MACT Jodhpur Metro HQ",
      "caseStatus":"Disposed",
      "caseNo":"217900004692014",
      "state":"Rajasthan",
      "year":"2014",
      "cinNumber":"RJJU090000482011",
      "caseRegDate":"28-03-2011",
      "petitionerAddress":"1) ABDUL RAHIM    Address - NEAR LOHARO KI MASJID NAI SARAK JODHPUR    Advocate- C.S. MANDORA",
      "respondentAddress":"1) ARJUN RAM    Address - 420- 1ST C ROAD SARDARPURA JODHPUR    Advocate - H.R. CHAWLA",
      "underAct":"",
      "underSection":"",
      "courtType":"District Court"
    }
  ]
}

Pagination is enabled for endpoints that return a list of records. There are two parameters that control pagination: page, which specifies the page number to retrieve, and resultsPerPage, which indicates how many records each page should contain.

Parameters
resultsPerPage: integer
between 0 and 1000
page: integer
between 1 and 100

When you query a request, the API will return totalHits and resultsPerPage in response. If the totalHits is more than resultsPerPage then you can query further results by incrementing page parameter.

Output Format

The fields in the response and some sample values are documented here.

Usage Count

API Endpoint

https://crime.getupforchange.com/api/v3/usage?apiKey=sample-key

The above command returns JSON structured like this:

{
  "usage": 48,
  "limit": 100
}

CrimeCheck APIs work based on credits added to your API Key. To check the balance credits, call this API and pass in your apiKey as a GET parameter.

Appendix

List of States and Union Territories

List of Districts

List of court names

Sample Response

Company with no crime records

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm=Getupforchange Services'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body = "searchTerm=Getupforchange Services"

  response = http.request(request)
  puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', 'Getupforchange Services')
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm=Getupforchange Services",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: 'Getupforchange Services'} };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm=Getupforchange Services`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", "searchTerm=Getupforchange Services", ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm=Getupforchange Services")
    .asString();

The above command returns JSON structured like this:

{
  "status":"OK",
  "searchTerm":"Getupforchange Services",
  "searchType":"",
  "matchType":"partial",
  "totalResult":0,
  "totalHits":0,
  "page":1,
  "resultsPerPage":10,
  "details":[]
}

Example search Term used - Getupforchange Services

Individual with no crime records

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm=Vinoth Ranganathan'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body = "searchTerm=Vinoth Ranganathan"

  response = http.request(request)
  puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', 'Vinoth Ranganathan')
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm=Vinoth Ranganathan",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: 'Vinoth Ranganathan' } };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm=Vinoth Ranganathan`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", "searchTerm=Vinoth Ranganathan", ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm=Vinoth Ranganathan")
    .asString();

The above command returns JSON structured like this:

{
  "status":"OK",
  "searchTerm":"Vinoth Ranganathan",
  "searchType":"",
  "matchType":"partial",
  "totalResult":0,
  "totalHits":0,
  "page":1,
  "resultsPerPage":10,
  "details":[]
}

Example search Term used - Vinoth Ranganathan

Company as petitioner

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm=Atlantic Publishers And Distributiors'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body = "searchTerm=Atlantic Publishers And Distributiors"

  response = http.request(request)
  puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', 'Atlantic Publishers And Distributiors')
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm=Atlantic Publishers And Distributiors",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: 'Atlantic Publishers And Distributiors' } };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm=Atlantic Publishers And Distributiors`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", "searchTerm=Atlantic Publishers And Distributiors", ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm=Atlantic Publishers And Distributiors")
    .asString();

The above command returns JSON structured like this:

{
  "status":"OK",
  "searchTerm":"Atlantic Publishers And Distributiors",
  "searchType":"",
  "matchType":"partial",
  "totalResult":1,
  "totalHits":1,
  "page":1,
  "resultsPerPage":10,
  "details":[
    {
      "petitioner":"M/S ATLANTIC PUBLISHERS AND DISTRIBUTIORS PVT LTD",
      "respondent":"M/S. FLIPKART INDIA PVT. LTD. AND ORS.",
      "caseName":"CS SCJ/2370/2017",
      "caseTypeName":"CS SCJ - CIVIL SUIT FOR CIVIL JUDGE",
      "courtName":"Senior Civil Judge cum RC, Central, THC",
      "caseStatus":"Pending",
      "caseNo":"201600023702017",
      "state":"Delhi ",
      "year":"2017",
      "cinNumber":"DLCT030046362017",
      "caseRegDate":"10-07-2017",
      "petitionerAddress":"1) M/S ATLANTIC PUBLISHERS AND DISTRIBUTIORS PVT LTD    Address - REGD. OFFICE AT 7/22, ANSARI ROAD, DARYAGANJ, NEW DELHI (THROUGH ITS AUTHORISED REPRESENTATIVE SH. NITIN SHARMA)",
      "respondentAddress":"1) M/S. FLIPKART INDIA PVT. LTD. AND ORS.    Address - NO.110, 2ND FLOOR, JB BUILDING, 5TH BLOCK, KORAMANGALA, BANGLORE2) MR. MEKIN MAHESHWARI    DIRECTOR M/S FLIPKART INDIA PVT LTD., NO.215, BLOCK C, RAHEJA RESIDENCY, KORAMANGALA, BANGLORE, KARNATAKA",
      "underAct":"Civil Cases",
      "underSection":"RECOVERY",
      "courtType":"District Court"
    }
  ]
}

Example search Term used - Atlantic Publishers And Distributiors

Company with crime records

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm=Kingfisher Airlines'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body = "searchTerm=Kingfisher Airlines"

  response = http.request(request)
  puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', 'Kingfisher Airlines')
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm=Kingfisher Airlines",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: 'Kingfisher Airlines' } };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm=Kingfisher Airlines`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", "searchTerm=Kingfisher Airlines", ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm=Kingfisher Airlines")
    .asString();

The above command returns JSON structured like this:

{
  "status":"OK",
  "searchTerm":"Kingfisher Airlines",
  "searchType":"",
  "matchType":"partial",
  "totalResult":10,
  "totalHits":394,
  "page":1,
  "resultsPerPage":10,
  "details":[
    {
      "petitioner":"MS KINGFISHER AIRLINES LTD",
      "respondent":"PRASHANT DATTATRAY KULKARNI",
      "caseName":"SS/4413638/2009",
      "caseTypeName":"SS",
      "courtName":"Metropolitan Magistrate, Andheri , Mumbai",
      "caseStatus":"Pending",
      "caseNo":"200344136382009",
      "state":"Maharashtra",
      "year":"2009",
      "cinNumber":"MHMM190075502009",
      "caseRegDate":"30-10-2009",
      "petitionerAddress":"1) MS KINGFISHER AIRLINES LTD    Address - KINGFISHER HOUSE W E HIGHWAY VILE PARLE E MUMBAI",
      "respondentAddress":"1) PRASHANT DATTATRAY KULKARNI    Address - 21 VIJAY SANGH MITRA TARUN BHARAT CHAKALA ANDHERI E MUMBAI",
      "underAct":"N. I. Act",
      "underSection":"138",
      "courtType":"District Court"
    },
    {
      "petitioner":"KINGFISHER AIRLINES LTD.",
      "respondent":"COMMISSIONER OF INCOME TAX(TDS) ",
      "caseName":"",
      "caseTypeName":"",
      "courtName":"Supreme Court of India",
      "caseStatus":"",
      "caseNo":"SLP(C) No.-003667-003669 / 2013",
      "state":"",
      "year":"",
      "cinNumber":"",
      "caseRegDate":"",
      "petitionerAddress":"",
      "respondentAddress":"",
      "underAct":"",
      "underSection":"",
      "courtType":"District Court"
    },
    {
      "petitioner":"KINGFISHER AIRLINES LTD",
      "respondent":"S.B.I ",
      "caseName":"",
      "caseTypeName":"",
      "courtName":"Supreme Court of India",
      "caseStatus":"",
      "caseNo":"SLP(C) No.-015800-015800 / 2014",
      "state":"",
      "year":"",
      "cinNumber":"",
      "caseRegDate":"",
      "petitionerAddress":"",
      "respondentAddress":"",
      "underAct":"",
      "underSection":"",
      "courtType":"District Court"
    },
    {
      "petitioner":"KINGFISHER AIRLINES LTD",
      "respondent":"UNION OF INDIA ",
      "caseName":"",
      "caseTypeName":"",
      "courtName":"Supreme Court of India",
      "caseStatus":"",
      "caseNo":"SLP(C) No.-025460-025460 / 2014",
      "state":"",
      "year":"",
      "cinNumber":"",
      "caseRegDate":"",
      "petitionerAddress":"",
      "respondentAddress":"",
      "underAct":"",
      "underSection":"",
      "courtType":"District Court"
    },
    {
      "petitioner":"KINGFISHER AIRLINES LTD.",
      "respondent":"ASCENT AIR PVT. LTD.",
      "caseName":"",
      "caseTypeName":"SUITS",
      "courtName":"High Court of Bombay",
      "caseStatus":"",
      "caseNo":"S/32/2011",
      "state":"Maharashtra",
      "year":"",
      "cinNumber":"",
      "caseRegDate":"",
      "petitionerAddress":"",
      "respondentAddress":"",
      "underAct":"",
      "underSection":"",
      "courtType":"District Court"
    },
    {
      "petitioner":"KINGFISHER AIRLINES LTD.",
      "respondent":"NORTHERN BUILDERS PRIVATE LIMITED AND ANR",
      "caseName":"",
      "caseTypeName":"ARBITRATION PETITION.",
      "courtName":"High Court of Bombay",
      "caseStatus":"",
      "caseNo":"ARBP/48/2008",
      "state":"Maharashtra",
      "year":"",
      "cinNumber":"",
      "caseRegDate":"",
      "petitionerAddress":"",
      "respondentAddress":"",
      "underAct":"",
      "underSection":"",
      "courtType":"District Court"
    },
    {
      "petitioner":"MS. KINGFISHER AIRLINES LTD",
      "respondent":"MANOJ SINGH",
      "caseName":"SS/6506441/2009",
      "caseTypeName":"SS",
      "courtName":"Metropolitan Magistrate, Andheri , Mumbai",
      "caseStatus":"Disposed",
      "caseNo":"200365064412009",
      "state":"Maharashtra",
      "year":"2009",
      "cinNumber":"MHMM190064932009",
      "caseRegDate":"21-04-2009",
      "petitionerAddress":"1) MS. KINGFISHER AIRLINES LTD    Address - KINGFISHER HOUSE WESTERN EXPRESS HIGHWAY VILE PARLE E MUMBAI",
      "respondentAddress":"1) MANOJ SINGH    Address - 5 A KOTESHWAR NIWAS JIVA MAHALE ROAD ANDHERI E MUMBAI",
      "underAct":"N. I. Act",
      "underSection":"138",
      "courtType":"District Court"
    },
    {
      "petitioner":"MS. KINGFISHER AIRLINES LTD",
      "respondent":"VIDHI SURESH TANDON",
      "caseName":"SS/4406940/2009",
      "caseTypeName":"SS",
      "courtName":"Metropolitan Magistrate, Andheri , Mumbai",
      "caseStatus":"Pending",
      "caseNo":"200344069402009",
      "state":"Maharashtra",
      "year":"2009",
      "cinNumber":"MHMM190065422009",
      "caseRegDate":"29-04-2009",
      "petitionerAddress":"1) MS. KINGFISHER AIRLINES LTD    Address - KINGFISHER HOUSE WESTERN EXPRESS HIGHWAY VILE PARLE E MUMBAI",
      "respondentAddress":"1) VIDHI SURESH TANDON    Address - 74 KIRAN VIHAR OPP D D A FLATS KARKARDOOMA NEW DELHI",
      "underAct":"N. I. Act",
      "underSection":"138",
      "courtType":"District Court"
    },
    {
      "petitioner":"KINGFISHER AIRLINES LTD",
      "respondent":"NIL",
      "caseName":"",
      "caseTypeName":"",
      "courtName":"High Court of Karnataka",
      "caseStatus":"",
      "caseNo":"CA 631/2008",
      "state":"Karnataka",
      "year":"",
      "cinNumber":"",
      "caseRegDate":"",
      "petitionerAddress":"",
      "respondentAddress":"",
      "underAct":"",
      "underSection":"",
      "courtType":"District Court"
    },
    {
      "petitioner":"Kingfisher Airlines Ltd.,, Bangalore",
      "respondent":"ACIT TDS, Bangalore",
      "caseName":"",
      "caseTypeName":"",
      "courtName":"Income Tax Appellate Tribunal",
      "caseStatus":"",
      "caseNo":"SA 64/BANG/2012",
      "state":"",
      "year":"",
      "cinNumber":"",
      "caseRegDate":"",
      "petitionerAddress":"",
      "respondentAddress":"",
      "underAct":"",
      "underSection":"",
      "courtType":"District Court"
    }
    ]
  }

Example search Term used - Kingfisher Airlines

Individual with crime records

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm=Gurmeet Ram Rahim'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body = "searchTerm=Gurmeet Ram Rahim"

  response = http.request(request)
  puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', 'Gurmeet Ram Rahim')
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm=Gurmeet Ram Rahim",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: 'Gurmeet Ram Rahim' } };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm=Gurmeet Ram Rahim`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", "searchTerm=Gurmeet Ram Rahim", ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm=Gurmeet Ram Rahim")
    .asString();

The above command returns JSON structured like this:

{
  "status":"OK",
  "searchTerm":"Gurmeet Ram Rahim",
  "searchType":"",
  "matchType":"partial",
  "totalResult":10,
  "totalHits":19,
  "page":1,
  "resultsPerPage":10,
  "details":[
  {
    "petitioner":"LT. COL H.S. GYANI",
    "respondent":"GURMEET RAM RAHIM SINGH",
    "caseName":"",
    "caseTypeName":"CONSTITUTION OF INDIA",
    "courtName":"High Court of Himachal Pradesh",
    "caseStatus":"",
    "caseNo":"CWP/2529/2015",
    "state":"Himachal Pradesh",
    "year":"2015",
    "cinNumber":"",
    "caseRegDate":"",
    "petitionerAddress":"",
    "respondentAddress":"",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  },
  {
    "petitioner":"C B I",
    "respondent":"Baba Gurmeet Ram Rahim",
    "caseName":"Chi/1852/2013",
    "caseTypeName":"Chi - CHALLAN IPC",
    "courtName":"District and Sessions Court, Panchkula",
    "caseStatus":"Pending",
    "caseNo":"203600018522013",
    "state":"Haryana",
    "year":"2007",
    "cinNumber":"HRPK010000482007",
    "caseRegDate":"27-10-2007",
    "petitionerAddress":"1) C B I    Address - ACB, Sec-30, Chandigarh    Advocate- H P S Verma, P P2) Kuldeep Singh    Green Colony, College Road, Faridkot    Advocate-B. Kulshrestha, Adv.",
    "respondentAddress":"1) Baba Gurmeet Ram Rahim    Address - Dera Sacha Sauda, Sirsa    Advocate - Vishal Garg Narwana, Adv.2) Krishan Lal     40, Shah Satnamji Nagar, Sirsa    Advocate-B. Kulshrestha, Adv.    3) Nirmal Singh    Green Colony, College Road, Faridkot    Advocate-B. Kulshrestha, Adv.",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  },
  {
    "petitioner":"ARIDAMAN CHHATARPATI",
    "respondent":"SANT GURMEET RAM RAHIM ",
    "caseName":"",
    "caseTypeName":"",
    "courtName":"Supreme Court of India",
    "caseStatus":"",
    "caseNo":"SLP(Crl) No.-006583-006583 / 2007",
    "state":"",
    "year":"",
    "cinNumber":"",
    "caseRegDate":"",
    "petitionerAddress":"",
    "respondentAddress":"",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  },
  {
    "petitioner":"C B I",
    "respondent":"Baba Gurmeet Ram Rahim",
    "caseName":"Crm/2500022/2012",
    "caseTypeName":"Crm - CRIMINAL MISC APPLICATION",
    "courtName":"District and Sessions Court, Panchkula",
    "caseStatus":"Disposed",
    "caseNo":"202425000222012",
    "state":"Haryana",
    "year":"2012",
    "cinNumber":"HRPK010012042012",
    "caseRegDate":"21-07-2012",
    "petitionerAddress":"1) C B I    Address - ACB, Sector-29, Chandigarh    Advocate- H P S Verma, P P",
    "respondentAddress":"1) Baba Gurmeet Ram Rahim    Address - Dera Sacha Sauda, Sirsa    Advocate - S K Garg, Adv.",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  },
  {
    "petitioner":"C B I",
    "respondent":"Baba Gurmeet Ram Rahim",
    "caseName":"Chi/1853/2013",
    "caseTypeName":"Chi - CHALLAN IPC",
    "courtName":"District and Sessions Court, Panchkula",
    "caseStatus":"Pending",
    "caseNo":"203600018532013",
    "state":"Haryana",
    "year":"2007",
    "cinNumber":"HRPK010000492007",
    "caseRegDate":"",
    "petitionerAddress":"",
    "respondentAddress":"",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  },
  {
    "petitioner":"SANT GURMEET RAM RAHIM",
    "respondent":"CENTRAL BUREAU OF INVESTIGATION",
    "caseName":"",
    "caseTypeName":"",
    "courtName":"Supreme Court of India",
    "caseStatus":"",
    "caseNo":"SLP(Crl) No.-005196 / 2017",
    "state":"",
    "year":"",
    "cinNumber":"",
    "caseRegDate":"",
    "petitionerAddress":"",
    "respondentAddress":"",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  },
  {
    "petitioner":"GURMEET RAM RAHIM SINGH ",
    "respondent":" CENTRAL BUREAU OF INVESTIGATION CHANDIGARH",
    "caseName":"",
    "caseTypeName":"",
    "courtName":"High Court of Punjab and Haryana",
    "caseStatus":"",
    "caseNo":"CRR-1700-2015",
    "state":"Punjab",
    "year":"",
    "cinNumber":"",
    "caseRegDate":"",
    "petitionerAddress":"",
    "respondentAddress":"",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  },
  {
    "petitioner":"ARVIND THAKUR",
    "respondent":"SANT GURMEET RAM RAHIM SINGH",
    "caseName":"CS CJ/5128/2013",
    "caseTypeName":"CS - CIVIL SUIT FOR CIVIL JUDGE",
    "courtName":"Civil Judge Senior Division, Chandigarh",
    "caseStatus":"Disposed",
    "caseNo":"201600051282013",
    "state":"Chandigarh",
    "year":"2013",
    "cinNumber":"CHCH020004602008",
    "caseRegDate":"",
    "petitionerAddress":"",
    "respondentAddress":"",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  },
  {
    "petitioner":"STATE OF PUNJAB",
    "respondent":"Gurmeet Ram Rahim Singh Insan",
    "caseName":"CHI/479/2014",
    "caseTypeName":"CHI - CHALLAN IPC",
    "courtName":"Chief Judicial Magistrate, Bathinda",
    "caseStatus":"Disposed",
    "caseNo":"203600004792014",
    "state":"Punjab",
    "year":"2014",
    "cinNumber":"PBBT030025592012",
    "caseRegDate":"02-04-2012",
    "petitionerAddress":"1) STATE OF PUNJAB    Address - District Attorney, Bathinda",
    "respondentAddress":"1) Gurmeet Ram Rahim Singh Insan    Address - The Dera Sacha Sauda, Shah Satnam Ji, Sirsa Haryana    Advocate - Sh. Kewal Singh Brar",
    "underAct":"Indian Penal Code",
    "underSection":"295A,298,153A",
    "courtType":"District Court"
  },
  {
    "petitioner":"SANT GURMEET RAM RAHIM SINGH ",
    "respondent":" CENTRAL BUREAU OF INVESTIGATION & ANR",
    "caseName":"",
    "caseTypeName":"",
    "courtName":"High Court of Punjab and Haryana",
    "caseStatus":"",
    "caseNo":"CRM-M-41746-2013",
    "state":"Punjab",
    "year":"",
    "cinNumber":"",
    "caseRegDate":"",
    "petitionerAddress":"",
    "respondentAddress":"",
    "underAct":"",
    "underSection":"",
    "courtType":"District Court"
  }
  ]
}

Example search Term used - Gurmeet Ram Rahim

High Accuracy mode

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm={"name":"Siddharth Ashok Ahire ","fatherName":"Ashok Ahire","address":" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai"}&matchType="highAccuracy"'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body= '"{"name":"Siddharth Ashok Ahire ","fatherName":"Ashok Ahire","address":" 41/376 Ramabai
   Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai"}"&matchType="highAccuracy"'

response = http.request(request)
puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', '{"name":"Siddharth Ashok Ahire ","fatherName":"Ashok Ahire","address":" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai"}'),
  ('matchType', 'highAccuracy')
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm={name:Siddharth Ashok Ahire, fatherName: Ashok Ahire, address: 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai}&matchType='highAccuracy'",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: "{\"name\":\"Siddharth Ashok Ahire \",\"fatherName\":\"Ashok Ahire\",\"address\":\" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai\"}", matchType="highAccuracy"} };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm={"name":"Siddharth Ashok Ahire ","fatherName":"Ashok Ahire","address":" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai"}`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", '{\"name\":\"Siddharth Ashok Ahire \",\"fatherName\":\"Ashok Ahire\",\"address\":\" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai\"}&"highAccuracy"', ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm={\"name\":\"Siddharth Ashok Ahire \",\"fatherName\":\"Ashok Ahire\",\"address\":\" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai\"}&matchType='highAccuracy'")
    .asString();

The above command returns JSON structured like this:

{
    "status": "OK",
    "searchTerm": "Siddharth Ashok Ahire",
    "searchType": "searchByPetitionerOrRespondent",
    "matchType": "highAccuracy",
    "totalResult": 1,
    "totalHits": 91030,
    "page": 1,
    "resultsPerPage": 10,
    "details": [
        {
            "highlight": {
                "gfc_respondents.name": [
                    "<em>siddharth</em> @ siddhu <em>ashok</em> <em>ahire</em>"
                ],
                "gfc_respondents.address": [
                    "<mem>41</mem>-<mem>376</mem> Panchshil Chowk <mem>Ramabai</mem> <mem>ngar</mem> Ghatkopar east  Mumbai"
                ],
                "respondentaddress": [
                    "1) <mem>Siddharth</mem> @ Siddhu <mem>Ashok</mem> <mem>Ahire</mem>    Address - <mem>41</mem>-<mem>376</mem> Panchshil Chowk Ramabai ngar Ghatkopar east  Mumbai"
                ],
                "respondent": [
                    "<em>Siddharth</em> @ Siddhu <em>Ashok</em> <em>Ahire</em>"
                ]
            },
            "year": "2012",
            "bench": "",
            "crawledDate": "2018-06-26T23:22:03.000Z",
            "judgementDate": "",
            "judgementDescription": "",
            "caseFlow": "",
            "original_caseFlow": "[[],[4900466/2012,Metropolitan Magistrate Court 49,22-11-2013,,Disposed]]",
            "orderFlow": "",
            "matchFlag": {
                "respondent": {
                    "position": [
                        1
                    ],
                    "address": "ExactMatch",
                    "name": "ExactMatch",
                    "fatherName": "ExactMatch",
                    "initial": 0,
                    "matchingName": "siddharth ashok ahire ",
                    "matchingFatherName": "ashok ahire ",
                    "matchingScore": 100,
                    "matchingCount": 2
                },
                "petitioner": {
                    "position": []
                },
                "matchingField": "respondent",
                "relatedEntity": {
                    "address": "NotMatched",
                    "name": "NotMatched"
                },
                "matchingScore": 100
            },
            "petitioner": "Santosh Rama Gaikwad  PN",
            "stateCode": "1",
            "distCode": "23",
            "courtNumber": "12",
            "regNumber": "4900466/2012",
            "filingNumber": "1000466/2012",
            "filingDate": "12-09-2012",
            "hearingDate": "02nd April 2013",
            "courtNumberAndJudge": " 3-Metropolitan Magistrate Court 49",
            "score": 1670,
            "id": "AWK5aohZaQi7Hkqiy3kL",
            "respondent": "Siddharth @ Siddhu Ashok Ahire",
            "caseName": "Police Summons PS/4900466/2012",
            "caseTypeName": "PS - Police Summons",
            "caseTypeNumber": "1",
            "courtName": "Addl. Chief Metropolitan Magistrate, Vikroli, Mumb",
            "caseStatus": "Disposed",
            "caseNo": "200149004662012",
            "firnumber": "",
            "firlink": "",
            "dist": "",
            "policestation": "",
            "circle": "",
            "state": "Maharashtra",
            "courtType": "District Court",
            "district": "Mumbai Cmm Courts",
            "caseLink": "https://services.ecourts.gov.in/ecourtindia_v6/",
            "cinNumber": "MHMM160031392012",
            "caseRegDate": "12-09-2012",
            "petitionerAddress": "1) Santosh Rama Gaikwad  PN    Address  - P K Gaikwad Chawl R No 3 Tisgav Naka Kalyan east Thane",
            "respondentAddress": "1) Siddharth @ Siddhu Ashok Ahire    Address - 41-376 Panchshil Chowk Ramabai ngar Ghatkopar east  Mumbai",
            "underAct": "B P Act",
            "underSection": "142",
            "natureOfDisposal": " Uncontested--U/s 258 Cr.P.C.",
            "gfc_uniqueid": "DC_1_23_12_1_200149004662012_MHMM160031392012_2012",
            "elasticId": "AWK5aohZaQi7Hkqiy3kL",
            "caseDetailsLink": "https://crime.getupforchange.com/getDetails?gfcId=1a2c23eab5b49ad40e64492abb1cd370fa7dffac990f58098d3a5f2d72b475a276fe1ac06c79d757845c3e7563881f345713e6f8eca8417a3353c08387361dec",
            "gfc_orders_data": {
                "petitioners": [],
                "respondents": []
            },
            "caseType": "Criminal",
            "subcourtType": "Magistrate, District Court",
            "gfc_act": "Bombay Prohibition Act, 1949",
            "gfc_caseClassification": "Criminal",
            "gfc_caseType": "Police Case (PC)",
            "gfc_section": "142",
            "riskProfile": "Very High Risk",
            "position": 1
        }
    ],
    "overallRiskType": "Very High Risk",
    "overallRiskSummary": "Siddharth Ashok Ahire  has 1 case registered."
}

Example search Term used - Siddharth Ashok Ahire

Get risk profile with records

  curl  -X POST \
   https://crime.getupforchange.com/api/v3/records \
   -u 'test_apikey:' \
   -H 'content-type: application/x-www-form-urlencoded' \
   -d 'searchTerm={"name":"Siddharth Ashok Ahire ","fatherName":"Ashok Ahire","address":" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai"}'
  require 'uri'
  require 'net/http'

  url = URI("https://crime.getupforchange.com/api/v3/records")

  http = Net::HTTP.new(url.host, url.port)

  request = Net::HTTP::Post.new(url)
  request.basic_auth("test_apikey", "")
  request["content-type"] = 'application/x-www-form-urlencoded'
  request.body= '"{"name":"Siddharth Ashok Ahire ","fatherName":"Ashok Ahire","address":" 41/376 Ramabai
   Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai"}"'

response = http.request(request)
puts response.read_body
import requests

headers = {
  'content-type': 'application/x-www-form-urlencoded',
}

data = [
  ('searchTerm', '{"name":"Siddharth Ashok Ahire ","fatherName":"Ashok Ahire","address":" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai"}')
]

requests.post('https://crime.getupforchange.com/api/v3/records', headers=headers, data=data, auth=('test_apikey', ''))
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://crime.getupforchange.com/api/v3/records",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "searchTerm={name:Siddharth Ashok Ahire, fatherName: Ashok Ahire, address: 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai}",
    CURLOPT_HTTPHEADER => array(
      "content-type: application/x-www-form-urlencoded"
    ),
  ));
  curl_setopt($ch, CURLOPT_USERPWD, "test_apikey" . ":" . "");
  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  var request = require("request");

  var options = { method: 'POST',
  url: 'https://crime.getupforchange.com/api/v3/records',
  auth: {
        'user': 'test_apikey',
        'pass': ''
    }
  headers: { 
    'content-type': 'application/x-www-form-urlencoded',
  },
  form: { searchTerm: "{\"name\":\"Siddharth Ashok Ahire \",\"fatherName\":\"Ashok Ahire\",\"address\":\" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai\"}"} };
  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
  });

  body := strings.NewReader(`searchTerm={"name":"Siddharth Ashok Ahire ","fatherName":"Ashok Ahire","address":" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai"}`)
  req, err := http.NewRequest("POST", "https://crime.getupforchange.com/api/v3/records", body)
  if err != nil {
    // handle err
  }
  req.SetBasicAuth("test_apikey", "")
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    // handle err
  }
  defer resp.Body.Close()
  var client = new RestClient('https://crime.getupforchange.com/api/v3/records'){
      Authenticator = new HttpBasicAuthenticator('test_apikey', '')
  };
  var request = new RestRequest(Method.POST);
  request.AddHeader("content-type", "application/x-www-form-urlencoded");
  request.AddParameter("application/x-www-form-urlencoded", '{\"name\":\"Siddharth Ashok Ahire \",\"fatherName\":\"Ashok Ahire\",\"address\":\" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai\"}', ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  HttpResponse<String> response = Unirest.post("https://crime.getupforchange.com/api/v3/records")
    .basicAuth("test_apikey", "")
    .header("content-type", "application/x-www-form-urlencoded")
    .body("searchTerm={\"name\":\"Siddharth Ashok Ahire \",\"fatherName\":\"Ashok Ahire\",\"address\":\" 41/376 Ramabai Ambedkar Nagar ,Vasant Rao Naik , Marg,near Gurudwara,ghatkopar East Mumbai\"}")
    .asString();

The above command returns JSON structured like this:

{
    "status": "OK",
    "searchTerm": "Siddharth Ashok Ahire",
    "searchType": "searchByPetitionerOrRespondent",
    "matchType": "partial",
    "totalResult": 1,
    "totalHits": 91030,
    "page": 1,
    "resultsPerPage": 10,
    "details": [
        {
            "highlight": {
                "gfc_respondents.name": [
                    "<em>siddharth</em> @ siddhu <em>ashok</em> <em>ahire</em>"
                ],
                "gfc_respondents.address": [
                    "<mem>41</mem>-<mem>376</mem> Panchshil Chowk <mem>Ramabai</mem> <mem>ngar</mem> Ghatkopar east  Mumbai"
                ],
                "respondentaddress": [
                    "1) <mem>Siddharth</mem> @ Siddhu <mem>Ashok</mem> <mem>Ahire</mem>    Address - <mem>41</mem>-<mem>376</mem> Panchshil Chowk Ramabai ngar Ghatkopar east  Mumbai"
                ],
                "respondent": [
                    "<em>Siddharth</em> @ Siddhu <em>Ashok</em> <em>Ahire</em>"
                ]
            },
            "year": "2012",
            "bench": "",
            "crawledDate": "2018-06-26T23:22:03.000Z",
            "judgementDate": "",
            "judgementDescription": "",
            "caseFlow": "",
            "original_caseFlow": "[[],[4900466/2012,Metropolitan Magistrate Court 49,22-11-2013,,Disposed]]",
            "orderFlow": "",
            "matchFlag": {
                "respondent": {
                    "position": [
                        1
                    ],
                    "address": "ExactMatch",
                    "name": "ExactMatch",
                    "fatherName": "ExactMatch",
                    "initial": 0,
                    "matchingName": "siddharth ashok ahire ",
                    "matchingFatherName": "ashok ahire ",
                    "matchingScore": 100,
                    "matchingCount": 2
                },
                "petitioner": {
                    "position": []
                },
                "matchingField": "respondent",
                "relatedEntity": {
                    "address": "NotMatched",
                    "name": "NotMatched"
                },
                "matchingScore": 100
            },
            "petitioner": "Santosh Rama Gaikwad  PN",
            "stateCode": "1",
            "distCode": "23",
            "courtNumber": "12",
            "regNumber": "4900466/2012",
            "filingNumber": "1000466/2012",
            "filingDate": "12-09-2012",
            "hearingDate": "02nd April 2013",
            "courtNumberAndJudge": " 3-Metropolitan Magistrate Court 49",
            "score": 1670,
            "id": "AWK5aohZaQi7Hkqiy3kL",
            "respondent": "Siddharth @ Siddhu Ashok Ahire",
            "caseName": "Police Summons PS/4900466/2012",
            "caseTypeName": "PS - Police Summons",
            "caseTypeNumber": "1",
            "courtName": "Addl. Chief Metropolitan Magistrate, Vikroli, Mumb",
            "caseStatus": "Disposed",
            "caseNo": "200149004662012",
            "firnumber": "",
            "firlink": "",
            "dist": "",
            "policestation": "",
            "circle": "",
            "state": "Maharashtra",
            "courtType": "District Court",
            "district": "Mumbai Cmm Courts",
            "caseLink": "https://services.ecourts.gov.in/ecourtindia_v6/",
            "cinNumber": "MHMM160031392012",
            "caseRegDate": "12-09-2012",
            "petitionerAddress": "1) Santosh Rama Gaikwad  PN    Address  - P K Gaikwad Chawl R No 3 Tisgav Naka Kalyan east Thane",
            "respondentAddress": "1) Siddharth @ Siddhu Ashok Ahire    Address - 41-376 Panchshil Chowk Ramabai ngar Ghatkopar east  Mumbai",
            "underAct": "B P Act",
            "underSection": "142",
            "natureOfDisposal": " Uncontested--U/s 258 Cr.P.C.",
            "gfc_uniqueid": "DC_1_23_12_1_200149004662012_MHMM160031392012_2012",
            "elasticId": "AWK5aohZaQi7Hkqiy3kL",
            "caseDetailsLink": "https://crime.getupforchange.com/getDetails?gfcId=1a2c23eab5b49ad40e64492abb1cd370fa7dffac990f58098d3a5f2d72b475a276fe1ac06c79d757845c3e7563881f345713e6f8eca8417a3353c08387361dec",
            "gfc_orders_data": {
                "petitioners": [],
                "respondents": []
            },
            "caseType": "Criminal",
            "subcourtType": "Magistrate, District Court",
            "gfc_act": "Bombay Prohibition Act, 1949",
            "gfc_caseClassification": "Criminal",
            "gfc_caseType": "Police Case (PC)",
            "gfc_section": "142",
            "riskProfile": "Very High Risk",
            "position": 1
        }
    ],
    "overallRiskType": "Very High Risk",
    "overallRiskSummary": "Siddharth Ashok Ahire  has 1 case registered."
}

Example search Term used - Siddharth Ashok Ahire

Change History

Date Version Author Change Description
09/06/2023 1.18 Aswin Add link to Records API response field details
20/02/2023 1.17 Aswin Clarify about multiple courtType filter limitation concerning FIR
09/02/2023 1.16 Aswin Update AML, Voter, sample responses
06/07/2022 1.15 Upendra Added clientRefNo parameter details
27/06/2022 1.14 Sarin Added Voter API
06/05/2022 1.13 Aswin HTTP Error Codes updated
28/04/2022 1.12 Aswin Update courtType filter with FIR
12/04/2022 1.11 Aswin Add more values for courtName filter, for lists
26/01/2022 1.10 Aswin Add details about matchFlag, matchingCriteria, highlight params; Add Usage Count API details
29/05/2021 1.9 Mukul Update with matchType, riskProfile info
13/01/2021 1.8 Aswin Added details about companyType in Company profile search
14/12/2020 1.7 Sarin Added fields to add report api, removed exactmatch field, added either cin or company name is required.
30/07/2020 1.6 Aswin Add PAN number to Individual CrimeReport, JSON array format for directors
06/03/2018 1.5 Vinoth Added courtType and courtName Filters.
05/11/2017 1.4 Vinoth Added searchFields.
24/10/2017 1.3 Vinoth Added resultsPerPage and courtType.
09/10/2017 1.2 Vinoth Added filters and pagination.
01/09/2017 1.1 Vinoth Added SearchType for Partial searches.
28/08/2017 1.0 Pradeep Incorporated review comments.
26/08/2017 0.3 Vinoth Added detailed description for all the parameters.
25/08/2017 0.2 Vinoth Fixed formatting errors. Added some examples.
24/08/2017 0.1 Prasad Added categories for status of response.
20/08/2017 First Draft Vinoth Created first version with API and details.