Unspam

Spam Check Signals

Each Spam Check category in /results (SPF, DKIM, DMARC, ...) is actually made up of one or more individual checks. We call each of these a signal. Every signal in results[].value[] has:

In other words, signal_info tells you what is being checked, and status tells you the outcome. Read them together — don't read signal_info as a description of what went wrong.

Status meanings

Status Meaning
success The check passed — everything is fine.
warning The check didn't fully pass, but the issue isn't critical.
failed The check failed and should be fixed.
no_data We couldn't retrieve the information needed to run the check — this isn't counted against you.

no_data generally means a prerequisite was missing — the sending IP wasn't present in the headers, a WHOIS/DNS lookup failed or timed out, or the email had no raw source to inspect. It can technically occur on any signal if its required input is unavailable, but it's the normal, expected result for a few signals (DNS/WHOIS-dependent checks, and BIMI — most domains don't publish BIMI at all).

The tables below list every signal, grouped by category, with the statuses it can actually return and a plain-language note on when warning or no_data applies.

Domain Blacklists (domain_blacklist)

Certain blacklists can have a severe effect on inbox placement.

Signal Description (signal_info) Possible statuses
domain_blacklist__general Your domain is listed in some significant blacklists! success, failed

meta contains domain, detected, resolved and lists: the blacklists that list it, each with title, url of the blacklist database and check_url, a form to check it (both can be null).

IP Blacklists (ip_blacklist)

The IP address your mail server sends from can be blacklisted independently of your domain.

Signal Description (signal_info) Possible statuses
ip_blacklist__general Your Mail Server IP address is in significant blacklists. success, failed

meta contains ip, detected, resolved and lists: the blacklists that list it, each with title, url of the blacklist database and check_url, a form to check it (both can be null).

SPF (spf)

A valid SPF record prevents spammers from sending spam that appears to come from your domain.

Signal Description (signal_info) Possible statuses Notes
spf__has_spf There is not a SPF DNS record published for the "from" domain. success, failed
spf__no_duplicate There are some duplicate SPF DNS records for the "from" domain. success, failed Failed when more than one SPF record is published for the domain.
spf__spf_authorization The sender is not authorized to send emails from the domain. success, warning, failed warning = the record ends in a softfail (~all) instead of a hardfail (-all) and the sending IP only "softly" matches. failed = the IP doesn't match at all, or the record errors out.
spf__not_include_all_mechanism The SPF DNS record includes the ?all mechanism. success, failed Failed when the record uses the neutral ?all qualifier, which authorizes nothing and no one.
spf__not_include_ptr_mechanism The SPF DNS record includes the ptr mechanism. success, failed Failed when the record uses the (deprecated, slow, unreliable) ptr mechanism.

DKIM (dkim)

Publishing a DKIM key reduces the likelihood of messages being blocked or marked as spam.

Signal Description (signal_info) Possible statuses Notes
dkim__has_dkim The email is not signed with DKIM, whether or not it is a valid signature. success, failed
dkim__is_verified The email is not signed with a valid DKIM signature. success, failed, no_data no_data if the raw message needed to verify the signature isn't available.

DMARC (dmarc)

Without a DMARC policy, emails from your domain can be spoofed.

Signal Description (signal_info) Possible statuses Notes
dmarc__has_dmarc There is no DMARC DNS record for the appropriate domain. success, failed
dmarc__no_duplicate There are some duplicate DMARC DNS records for the specified domain. success, warning, failed warning = exactly 2 records found. failed = 3 or more.
dmarc__has_version_tag The DMARC DNS record does not start with a valid version tag. success, failed Checks for v=DMARC1.
dmarc__has_policy_tag DMARC policy is not enforced. Set the p= tag to quarantine or reject. success, warning, failed success = p=reject or p=quarantine. warning = p=none (monitoring only, not enforced). failed = no valid policy tag.

Reverse DNS (rdns)

Mailbox providers may block mail from a server without reverse DNS in place.

Signal Description (signal_info) Possible statuses Notes
rdns__is_rdns The sending IP address does not have a valid reverse DNS (PTR) record, or the PTR record does not resolve back to the same IP address. success, failed, no_data no_data if no sending IP could be found in the email headers.
rdns__is_helo The Mail Server IP rDNS does not match the HELO client-ip. success, failed, no_data no_data if no HELO/EHLO hostname was found in the headers.

List-Unsubscribe Header (list_unsubscribe_header)

An easy unsubscribe mechanism helps prevent spam complaints.

Signal Description (signal_info) Possible statuses
unsubscribe__general Your email is missing the List-Unsubscribe header. success, warning

Domain Suffix (domain_suffix)

Certain domain suffixes are less likely to reach the inbox.

Signal Description (signal_info) Possible statuses Notes
domain_suffix__general Your domain uses an untrustworthy suffix! success, warning warning when the sending domain's suffix (TLD) isn't on our trusted list.

Domain Age (domain_age)

Younger domains are more difficult to build a reputation for.

Signal Description (signal_info) Possible statuses Notes
domain_age__not_expired The domain is expired. success, failed, no_data no_data if the WHOIS lookup fails, times out, or returns no expiration date.
domain_age__is_correct_age The domain is not old. success, warning, failed, no_data success = 12+ months old. warning = 6–12 months old. failed = under 6 months old. no_data if the WHOIS lookup fails or returns no creation date.

HTML Body Best Practices (html_best_practice)

How the HTML is built has a significant impact on spam filtering.

Signal Description (signal_info) Possible statuses Notes
html__not_contain_spam_phrases The message body contains some of the common spam phrases. success, warning, failed success = none found. warning = 1–3 phrases. failed = 4 or more.
html__valid_text_ratio_by_linked_images The HTML body contains a linked image and the rest of the HTML body is too small. success, warning, failed Based on the area taken up by clickable (linked) images vs. text: warning at 70–90% image area, failed above 90%.
html__valid_text_ratio_by_all_images The HTML body text to image ratio looks like spam messages. success, warning, failed Same thresholds as above, but counting all images (linked or not).
html__not_obfuscated The HTML body has more than 5% obfuscated text. success, failed Failed when meaningful text is hidden via display:none, near-zero opacity, visibility:hidden, or a zero-height + overflow:hidden container.
html__valid_html_font The HTML font is not readable or does not have a normal size. success, warning Warning when text is set very small (e.g. under 4px) or has too little contrast against its background.
html__valid_html_tags The HTML body is not composed of properly closed and nested tags. success, warning
html__supported_html_tags The HTML body is not composed of standard and supported HTML elements. success, warning E.g. <video>, <form> and other tags with limited email client support.
html__not_contain_embedded_tags The HTML is loading external elements, such as an iframe. success, failed
html__is_link_normal_length The HTML body includes links with URLs that are too long. success, warning, failed warning = some, but not all, links exceed 400 characters. failed = every link does.
html__is_normal_link_count The HTML body has many links commonly found in spam messages. success, warning, failed success ≤ 15 links, warning 16–30, failed above 30.

Subject Line (subject_line)

The subject line is parsed by spam filters too.

Signal Description (signal_info) Possible statuses Notes
subject_line__is_not_contain_spam_words The subject line contains some of the common spam phrases. success, warning, failed success = none found. warning = 1–2 words. failed = 3 or more.
subject_line__is_not_obfuscation The subject line formatting is not clear or is obfuscated. success, failed Failed when the subject contains confusable/homoglyph characters designed to evade filters.
subject_line__is_not_contain_gappy_text The subject line is formatted using gappy text. success, failed Failed on patterns like "F.R.E.E" or "B U Y N O W".
subject_line__is_not_contain_irregular_characters The subject line is not composed of legitimate and accepted characters. success, warning Warning when it contains characters such as $ % ^ * | { } < >.
subject_line__is_not_contain_to_address The subject line includes the sent to email address. success, warning

Broken links can cause a message to be marked as spam.

Signal Description (signal_info) Possible statuses Notes
broken_links__general Your email has broken links! success, warning, failed success = none broken. warning = 1–2 broken. failed = 3 or more.

Body Blacklists (body_blacklist)

A blacklisted link in the email body can cause it to be flagged as spam.

Signal Description (signal_info) Possible statuses
body_blacklist__general Your email body includes some blacklisted links! success, failed

When links are listed, meta.blacklisted_links contains one item per link: link, resolved, and blacklists (each with title, url of the blacklist database and check_url, a form to check the link; both can be null).

Short URLs (short_urls)

Shortened URLs used to track recipient behavior can trip spam filters.

Signal Description (signal_info) Possible statuses Notes
short_urls__general You are using dangerous short URLs! success, warning, failed success = none found. warning = exactly 1. failed = 2 or more.

SpamAssassin (spamassassin)

SpamAssassin is a widely used anti-spam platform used here as a general signal.

Signal Description (signal_info) Possible statuses Notes
spamassassin__is_valid SpamAssassin assigned the email a score above 5.0. success, warning, failed, no_data success ≤ 5.0, warning 5.0–8.0, failed above 8.0. no_data if the raw email isn't available or the scoring service can't be reached.

Accessibility Checking (accessibility_check)

Checks whether all of your email's text is actually readable.

Signal Description (signal_info) Possible statuses Notes
accessibility__has_accessibility_text Looks like there is some issue with accessibility in your email. It means that some text is invisible or unreadable for humans. success, warning Warning when text and its background don't have enough contrast to be read.

BIMI (bimi)

BIMI lets domains with strong email authentication display a brand logo in supporting inboxes. It's an optional, advisory feature — most domains don't publish a BIMI record at all, so no_data is the normal result for all BIMI signals unless a record is found.

Signal Description (signal_info) Possible statuses Notes
bimi__dns_record_exists No BIMI DNS record is published for the "from" domain. success, no_data no_data when no BIMI record is published — this is common and not held against you.
bimi__version_tag The BIMI DNS record does not include a valid version tag. success, warning, no_data Only evaluated when a BIMI record was found; no_data otherwise. Warning if the record is missing v=BIMI1.
bimi__location_tag The BIMI DNS record does not include a valid logo location tag. success, warning, no_data Only evaluated when a BIMI record was found; no_data otherwise. Warning if the record is missing the l= (logo URL) tag.
bimi__dmarc_enforcement The DMARC DNS record does not include a valid policy tag (p=none or missing). success, warning, no_data Only evaluated when a BIMI record was found; no_data otherwise. Warning if DMARC isn't enforced (p=reject/p=quarantine).
bimi__vmc The BIMI record does not include a valid authority (VMC). success, warning, no_data Only evaluated when a BIMI record was found; no_data otherwise. Warning if there's no Verified Mark Certificate (a= tag) — this is optional even for a valid BIMI setup.