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:
id — the signal's identifier (e.g. spf__spf_authorization)name — a short, fixed title (e.g. "SPF Authorization")signal_info — a fixed sentence describing what the signal looks for. It is always worded
as the negative/failing case and does not change with the result — the same signal_info is
returned whether status is success, warning, failed, or no_data.status — the actual result of that signal for this email: success, warning, failed, or no_data.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 | 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_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_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)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)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)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. |
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)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)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)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_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)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)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_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)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 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_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 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. |