Run KYC Check
curl --request POST \
--url https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/ \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"entity_name": "John Doe",
"sources": "<string>",
"continuous_monitoring": false
}
'import requests
url = "https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/"
payload = {
"entity_name": "John Doe",
"sources": "<string>",
"continuous_monitoring": False
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({entity_name: 'John Doe', sources: '<string>', continuous_monitoring: false})
};
fetch('https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_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://adhere-api.smartcomply.com/api/v1/monitoring/kyc_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([
'entity_name' => 'John Doe',
'sources' => '<string>',
'continuous_monitoring' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <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://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/"
payload := strings.NewReader("{\n \"entity_name\": \"John Doe\",\n \"sources\": \"<string>\",\n \"continuous_monitoring\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<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://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"entity_name\": \"John Doe\",\n \"sources\": \"<string>\",\n \"continuous_monitoring\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entity_name\": \"John Doe\",\n \"sources\": \"<string>\",\n \"continuous_monitoring\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "failed",
"data": [
"<unknown>"
],
"message": "<string>"
}{
"status": "failed",
"message": "Authentication credentials were not provided."
}KYC
Run KYC Check
Initiate a KYC check for an entity against sanctions lists, PEP databases, and adverse media sources.
POST
/
api
/
v1
/
monitoring
/
kyc_search
/
Run KYC Check
curl --request POST \
--url https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/ \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"entity_name": "John Doe",
"sources": "<string>",
"continuous_monitoring": false
}
'import requests
url = "https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/"
payload = {
"entity_name": "John Doe",
"sources": "<string>",
"continuous_monitoring": False
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({entity_name: 'John Doe', sources: '<string>', continuous_monitoring: false})
};
fetch('https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_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://adhere-api.smartcomply.com/api/v1/monitoring/kyc_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([
'entity_name' => 'John Doe',
'sources' => '<string>',
'continuous_monitoring' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <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://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/"
payload := strings.NewReader("{\n \"entity_name\": \"John Doe\",\n \"sources\": \"<string>\",\n \"continuous_monitoring\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<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://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"entity_name\": \"John Doe\",\n \"sources\": \"<string>\",\n \"continuous_monitoring\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entity_name\": \"John Doe\",\n \"sources\": \"<string>\",\n \"continuous_monitoring\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "failed",
"data": [
"<unknown>"
],
"message": "<string>"
}{
"status": "failed",
"message": "Authentication credentials were not provided."
}The Run KYC Check endpoint screens an entity against multiple risk databases including sanctions lists, PEP (Politically Exposed Persons) records, and adverse media sources. Results are returned immediately for completed checks, or asynchronously if adverse media screening is still processing.
Endpoint
POST /api/v1/monitoring/kyc_search/
Request
Headers
| Header | Value | Required |
|---|---|---|
x-access-token | Your API secret key | Yes |
Content-Type | application/json | Yes |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
entity_name | string | Yes | Name of the entity to screen |
entity_type | string | No | Entity type: "person", "company", "business", or "organization" (defaults to person if none provided) |
sources | string | No | Comma-separated data sources to query (e.g., "Sanctions, PEPs, Adverse Media") |
continuous_monitoring | boolean | No | Enable ongoing monitoring for this entity. Defaults to false |
Example
curl -X POST "https://adhere-api.smartcomply.com/api/v1/monitoring/kyc_search/" \
-H "x-access-token: YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"entity_name": "John Doe",
"entity_type": "person",
"sources": "Sanctions, PEPs, Adverse Media",
"continuous_monitoring": false,
}'
Response
200 OK — Completed
When results are immediately available, the response includes the full KYC result with risk level, PEP findings, sanctions matches, adverse media, and social media profiles.| Field | Type | Description |
|---|---|---|
data.id | number | Unique identifier for this KYC request |
data.entity_name | string | Name of the entity screened |
data.status | string | Check status: "completed" or "running" |
data.result.risk_level | string | Assessed risk: "low", "medium", or "high" |
data.result.total_hits | number | Total flagged matches across all sources |
data.result.total_blacklist_hits | number | Number of blacklist matches |
data.result.pep_results | array | PEP matches with entity name, country, and classification |
data.result.sanction_results | array | Sanction matches with body, types, and other information |
data.result.adverse_media_results | array | Adverse media articles with URL, date, title, and category |
data.result.social_media | array | Social media profiles associated with the entity |
{
"status": "success",
"data": {
"id": 6036,
"entity_name": "Qudratullah Jamal",
"status": "completed",
"result": {
"risk_level": "high",
"total_hits": 76,
"total_blacklist_hits": 6,
"pep_results": [
{
"entity_name": "qudratullah jamal",
"gender": "Not Available",
"country": "Unknown",
"pep_types": ["pep-class-1"],
"other_names": ["qudratullah jamal"],
"other_information": {
"recorded_date": "2022-04-27T18:12:14",
"political_post": ["sanction"]
}
}
],
"sanction_results": [
{
"entity_name": "QUDRATULLAH JAMAL",
"recorded_date": "29 Nov. 2011",
"country": "Afghanistan",
"sanction_body": null,
"sanction_types": ["sanction", "warnings"],
"other_names": [],
"other_information": {
"dob": "Approximately 1963",
"pob": "Gardez, Paktia Province, Afghanistan",
"title": "Maulavi",
"designations": "Minister of Information under the Taliban regime"
}
}
],
"adverse_media_results": [
{
"url": "https://www.opensanctions.org/entities/NK-a8GaVuetYPU5ZaoT48kMch/",
"date": "2026-03-06T12:58:26Z",
"title": "Maulavi Qudratullah Jamal - OpenSanctions",
"types": ["adverse-media-v2-terrorism"],
"provider": "google_cse",
"relevance_score": 4
}
],
"social_media": [
{
"bio": "TOLOnews - X",
"url": "https://x.com/TOLOnews/status/1510158383004930052",
"platform": "X",
"provider": "google_cse",
"description": "Addressing a gathering in Kabul, the deputy minister of commerce and industry, Qudratullah Jamal..."
}
],
"search_term": "Qudratullah Jamal",
"date_updated": "2026-03-06 12:58:30"
}
},
"message": "KYC search completed"
}
400 Bad Request
{
"status": "failed",
"data": [],
"message": "Sorry, your check cannot be processed at the moment. Please try again in a few minutes"
}
401 Unauthorized
{
"status": "failed",
"message": "Authentication credentials were not provided."
}
Authorizations
Your Adhere API secret key
Body
application/json
Response
KYC check initiated or completed
⌘I

