curl --request POST \
--url https://api.limitguard.ai/v1/entity/check \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"entity_name": "<string>",
"country": "<string>",
"kvk_number": "<string>",
"cbe_number": "<string>",
"domain": "<string>",
"iban": "<string>",
"vat_number": "<string>",
"wallet_address": "<string>",
"wallet_chain": "<string>",
"target_industries": [
"62",
"software"
],
"target_size": {
"min": 10,
"max": 50
}
}
'import requests
url = "https://api.limitguard.ai/v1/entity/check"
payload = {
"entity_name": "<string>",
"country": "<string>",
"kvk_number": "<string>",
"cbe_number": "<string>",
"domain": "<string>",
"iban": "<string>",
"vat_number": "<string>",
"wallet_address": "<string>",
"wallet_chain": "<string>",
"target_industries": ["62", "software"],
"target_size": {
"min": 10,
"max": 50
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entity_name: '<string>',
country: '<string>',
kvk_number: '<string>',
cbe_number: '<string>',
domain: '<string>',
iban: '<string>',
vat_number: '<string>',
wallet_address: '<string>',
wallet_chain: '<string>',
target_industries: ['62', 'software'],
target_size: {min: 10, max: 50}
})
};
fetch('https://api.limitguard.ai/v1/entity/check', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.limitguard.ai/v1/entity/check",
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' => '<string>',
'country' => '<string>',
'kvk_number' => '<string>',
'cbe_number' => '<string>',
'domain' => '<string>',
'iban' => '<string>',
'vat_number' => '<string>',
'wallet_address' => '<string>',
'wallet_chain' => '<string>',
'target_industries' => [
'62',
'software'
],
'target_size' => [
'min' => 10,
'max' => 50
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.limitguard.ai/v1/entity/check"
payload := strings.NewReader("{\n \"entity_name\": \"<string>\",\n \"country\": \"<string>\",\n \"kvk_number\": \"<string>\",\n \"cbe_number\": \"<string>\",\n \"domain\": \"<string>\",\n \"iban\": \"<string>\",\n \"vat_number\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"wallet_chain\": \"<string>\",\n \"target_industries\": [\n \"62\",\n \"software\"\n ],\n \"target_size\": {\n \"min\": 10,\n \"max\": 50\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.limitguard.ai/v1/entity/check")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"entity_name\": \"<string>\",\n \"country\": \"<string>\",\n \"kvk_number\": \"<string>\",\n \"cbe_number\": \"<string>\",\n \"domain\": \"<string>\",\n \"iban\": \"<string>\",\n \"vat_number\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"wallet_chain\": \"<string>\",\n \"target_industries\": [\n \"62\",\n \"software\"\n ],\n \"target_size\": {\n \"min\": 10,\n \"max\": 50\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitguard.ai/v1/entity/check")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entity_name\": \"<string>\",\n \"country\": \"<string>\",\n \"kvk_number\": \"<string>\",\n \"cbe_number\": \"<string>\",\n \"domain\": \"<string>\",\n \"iban\": \"<string>\",\n \"vat_number\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"wallet_chain\": \"<string>\",\n \"target_industries\": [\n \"62\",\n \"software\"\n ],\n \"target_size\": {\n \"min\": 10,\n \"max\": 50\n }\n}"
response = http.request(request)
puts response.read_body{
"trust_score": 50,
"trust_level": "high",
"cluster": "established_eu_enterprise",
"recommendation": "proceed",
"confidence": 0.5,
"top_factors": [
{
"source": "<string>",
"signal": "<string>",
"impact": "<string>",
"weight": 123
}
],
"sources_checked": 1,
"processing_time_ms": 1,
"correlations": {},
"findings": [
{
"action": "<string>",
"why": "<string>",
"expected_result": "<string>"
}
],
"company_profile": {
"status": "active",
"headline": "<string>",
"stopped_on": "<string>",
"industry": {
"code": "01241",
"is_main": true,
"description": "Teelt van appels en peren"
},
"other_activities": [],
"employees": {
"total": 123,
"full_time": 123,
"part_time": 123
},
"branches": {
"total": 123,
"commercial": 123
},
"kvk_non_mailing": true,
"statutory_name": "<string>",
"trade_names": [],
"extended_legal_form": "<string>",
"websites": [],
"lines": [],
"personal_data_withheld": false
},
"dormant_shell": {
"score": 50,
"signals": [
{
"signal": "no_staff",
"words": "no staff",
"source": "KVK register"
}
],
"unknown": [
"no_staff"
],
"flag_at": 50
},
"icp_fit": {
"industry": "match",
"size": "match",
"industry_source": "<string>",
"size_source": "<string>",
"confirmed_elsewhere": false
},
"enhanced_check_hint": {
"endpoint": "<string>",
"quality": "<string>",
"price_usdc": 1,
"adds": [
"<string>"
],
"trigger_reason": "<string>",
"tiers": [
{
"quality": "<string>",
"response_quality": "<string>",
"price_usdc": 1,
"adds": [
"<string>"
]
}
]
},
"response_quality": "fresh",
"cache_hit": false,
"source_data_dates": {},
"disclaimers": [
"<string>"
],
"version": "1.0"
}{
"title": "<string>",
"status": 123,
"retry": {
"price_usdc": 123,
"price_raw": 123,
"header": "X-Response-Quality",
"value": "fresh"
},
"type": "about:blank",
"detail": "<string>",
"instance": "<string>",
"errorCode": "not_cached"
}{
"detail": [
{
"field": "<string>",
"message": "<string>"
}
],
"type": "https://docs.limitguard.ai/errors#validation-error",
"title": "Validation Error",
"status": 422,
"instance": "<string>",
"errorCode": "validation_error",
"note": "Nothing was charged."
}{
"title": "<string>",
"status": 123,
"type": "about:blank",
"detail": "<string>",
"instance": "<string>"
}Entity Check
Full entity trust check.
Always runs country risk and sanctions; runs each other data source whose identifier is provided (up to 8 total), computes a trust score, assigns a cluster, and returns a recommendation.
entity_name and country are required; identifiers (kvk_number,
cbe_number, domain, iban, vat_number, wallet_address) are optional and
raise confidence. With none, only country risk and sanctions run (plus a
KVK name search for NL), at lower confidence.
curl --request POST \
--url https://api.limitguard.ai/v1/entity/check \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"entity_name": "<string>",
"country": "<string>",
"kvk_number": "<string>",
"cbe_number": "<string>",
"domain": "<string>",
"iban": "<string>",
"vat_number": "<string>",
"wallet_address": "<string>",
"wallet_chain": "<string>",
"target_industries": [
"62",
"software"
],
"target_size": {
"min": 10,
"max": 50
}
}
'import requests
url = "https://api.limitguard.ai/v1/entity/check"
payload = {
"entity_name": "<string>",
"country": "<string>",
"kvk_number": "<string>",
"cbe_number": "<string>",
"domain": "<string>",
"iban": "<string>",
"vat_number": "<string>",
"wallet_address": "<string>",
"wallet_chain": "<string>",
"target_industries": ["62", "software"],
"target_size": {
"min": 10,
"max": 50
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entity_name: '<string>',
country: '<string>',
kvk_number: '<string>',
cbe_number: '<string>',
domain: '<string>',
iban: '<string>',
vat_number: '<string>',
wallet_address: '<string>',
wallet_chain: '<string>',
target_industries: ['62', 'software'],
target_size: {min: 10, max: 50}
})
};
fetch('https://api.limitguard.ai/v1/entity/check', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.limitguard.ai/v1/entity/check",
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' => '<string>',
'country' => '<string>',
'kvk_number' => '<string>',
'cbe_number' => '<string>',
'domain' => '<string>',
'iban' => '<string>',
'vat_number' => '<string>',
'wallet_address' => '<string>',
'wallet_chain' => '<string>',
'target_industries' => [
'62',
'software'
],
'target_size' => [
'min' => 10,
'max' => 50
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.limitguard.ai/v1/entity/check"
payload := strings.NewReader("{\n \"entity_name\": \"<string>\",\n \"country\": \"<string>\",\n \"kvk_number\": \"<string>\",\n \"cbe_number\": \"<string>\",\n \"domain\": \"<string>\",\n \"iban\": \"<string>\",\n \"vat_number\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"wallet_chain\": \"<string>\",\n \"target_industries\": [\n \"62\",\n \"software\"\n ],\n \"target_size\": {\n \"min\": 10,\n \"max\": 50\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.limitguard.ai/v1/entity/check")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"entity_name\": \"<string>\",\n \"country\": \"<string>\",\n \"kvk_number\": \"<string>\",\n \"cbe_number\": \"<string>\",\n \"domain\": \"<string>\",\n \"iban\": \"<string>\",\n \"vat_number\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"wallet_chain\": \"<string>\",\n \"target_industries\": [\n \"62\",\n \"software\"\n ],\n \"target_size\": {\n \"min\": 10,\n \"max\": 50\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitguard.ai/v1/entity/check")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entity_name\": \"<string>\",\n \"country\": \"<string>\",\n \"kvk_number\": \"<string>\",\n \"cbe_number\": \"<string>\",\n \"domain\": \"<string>\",\n \"iban\": \"<string>\",\n \"vat_number\": \"<string>\",\n \"wallet_address\": \"<string>\",\n \"wallet_chain\": \"<string>\",\n \"target_industries\": [\n \"62\",\n \"software\"\n ],\n \"target_size\": {\n \"min\": 10,\n \"max\": 50\n }\n}"
response = http.request(request)
puts response.read_body{
"trust_score": 50,
"trust_level": "high",
"cluster": "established_eu_enterprise",
"recommendation": "proceed",
"confidence": 0.5,
"top_factors": [
{
"source": "<string>",
"signal": "<string>",
"impact": "<string>",
"weight": 123
}
],
"sources_checked": 1,
"processing_time_ms": 1,
"correlations": {},
"findings": [
{
"action": "<string>",
"why": "<string>",
"expected_result": "<string>"
}
],
"company_profile": {
"status": "active",
"headline": "<string>",
"stopped_on": "<string>",
"industry": {
"code": "01241",
"is_main": true,
"description": "Teelt van appels en peren"
},
"other_activities": [],
"employees": {
"total": 123,
"full_time": 123,
"part_time": 123
},
"branches": {
"total": 123,
"commercial": 123
},
"kvk_non_mailing": true,
"statutory_name": "<string>",
"trade_names": [],
"extended_legal_form": "<string>",
"websites": [],
"lines": [],
"personal_data_withheld": false
},
"dormant_shell": {
"score": 50,
"signals": [
{
"signal": "no_staff",
"words": "no staff",
"source": "KVK register"
}
],
"unknown": [
"no_staff"
],
"flag_at": 50
},
"icp_fit": {
"industry": "match",
"size": "match",
"industry_source": "<string>",
"size_source": "<string>",
"confirmed_elsewhere": false
},
"enhanced_check_hint": {
"endpoint": "<string>",
"quality": "<string>",
"price_usdc": 1,
"adds": [
"<string>"
],
"trigger_reason": "<string>",
"tiers": [
{
"quality": "<string>",
"response_quality": "<string>",
"price_usdc": 1,
"adds": [
"<string>"
]
}
]
},
"response_quality": "fresh",
"cache_hit": false,
"source_data_dates": {},
"disclaimers": [
"<string>"
],
"version": "1.0"
}{
"title": "<string>",
"status": 123,
"retry": {
"price_usdc": 123,
"price_raw": 123,
"header": "X-Response-Quality",
"value": "fresh"
},
"type": "about:blank",
"detail": "<string>",
"instance": "<string>",
"errorCode": "not_cached"
}{
"detail": [
{
"field": "<string>",
"message": "<string>"
}
],
"type": "https://docs.limitguard.ai/errors#validation-error",
"title": "Validation Error",
"status": 422,
"instance": "<string>",
"errorCode": "validation_error",
"note": "Nothing was charged."
}{
"title": "<string>",
"status": 123,
"type": "about:blank",
"detail": "<string>",
"instance": "<string>"
}Authorizations
Body
Full entity check request - always runs country risk and sanctions; runs each other data source whose identifier is supplied (up to 8 total).
entity_name and country are required; identifiers (kvk_number, cbe_number, domain, iban, vat_number, wallet_address) are optional and raise confidence.
Legal entity name
1 - 500ISO 3166-1 alpha-2 country code
2Dutch KVK number (8 digits)
Belgian CBE number: 0XXX.XXX.XXX, or the same 10 digits without dots
Entity website domain
253IBAN for financial validation
34EU VAT number
20Crypto wallet address (format check only; no on-chain lookup)
100Blockchain the address is checked against (eth, base, polygon, arbitrum, btc, sol). Defaults to eth when omitted, so send btc or sol with a Bitcoin or Solana address
Ideal-customer industries: SBI/NACE code prefixes ("62", "64.20") or plain words matched as whole words against the register's activity descriptions. Information only: never changes the score.
20["62", "software"]
Ideal-customer employee range, both ends inclusive. Information only.
Show child attributes
Show child attributes
Response
Successful Response
Trust check response from /v1/entity/check: trust score, recommendation, top factors and findings.
Overall trust score
0 <= x <= 100high, medium, low, critical established_eu_enterprise, established_eu_sme, verified_startup, unverified_new, high_risk_jurisdiction, sanctions_flagged, insufficient_data, mixed_signals proceed, review, enhanced_due_diligence, block Score confidence (0-1)
0 <= x <= 15Show child attributes
Show child attributes
x >= 0x >= 0Key correlations between signals
Show child attributes
Show child attributes
One action per mismatch the correlations show (same rules as the report)
Show child attributes
Show child attributes
NL: what the KVK register says about the company (industry, stopped date, size, non-mailing, names, websites)
Show child attributes
Show child attributes
Weighted dormant-shell score with the signals that fired, for a company found in the register. Information only: never changes trust_score
Show child attributes
Show child attributes
The company against target_industries / target_size; null when neither was sent. Information only: never changes trust_score
Show child attributes
Show child attributes
Suggested deeper check when recommendation is review or enhanced_due_diligence
Show child attributes
Show child attributes
Quality tier used for this response: cached or fresh. 'enhanced' was retired on 2026-09-24; a request for it is served fresh with a note in disclaimers
True if result was served from cache (cached tier)
ISO timestamps when each data source was last retrieved
Show child attributes
Show child attributes
Legal disclaimers for data sources used in this response