Ongoing Monitoring
Register names via API, get notifications from webhooks.
The Ongoing Monitoring API is a comprehensive solution that enables businesses to proactively monitor their customers against dilisense's sanction, PEP, and criminal watchlist databases. This API provides a convenient and efficient way to register names of individuals and entities and receive real-time notifications if there are changes to the risk profiles (e.g., a name was found, removed or any attributes associated with that name were updated).
This documentation provides an overview of the Ongoing Monitoring API, including how to use it, the available endpoints, and what data formats are accepted.
1. Authentication
All API calls to dilisense require an authentication via API key. Specifically we expect the x-api-key value to be set in the header of your API call. If the API key is not valid, the API call will return a 401 HTTP error code.
We will provide you with a private API key, which you can use for integrating with our API. The private API key is only intended for your own use, as we track the number of API calls with this key. The key has to be securely stored on your side to avoid any misuse by unauthorized parties.
2. registerIndividual (GET)
The registerIndividual endpoint allows clients to register an individual's name to be monitored against dilisense's database, and receive notifications if any matches are found from that point in time onwards.
Endpoint
https://api.dilisense.com/v1/registerIndividual
Request parameters
profile_id
The unique identifier of the search profile that you want to associate with this request. If a search profile with this profile_id is already registered, the existing profile is updated with the parameters of the new request.
names
Search string that is checked against sanction, PEP and criminal watchlists. Only name fields (e.g. 'name', 'alias_names' etc.) are considered. Cannot be combined with 'search_all' parameter.
search_all
Search string that is checked against sanction, PEP and criminal watchlists. All fields are considered. Cannot be combined with 'names' parameter.
doboptional
This parameter searches for a match in the date of birth. Possible variations are
- dd/mm/yyyy if the exact date is known (e.g. 01/05/1990).
- 00/00/yyyy if only the year is known (e.g. 00/00/1990).
- 00/mm/yyyy if only the month and the year are known (e.g. 00/05/1990).
- dd/00/yyyy if only the day and the year are known (e.g. 01/00/1990).
genderoptional
This parameter searches for a match in gender. Possible values are
- ‘male’ - For searching for individuals that are “male” or that have the gender value not set.
- ‘female’ - For searching for individuals that are “female” or that have the gender value not set.
fuzzy_searchoptional
This parameter defines if spelling differences need to be considered for the search string.
- 1: Fuzzy search with distance 1 (e.g. Angela will also match for Angelo) for the "names" parameter.
- 2: Fuzzy search with distance 2 (e.g. Angela will also match for Angale) for the "names" parameter.
Example
- curl
- Python
- Java
- Javascript
curl --location --request GET 'https://api.dilisense.com/v1/registerIndividual?profile_id=abcdefg-1234&names=Boris%20Johnson&fuzzy_search=1&dob=19/06/1964&gender=male' \
--header 'x-api-key: <api_key>'
import requests
url = "https://api.dilisense.com/v1/registerIndividual?profile_id=abcdefg-1234&names=Boris Johnson&fuzzy_search=1&dob=19/06/1964&gender=male"
payload={}
headers = {
'x-api-key': '<api_key>'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.dilisense.com/v1/registerIndividual?profile_id=abcdefg-1234&names=Boris Johnson&fuzzy_search=1&dob=19/06/1964&gender=male"))
.header("x-api-key", "<api_key>")
.build();
client.sendAsync(request, BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
var myHeaders = new Headers();
myHeaders.append("x-api-key", "<api_key>");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://api.dilisense.com/v1/registerIndividual?profile_id=abcdefg-1234&names=Boris Johnson&fuzzy_search=1&dob=19/06/1964&gender=male", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Response
A successful response has the HTTP code 200 and contains no payload.
Registration does not include a baseline screening and matches at the time of registration will not trigger a webhook. To obtain the current screening result, call checkIndividual first and register the search profile afterwards.
3. registerEntity (GET)
The registerEntity endpoint allows clients to register an entity's name to be monitored against dilisense's database, and receive notifications if any matches are found from that point in time onwards.
Endpoint
https://api.dilisense.com/v1/registerEntity
Request parameters
profile_id
The unique identifier of the search profile that you want to associate with this request. If a search profile with this profile_id is already registered, the existing profile is updated with the parameters of the new request.