Domain Reputation API Reference
Check a domain's reputation across multiple trusted blacklist services, with an overall risk score, per-engine detection details, and additional security checks.
Service details and pricing: Domain Reputation API
Request example
Query the endpoint via an HTTPS POST request (replace YOUR_API_KEY_HERE with your API key):
curl -X POST "https://api.apivoid.com/v2/domain-reputation" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY_HERE" \
-d '{"host": "google.com"}'The same request in PHP:
$host = 'google.com';
$apiKey = 'YOUR_API_KEY_HERE';
$curl = curl_init('https://api.apivoid.com/v2/domain-reputation');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'X-API-Key: ' . $apiKey]);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode(['host' => $host]));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($httpCode === 200) {
$responseData = json_decode($response, true);
print_r($responseData);
} else {
print_r('An error occurred: '.$response);
}Request parameters
Required
Host to submit, e.g. google.com.
Optional
List of comma-separated engines to exclude, e.g. Malc0de,Spam404.
Your Spamhaus DBL DQS key, this will enable the Spamhaus engine.
Include domain age as risk factor and detect recently created domains.
New response fields (when enabled): is_domain_recent is_domain_very_recent domain_creation_date domain_age_in_days domain_age_in_months domain_age_in_years.
These new response fields are inside security_checks.
⚠ Enabling this option costs 1 additional credit per successful request.
Get data only from the cache (if present) for a faster response. Requires "include_domain_age": true.
Response example
A successful request returns HTTP 200 with a JSON body:
{
"host": "google.com",
"blacklists": {
"engines": {
"0": {
"name": "ANJ Blocked Sites",
"detected": false,
"reference": "https://anj.fr/",
"confidence": "high",
"elapsed_ms": 0
},
"1": {
"name": "AntiSocial Blacklist",
"detected": false,
"reference": "https://theantisocialengineer.com/",
"confidence": "high",
"elapsed_ms": 0
},
"2": {
"name": "APVA",
"detected": false,
"reference": "https://www.antiphish.org/",
"confidence": "high",
"elapsed_ms": 0
},
"3": {
"name": "Artists Against 419",
"detected": false,
"reference": "https://wiki.aa419.org/index.php/Main_Page",
"confidence": "high",
"elapsed_ms": 0
},
"4": {
"name": "AZORult Tracker",
"detected": false,
"reference": "https://azorult-tracker.net/",
"confidence": "high",
"elapsed_ms": 0
},
"5": {
"name": "Badbitcoin",
"detected": false,
"reference": "https://badbitcoin.org/",
"confidence": "high",
"elapsed_ms": 0
},
"6": {
"name": "Bambenek Consulting",
"detected": false,
"reference": "https://www.bambenekconsulting.com/",
"confidence": "high",
"elapsed_ms": 0
},
"7": {
"name": "CERT Polska",
"detected": false,
"reference": "https://www.cert.pl/",
"confidence": "high",
"elapsed_ms": 0
},
"8": {
"name": "COI CZ",
"detected": false,
"reference": "https://coi.gov.cz/",
"confidence": "high",
"elapsed_ms": 0
},
"9": {
"name": "CryptoScamDB",
"detected": false,
"reference": "https://cryptoscamdb.org/",
"confidence": "high",
"elapsed_ms": 0
},
"10": {
"name": "EtherAddressLookup",
"detected": false,
"reference": "https://github.com/409H/EtherAddressLookup/",
"confidence": "high",
"elapsed_ms": 0
},
...
},
"detections": 0,
"engines_count": 42,
"detection_rate": "0%",
"scan_time_ms": 139
},
"server_details": {
"ip": "192.178.219.139",
"reverse_dns": "ux-in-f139.1e100.net",
"continent_code": "NA",
"continent_name": "North America",
"country_code": "US",
"country_name": "United States of America",
"region_name": "California",
"city_name": "Mountain View",
"latitude": 37.38605,
"longitude": -122.08385,
"isp": "Google LLC",
"asn": "AS15169"
},
"category": {
"is_free_hosting": false,
"is_anonymizer": false,
"is_url_shortener": false,
"is_free_dynamic_dns": false,
"is_code_sandbox": false,
"is_form_builder": false,
"is_free_file_sharing": false,
"is_pastebin": false,
"is_qrcode_service": false
},
"security_checks": {
"is_most_abused_tld": false,
"is_domain_ipv4_assigned": true,
"is_domain_ipv4_private": false,
"is_domain_ipv4_loopback": false,
"is_domain_ipv4_reserved": false,
"is_domain_ipv4_valid": true,
"is_domain_blacklisted": false,
"detections_count": 0,
"is_uncommon_host_length": false,
"is_uncommon_dash_char_count": false,
"is_uncommon_dot_char_count": false,
"is_suspicious_homoglyph": false,
"is_possible_typosquatting": false,
"website_popularity": "high",
"is_uncommon_clickable_domain": false,
"is_risky_category": false
},
"domain_parts": {
"root_domain": "google.com",
"subdomain": "",
"tld": "com"
},
"risk_score": {
"result": 0
},
"elapsed_ms": 140
}If you enable the include_domain_age parameter, you will get more data on security_checks:
"security_checks": {
...
"is_domain_recent": "no",
"is_domain_very_recent": "no",
"domain_creation_date": "2021-03-11",
"domain_age_in_days": 1413,
"domain_age_in_months": 45,
"domain_age_in_years": 3
}Response fields
The fields returned in the JSON response:
hoststring
Host submitted for scanning.
blacklists → enginesobject
List of scanning engines with detection status and reference link.
blacklists → engines → [index] → namestring
Name of the scanning engine.
blacklists → engines → [index] → detectedboolean
Returns true if this engine flagged the submitted domain.
blacklists → engines → [index] → referencestring
Link to the engine's website or listing details.
blacklists → engines → [index] → confidencestring
Confidence level of this engine detection. Can be high or low.
blacklists → engines → [index] → elapsed_msinteger
Time taken by this engine to complete its check, in milliseconds.
blacklists → detectionsinteger
Number of scanning engines that detected the submitted host.
blacklists → engines_countinteger
Number of scanning engines used to scan the host.
blacklists → detection_ratestring
Percentage of engines that detected the domain, e.g. 5%.
blacklists → scan_time_msinteger
Time taken to scan the domain across all engines, in milliseconds.
server_details → ipstring
IP address of the submitted host.
server_details → reverse_dnsstring
Hostname (reverse DNS) assigned to the host's IP address.
server_details → continent_codestring
Continent code (e.g. NA) of where the host's IP address is located.
server_details → continent_namestring
Continent name (e.g. North America) of where the host's IP address is located.
server_details → country_codestring
Country code (e.g. CN) of where the host's IP address is located.
server_details → country_namestring
Country name of where the host's IP address is located.
server_details → region_namestring
Region or state name of where the host's IP address is located.
server_details → city_namestring
City name of where the host's IP address is located.
server_details → latitudefloat
Approximate latitude of the host's IP address.
server_details → longitudefloat
Approximate longitude of the host's IP address.
server_details → ispstring
Internet Service Provider (ISP) of host's IP address.
server_details → asnstring
IP Autonomous System Number (ASN), such as AS16509.
category → is_free_hostingboolean
Returns true if host is a free hosting provider, e.g. 000webhostapp.com.
category → is_anonymizerboolean
Returns true if host is an anonymizer service, e.g. a web proxy.
category → is_url_shortenerboolean
Returns true if host is a URL shortening service, e.g. rebrand.ly.
category → is_free_dynamic_dnsboolean
Returns true if host is a free dynamic DNS provider, e.g. dns-cloud.net.
category → is_code_sandboxboolean
Returns true if website is a code sandbox service, e.g. repl.co.
category → is_form_builderboolean
Returns true if website is a form builder service, e.g. forms.gle.
category → is_free_file_sharingboolean
Returns true if website is a free file hosting service, e.g. wetransfer.com.
category → is_pastebinboolean
Returns true if website is a pastebin service, e.g. pastebin.com.
category → is_qrcode_serviceboolean
Returns true if website is a QRCode service, e.g. uqr.to.
security_checks → is_most_abused_tldboolean
Returns true if host TLD is risky, e.g. .tk or .top.
security_checks → is_domain_ipv4_assignedboolean
Returns true if the domain resolves to an assigned IPv4 address.
security_checks → is_domain_ipv4_privateboolean
Returns true if the domain resolves to a private IPv4 address.
security_checks → is_domain_ipv4_loopbackboolean
Returns true if the domain resolves to a loopback (e.g. 127.0.0.1) IPv4 address.
security_checks → is_domain_ipv4_reservedboolean
Returns true if the domain resolves to a reserved IPv4 address.
security_checks → is_domain_ipv4_validboolean
Returns true if the domain resolves to a valid public IPv4 address.
security_checks → is_domain_blacklistedboolean
Returns true if domain is detected by at least 1 blacklist engine.
security_checks → detections_countinteger
Number of security checks that returned true.
security_checks → is_uncommon_host_lengthboolean
Returns true if the host length is uncommon (such as, a very long domain).
security_checks → is_uncommon_dash_char_countboolean
Returns true if the host contains too many dash "-" characters.
security_checks → is_uncommon_dot_char_countboolean
Returns true if the host contains too many dot "." characters.
security_checks → is_suspicious_homoglyphboolean
Returns true if the domain contains suspicious homoglyph characters.
security_checks → is_possible_typosquattingboolean
Returns true if the domain is potentially a typosquatted variant of a known domain.
security_checks → website_popularitystring
Estimated website popularity, can be: low, medium, high.
security_checks → is_uncommon_clickable_domainboolean
Returns true if the domain is considered unusual as a clickable link.
security_checks → is_risky_categoryboolean
Returns true if domain is a free DNS provider, free hosting provider or URL shortener.
security_checks → is_domain_recentstringWith: include_domain_age
Returns "yes" if domain was created less than 6 months ago, can be yes/no/unknown.
security_checks → is_domain_very_recentstringWith: include_domain_age
Returns "yes" if domain was created less than 30 days ago, can be yes/no/unknown.
security_checks → domain_creation_datestringWith: include_domain_age
Domain registration date, format is Y-m-d (empty if unknown).
security_checks → domain_age_in_daysintegerWith: include_domain_age
Age of the domain in days (0 if unknown).
security_checks → domain_age_in_monthsintegerWith: include_domain_age
Age of the domain in months (0 if unknown).
security_checks → domain_age_in_yearsintegerWith: include_domain_age
Age of the domain in years (0 if unknown).
domain_parts → root_domainstring
Registered root domain (e.g. example.com), excluding subdomains.
domain_parts → subdomainstring
Subdomain portion of the host (e.g. www). Empty string if none.
domain_parts → tldstring
Top-level domain (e.g. com, org, co.uk).
risk_score → resultinteger
Returns risk score, a number between 0 (safe) and 100 (dangerous).
elapsed_msinteger
Time taken to process the request, in milliseconds.