APIVoid logo

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

POSThttps://api.apivoid.com/v2/domain-reputation
1 credit per successful requestPOST · JSON

Request example

Query the endpoint via an HTTPS POST request (replace YOUR_API_KEY_HERE with your API key):

curl
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:

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

hoststringRequired

Host to submit, e.g. google.com.

Optional

exclude_enginesstring

List of comma-separated engines to exclude, e.g. Malc0de,Spam404.

spamhaus_keystring

Your Spamhaus DBL DQS key, this will enable the Spamhaus engine.

include_domain_agebooleanDefault: false+1 Credit

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.

domain_age_cache_onlybooleanDefault: false

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:

json · 200
{
    "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:

json · include_domain_age
"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.