Telescope

Blacklist

How Telescope monitors domain reputation across DNS-based blacklists and Google Safe Browsing.

Blacklist monitors check whether a domain is listed on DNS-based blacklists (DNSBLs) or flagged by Google Safe Browsing. Being listed can mean your emails get rejected, your site gets flagged as malicious, or browsers show security warnings.

How a check works

  1. Telescope resolves the domain from the monitor's target field (or parses the hostname from url).
  2. For each configured blacklist, the appropriate check is executed:
    • DNS-based lists (Spamhaus, SURBL, SpamCop): A DNS A-record query is constructed (e.g. example.com.dbl.spamhaus.org) and sent via DNS-over-HTTPS to Cloudflare's resolver.
    • Google Safe Browsing: A POST request is sent to the Safe Browsing Lookup API v4 with the full URL and all threat types.
  3. All checks run in parallel via Promise.all.
  4. Each response is parsed per list rules. The overall status is determined: listed on any = down, all clean = up.

Checks never hang — every query uses AbortSignal.timeout (5 seconds). If a single list times out, the error is recorded but other lists still complete.

Status classification

ConditionStatusWhat it means
Not listed on any blacklistUpDomain reputation is clean
Listed on one or more blacklistsDownDomain is blacklisted — take action
All blacklist checks failedDownNetwork errors or timeouts on every list
Partial failure (some lists errored)UpClean on successful checks; errors logged

There is no degraded state — a domain is either listed or not.

Blacklists checked

DNS-based blacklists (default)

ListQuery formatWhat it detects
Spamhaus DBL{domain}.dbl.spamhaus.orgSpam, phishing, malware domains
SURBL{domain}.multi.surbl.orgPhishing, malware, cracked, abuse URIs
SpamCop{domain}.bl.spamcop.netSpam sources

Google Safe Browsing (opt-in)

ListMethodWhat it detects
Google Safe BrowsingPOST to Lookup API v4Malware, social engineering, unwanted software, potentially harmful applications

Add google_safe_browsing (or the short name google) to the monitor's check_lists config to enable it. Requires GOOGLE_API_KEY environment variable.

Threat types

Threat typeWhat it means
MALWARESites hosting or distributing malware
SOCIAL_ENGINEERINGPhishing and deceptive sites
UNWANTED_SOFTWARESites hosting unwanted or harmful software
POTENTIALLY_HARMFUL_APPLICATIONSites hosting apps that may harm devices

Response code reference

Spamhaus DBL

ResponseMeaning
127.0.1.xSpam domain
127.0.2.xPhishing domain
127.0.255.xPublic resolver error (ignored — not a real listing)

SURBL

Uses bit flags in the last octet of 127.0.0.x:

BitValueMeaning
38Phishing
416Malware
664Abuse
7128Cracked

Multiple bits can be set simultaneously (e.g. 127.0.0.24 = phishing + malware).

SpamCop

Only a 127.0.0.2 response indicates a spam listing. Any other 127.x.x.x response is a public resolver block/error code and is ignored (not a real listing).

Configuration options

SettingDefaultDescription
Check listsspamhaus_dbl, surbl, spamcopWhich blacklists to query. Add google_safe_browsing for Safe Browsing.
Timeout30 seconds (monitor-level)How long to wait for the overall check
DNS query timeout5 secondsPer-list DNS-over-HTTPS query timeout
Safe Browsing timeout5 secondsPer-call Safe Browsing API timeout

API key

Google Safe Browsing requires a GOOGLE_API_KEY environment variable. This is the same key used by other Google APIs in Telescope (e.g. PageSpeed Insights). If the key is not configured, the Safe Browsing check will return an error entry while DNS-based checks continue normally.

To set up the API key:

  1. Create a Google Cloud project (or use your existing one).
  2. Enable the Safe Browsing API in the Google Cloud Console.
  3. Generate an API key (or reuse your existing GOOGLE_API_KEY).
  4. Set GOOGLE_API_KEY in the worker's environment.

On this page