Search Service API

The Search service is an index of all the entities contained in ONE tenant. It's possible to search all the different entities in Clearance: Cases, Evidences, Users, Group, Devices. You can even do geo-spatial searches that will return results within a bounding box.

Search Service Interactive Documentation

How to use the Interactive API Documentation

Examples of a text search

Here's an example when to find all the Case or Evidence containing the word "Smith".

HTTP POST REQUEST

curl -X POST --header 'Content-Type: application/json-patch+json' --header 'Accept: application/json' --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTcwOTA2LWNsZWFyYW5jZS1zaWduaW5nLXByb2QtYSIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1MjEwNTQ2NDYsImV4cCI6MTUyMTA2OTA0NiwiaXNzIjoiaHR0cHM6Ly9jbGVhcmFuY2UtYS1zdHMuZ2VuZXRlY2Nsb3VkLmNvbSIsImF1ZCI6Imh0dHBzOi8vY2xlYXJhbmNlLWEtc3RzLmdlbmV0ZWNjbG91ZC5jb20vcmVzb3VyY2VzIiwiY2xpZW50X2lkIjoieW91ci1jbGllbnQtaWQiLCJzdWIiOiJqZG95b25AZ2VuZXRlYy5jb20iLCJhdXRoX3RpbWUiOjE1MjEwNTQ2NDYsImlkcCI6ImxvY2FsIiwibmFtZSI6Impkb3lvbkBnZW5ldGVjLmNvbSIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiJqZG95b25AZ2VuZXRlYy5jb20iLCJodHRwOi8vc2NoZW1hcy5nZW5ldGVjLmNvbS93cy8yMDE2LzAzL2lkZW50aXR5L2NsYWltcy9wcmltYXJ5a2lkIjoidXJuOnVzZXI6amRveW9uZGVtbzpqZG95b25AZ2VuZXRlYy5jb206MyIsImh0dHA6Ly9zY2hlbWFzLmdlbmV0ZWMuY29tL3dzLzIwMTYvMDMvaWRlbnRpdHkvY2xhaW1zL3ByaW1hcnlpZCI6IjMiLCJodHRwOi8vc2NoZW1hcy5nZW5ldGVjLmNvbS93cy8yMDE2LzAzL2lkZW50aXR5L2NsYWltcy9wcmltYXJ5dHlwZSI6InVzZXIiLCJodHRwOi8vc2NoZW1hcy5nZW5ldGVjLmNvbS93cy8yMDE2LzAzL2lkZW50aXR5L2NsYWltcy90ZW5hbnRpZCI6Impkb3lvbmRlbW8iLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9naXZlbm5hbWUiOiJKb25hdGhhbiIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL3N1cm5hbWUiOiJEb3lvbiIsImh0dHA6Ly9zY2hlbWFzLmdlbmV0ZWMuY29tL3dzLzIwMTYvMDMvaWRlbnRpdHkvY2xhaW1zL2dyb3Vwa2lkIjoidXJuOmdyb3VwOmpkb3lvbmRlbW86L1RlbmFudCBBZG1pbmlzdHJhdG9yOjEiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsidGVuYW50YWRtaW4iLCJkZXZvcCJdLCJzY29wZSI6WyJvcGVuaWQiLCJwcm9maWxlIl0sImFtciI6WyJwd2QiXX0.mIoO1Pyqxqai5jg0A9JUmJJIZFpmXj6Kj-OAbTcd0-qA7HNkHCFbg3pK68StUIXh2EBSppp3IDsM0lyNiH2FrjvBCpvkFEiAK_b9KoRCRxuJw8S2T0xdPRn86yLv91tTen2L47xL0BMyDzIGP68U9K_D3KgOedOwvOYbwXjTx04lVxJuLVeKSgzFg3ehwm1BJbz4z6S_1a3qJ-8OEZFEQQO1V_elNUBxAuc1NoItJpjOo8B4ymsYNuAgFjF6L2acMEV9kC7SpivY-N6CV0SjWjrhfODo9VpqNaC8tsqqmr11sOVdrgGKKpbjNvzFNE3jq4Su0SkCXFY6KHB2jsW6bA' -d '{ \ 
   "Types": [ \ 
     "Case", \ 
     "Evidence" \ 
   ], \ 
   "Query": "smith", \ 
   "Skip": 0, \ 
   "Take": 100 \ 
 }' 'https://dems-proda-api.clearance.network/searchservice/api/v1/tenant/{TenantID}/search'

πŸ“˜

This example is using the North American instance of Clearance.

The bearer token must retrieve by authenticating with the Secure Token Service (STS)

The {TenantID} can be extracted from the JSON Connection File

HTTP RESPONSE

{
  "NumResults": 1,
  "Results": [
    {
      "EntityType": "case",
      "CaseId": "276",
      "CategoryId": null,
      "Created": "2018-02-17T18:44:12.126Z",
      "CreatedBy": "[email protected]",
      "DepartmentId": "administrators",
      "Description": "",
      "ExternalReferenceId1": "",
      "ExternalReferenceId2": "",
      "LastModified": "2018-03-09T20:52:06.049Z",
      "LastModifiedBy": "[email protected]",
      "Location": null,
      "LocationText": null,
      "LocationWKT": null,
      "OccurredOn": null,
      "EndedOn": null,
      "State": "Active",
      "Title": "John Smith",
      "LifecycleState": "Normal",
      "DeletedBy": null,
      "DeletedOnUtc": null,
      "EvidencesCount": 1,
      "CorrelatedEvidencesCount": null,
      "EntityId": "276",
      "EntityOrdinal": 11,
      "EntityTenantId": "tenant123"
    }
  ]
}

Examples of a geo-spatial search##

Here's the body of the POST method for searching all the evidences around New-York City.

Note the "Query": "*" to return all the evidences.

{
  "Query": "*",
  "Types": [ "evidence" ],
  "Skip": 0,
  "Take": 1000,
  "Location": {
    "Distance": 21.371249884144405,
    "Latitude": 40.787990717115406,
    "Longitude": -73.91440084614261
  }
}

Paged results with large amount of hit##

The response returned by the search service is paged because it can return millions of results. In the Body of the POST, you must specify the skip and take parameters to specify the index where to start (Skip) and the number of result to return (take).

{
  "Types": [
    "Case",
    "Evidence"
  ],
  "Query": "smith",
  "Skip": 0,
  "Take": 100
}

What’s Next