Help
Response fields

threat

Threat flags, blocklists and verified crawlers.

Threat flags from named public feeds (refreshed daily) plus verified crawler identification from 19 official IP-range feeds (re-fetched daily).

FieldTypeDescription
is_abusivebooleanIP appears on abuse-focused threat feeds.
is_bogonbooleanIP falls in unallocated or reserved space (Team Cymru bogon data).
is_crawlerbooleanIP belongs to a known crawler or AI bot.
is_spammerbooleanIP is a known spam source.
is_scannerbooleanIP belongs to known internet-wide scanner ranges (e.g. Shodan, Censys).
is_botnetbooleanIP appears in botnet C2 data (Feodo Tracker).
is_cgnatbooleanIP is in a carrier-grade NAT range shared by many users. Risk scores are capped for CGNAT ranges.
threat_typesstring[]Every threat category that applies to this IP.
blocklist_countnumberNumber of blocklists currently listing this IP.
blocklist_sourcesstring[]Names of the blocklists that listed this IP.
dnsbl_sourcesstring[]Which of the 4 DNS blocklist zones listed this IP.
crawler.verifiedbooleanCrawler identity confirmed against its operator's official IP ranges.
crawler.unverifiedbooleanCrawler-like identity that could not be confirmed against official ranges.
crawler.spoofedbooleanReserved; not populated yet (always false). A lookup does not see the User-Agent, so compare crawler.verified with the identity the request claims.
crawler.namestringCrawler name, e.g. "Googlebot", "GPTBot".
crawler.operatorstringOrganization operating the crawler.
crawler.categorystringCrawler category.
crawler.verification_methodstringHow the crawler identity was verified.
botnet.rolestringRole in the botnet, when known.
botnet.familystringMalware family, when known.
botnet.last_seenstringISO 8601 timestamp of the last botnet sighting.
honeypot.hits_30dnumberHoneypot interactions recorded in the last 30 days.
honeypot.typestringType of honeypot interaction, when any exists.
honeypot.last_hitstringISO 8601 timestamp of the last honeypot interaction.
spammer_last_seenstringISO 8601 timestamp of the last spam sighting.

A field with no value comes back as the string "none", or 0 for numbers. The API never returns null.

Example

The threat group for 8.8.8.8, from a real lookup on 24 October 2026. Values change as the data is refreshed.

{
  "threat": {
    "is_abusive": false,
    "is_bogon": false,
    "is_crawler": false,
    "is_spammer": false,
    "is_scanner": false,
    "is_botnet": false,
    "is_cgnat": false,
    "threat_types": [],
    "blocklist_count": 0,
    "blocklist_sources": [],
    "dnsbl_sources": [],
    "crawler": {
      "verified": false,
      "unverified": false,
      "spoofed": false,
      "name": "none",
      "operator": "none",
      "category": "none",
      "verification_method": "none"
    },
    "botnet": {
      "role": "none",
      "family": "none",
      "last_seen": "none"
    },
    "honeypot": {
      "hits_30d": 0,
      "type": "none",
      "last_hit": "none"
    },
    "spammer_last_seen": "none"
  }
}

On this page