curl --request POST \
--url https://api.limitguard.ai/v1/leads/verify \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"country": "NL",
"company_number": "68750110",
"name": "Test BV Donald",
"vat_number": "NL123456789B01",
"email": "sales@example.nl",
"domain": "example.nl",
"address": {
"street": "Hizzaarderlaan",
"house_number": "3A",
"postcode": "8823 SJ",
"city": "Lollum"
},
"iban": "NL91ABNA0417164300",
"phone": "+31 20 123 4567"
}
'import requests
url = "https://api.limitguard.ai/v1/leads/verify"
payload = {
"country": "NL",
"company_number": "68750110",
"name": "Test BV Donald",
"vat_number": "NL123456789B01",
"email": "sales@example.nl",
"domain": "example.nl",
"address": {
"street": "Hizzaarderlaan",
"house_number": "3A",
"postcode": "8823 SJ",
"city": "Lollum"
},
"iban": "NL91ABNA0417164300",
"phone": "+31 20 123 4567"
}
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({
country: 'NL',
company_number: '68750110',
name: 'Test BV Donald',
vat_number: 'NL123456789B01',
email: 'sales@example.nl',
domain: 'example.nl',
address: {
street: 'Hizzaarderlaan',
house_number: '3A',
postcode: '8823 SJ',
city: 'Lollum'
},
iban: 'NL91ABNA0417164300',
phone: '+31 20 123 4567'
})
};
fetch('https://api.limitguard.ai/v1/leads/verify', 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/leads/verify",
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([
'country' => 'NL',
'company_number' => '68750110',
'name' => 'Test BV Donald',
'vat_number' => 'NL123456789B01',
'email' => 'sales@example.nl',
'domain' => 'example.nl',
'address' => [
'street' => 'Hizzaarderlaan',
'house_number' => '3A',
'postcode' => '8823 SJ',
'city' => 'Lollum'
],
'iban' => 'NL91ABNA0417164300',
'phone' => '+31 20 123 4567'
]),
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/leads/verify"
payload := strings.NewReader("{\n \"country\": \"NL\",\n \"company_number\": \"68750110\",\n \"name\": \"Test BV Donald\",\n \"vat_number\": \"NL123456789B01\",\n \"email\": \"sales@example.nl\",\n \"domain\": \"example.nl\",\n \"address\": {\n \"street\": \"Hizzaarderlaan\",\n \"house_number\": \"3A\",\n \"postcode\": \"8823 SJ\",\n \"city\": \"Lollum\"\n },\n \"iban\": \"NL91ABNA0417164300\",\n \"phone\": \"+31 20 123 4567\"\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/leads/verify")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"country\": \"NL\",\n \"company_number\": \"68750110\",\n \"name\": \"Test BV Donald\",\n \"vat_number\": \"NL123456789B01\",\n \"email\": \"sales@example.nl\",\n \"domain\": \"example.nl\",\n \"address\": {\n \"street\": \"Hizzaarderlaan\",\n \"house_number\": \"3A\",\n \"postcode\": \"8823 SJ\",\n \"city\": \"Lollum\"\n },\n \"iban\": \"NL91ABNA0417164300\",\n \"phone\": \"+31 20 123 4567\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitguard.ai/v1/leads/verify")
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 \"country\": \"NL\",\n \"company_number\": \"68750110\",\n \"name\": \"Test BV Donald\",\n \"vat_number\": \"NL123456789B01\",\n \"email\": \"sales@example.nl\",\n \"domain\": \"example.nl\",\n \"address\": {\n \"street\": \"Hizzaarderlaan\",\n \"house_number\": \"3A\",\n \"postcode\": \"8823 SJ\",\n \"city\": \"Lollum\"\n },\n \"iban\": \"NL91ABNA0417164300\",\n \"phone\": \"+31 20 123 4567\"\n}"
response = http.request(request)
puts response.read_body{
"verdict": "real_active",
"lead_score": 123,
"company": {
"registered": true,
"status": "active",
"legal_form": "<string>",
"registered_name": "<string>",
"name_match": 123,
"registered_since": "<string>",
"age_years": 123,
"sbi_main": "<string>",
"employees": 123,
"registered_address": {
"street": "<string>",
"house_number": "<string>",
"postcode": "<string>",
"city": "<string>",
"country": "<string>"
},
"address_shielded": false,
"address_match": 123,
"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
}
},
"vat": {
"checked": true,
"valid": true,
"name_match": 123,
"reason": "<string>"
},
"iban": {
"checked": true,
"valid": true,
"country": "<string>",
"bank": "<string>",
"bic": "<string>",
"last4": "<string>",
"country_agreement": true,
"holder_checked": false
},
"sanctions": {
"screened": true,
"hit": true,
"lists_as_of": {},
"reason": "<string>"
},
"email": {
"checked": true,
"has_mx": true,
"disposable": true
},
"flags": [
"name_mismatch"
],
"findings": [
{
"action": "<string>",
"why": "<string>",
"expected_result": "<string>"
}
],
"sources_checked": 123,
"checked_at": "<string>",
"schema_version": "lead-verify-v1",
"reason": "<string>",
"correlations": {},
"website_phones": [],
"website_phones_reason": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Lead Verify
Verify one NL/BE sales lead: register, VAT, mail server, IBAN, sanctions, lead score.
curl --request POST \
--url https://api.limitguard.ai/v1/leads/verify \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"country": "NL",
"company_number": "68750110",
"name": "Test BV Donald",
"vat_number": "NL123456789B01",
"email": "sales@example.nl",
"domain": "example.nl",
"address": {
"street": "Hizzaarderlaan",
"house_number": "3A",
"postcode": "8823 SJ",
"city": "Lollum"
},
"iban": "NL91ABNA0417164300",
"phone": "+31 20 123 4567"
}
'import requests
url = "https://api.limitguard.ai/v1/leads/verify"
payload = {
"country": "NL",
"company_number": "68750110",
"name": "Test BV Donald",
"vat_number": "NL123456789B01",
"email": "sales@example.nl",
"domain": "example.nl",
"address": {
"street": "Hizzaarderlaan",
"house_number": "3A",
"postcode": "8823 SJ",
"city": "Lollum"
},
"iban": "NL91ABNA0417164300",
"phone": "+31 20 123 4567"
}
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({
country: 'NL',
company_number: '68750110',
name: 'Test BV Donald',
vat_number: 'NL123456789B01',
email: 'sales@example.nl',
domain: 'example.nl',
address: {
street: 'Hizzaarderlaan',
house_number: '3A',
postcode: '8823 SJ',
city: 'Lollum'
},
iban: 'NL91ABNA0417164300',
phone: '+31 20 123 4567'
})
};
fetch('https://api.limitguard.ai/v1/leads/verify', 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/leads/verify",
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([
'country' => 'NL',
'company_number' => '68750110',
'name' => 'Test BV Donald',
'vat_number' => 'NL123456789B01',
'email' => 'sales@example.nl',
'domain' => 'example.nl',
'address' => [
'street' => 'Hizzaarderlaan',
'house_number' => '3A',
'postcode' => '8823 SJ',
'city' => 'Lollum'
],
'iban' => 'NL91ABNA0417164300',
'phone' => '+31 20 123 4567'
]),
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/leads/verify"
payload := strings.NewReader("{\n \"country\": \"NL\",\n \"company_number\": \"68750110\",\n \"name\": \"Test BV Donald\",\n \"vat_number\": \"NL123456789B01\",\n \"email\": \"sales@example.nl\",\n \"domain\": \"example.nl\",\n \"address\": {\n \"street\": \"Hizzaarderlaan\",\n \"house_number\": \"3A\",\n \"postcode\": \"8823 SJ\",\n \"city\": \"Lollum\"\n },\n \"iban\": \"NL91ABNA0417164300\",\n \"phone\": \"+31 20 123 4567\"\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/leads/verify")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"country\": \"NL\",\n \"company_number\": \"68750110\",\n \"name\": \"Test BV Donald\",\n \"vat_number\": \"NL123456789B01\",\n \"email\": \"sales@example.nl\",\n \"domain\": \"example.nl\",\n \"address\": {\n \"street\": \"Hizzaarderlaan\",\n \"house_number\": \"3A\",\n \"postcode\": \"8823 SJ\",\n \"city\": \"Lollum\"\n },\n \"iban\": \"NL91ABNA0417164300\",\n \"phone\": \"+31 20 123 4567\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitguard.ai/v1/leads/verify")
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 \"country\": \"NL\",\n \"company_number\": \"68750110\",\n \"name\": \"Test BV Donald\",\n \"vat_number\": \"NL123456789B01\",\n \"email\": \"sales@example.nl\",\n \"domain\": \"example.nl\",\n \"address\": {\n \"street\": \"Hizzaarderlaan\",\n \"house_number\": \"3A\",\n \"postcode\": \"8823 SJ\",\n \"city\": \"Lollum\"\n },\n \"iban\": \"NL91ABNA0417164300\",\n \"phone\": \"+31 20 123 4567\"\n}"
response = http.request(request)
puts response.read_body{
"verdict": "real_active",
"lead_score": 123,
"company": {
"registered": true,
"status": "active",
"legal_form": "<string>",
"registered_name": "<string>",
"name_match": 123,
"registered_since": "<string>",
"age_years": 123,
"sbi_main": "<string>",
"employees": 123,
"registered_address": {
"street": "<string>",
"house_number": "<string>",
"postcode": "<string>",
"city": "<string>",
"country": "<string>"
},
"address_shielded": false,
"address_match": 123,
"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
}
},
"vat": {
"checked": true,
"valid": true,
"name_match": 123,
"reason": "<string>"
},
"iban": {
"checked": true,
"valid": true,
"country": "<string>",
"bank": "<string>",
"bic": "<string>",
"last4": "<string>",
"country_agreement": true,
"holder_checked": false
},
"sanctions": {
"screened": true,
"hit": true,
"lists_as_of": {},
"reason": "<string>"
},
"email": {
"checked": true,
"has_mx": true,
"disposable": true
},
"flags": [
"name_mismatch"
],
"findings": [
{
"action": "<string>",
"why": "<string>",
"expected_result": "<string>"
}
],
"sources_checked": 123,
"checked_at": "<string>",
"schema_version": "lead-verify-v1",
"reason": "<string>",
"correlations": {},
"website_phones": [],
"website_phones_reason": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Body
One NL or BE lead: a company number or a name, plus whatever else is known.
Country of the company register: NL (KVK) or BE (KBO).
NL, BE "NL"
8-digit KVK number (NL) or 10-digit KBO/CBE enterprise number (BE).
32"68750110"
Company name as the lead gave it. Required for NL without a company_number.
200"Test BV Donald"
EU VAT number, checked with VIES.
20"NL123456789B01"
Contact email; only its domain is checked (mail server, disposable).
254"sales@example.nl"
Company website domain.
253"example.nl"
Address the lead gave; compared with the registered address.
Show child attributes
Show child attributes
IBAN the lead gave; validated locally, never echoed (last 4 only).
42"NL91ABNA0417164300"
Phone number the lead gave; compared with the numbers the company publishes, never echoed. Not accepted yet: a phone is rejected with 422 until website phone lookup is switched on.
40"+31 20 123 4567"
Response
Successful Response
One verdict and a 0-100 lead score, with each check that went into it.
real_active, real_inactive, not_found, ambiguous, unverifiable, sanctioned Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
name_mismatch, address_mismatch, iban_invalid, iban_foreign, vat_invalid, vat_owner_mismatch, no_mail_server, disposable_email, recently_registered, inactive, business_stopped, dormant_shell_signals Show child attributes
Show child attributes
"lead-verify-v1"Cross-checks that inform, never change the lead score.
Show child attributes
Show child attributes
Show child attributes
Show child attributes