Skip to main content
The pre-send spam check evaluates a draft against WazobiaMail’s SpamAssassin-style rules and returns a penalty score, a threshold, a risk rating and a 0–100 deliverability score. Plan requirement: POST /sending/spam-check is available on Business and Enterprise plans (and to platform administrators). Free, Starter and Pay-as-you-go accounts receive 403 Forbidden.

The short answer

Always trust the returned isSpam boolean when making an automated decision. It is calculated as score >= threshold, and the threshold field is the current server value (currently 5.0).

What each number means

  • score — penalty points added by every triggered rule. Lower is better. A score of 0 is clean.
  • threshold — the cut-off for isSpam (currently 5.0). Do not hard-code it; read it from the response.
  • isSpam — true when score >= threshold. This is the authoritative pass/fail signal.
  • rating — low_risk, moderate_risk or high_risk.
  • badgeColor — green, yellow or red, for dashboards.
  • deliverabilityScore — the inverse health score from 0 to 100. Higher is better. It is calculated as roughly (10 - min(score, 10)) / 10 * 100, so:
    • score 0.0 → 100
    • score 1.2 → 88
    • score 2.0 → 80
    • score 5.0 → 50
    • score 10.0+ → 0
  • rules — the individual findings. Each has code, points, title, description and a plain-English recommendation.
  • summary — a human-readable sentence combining the risk label and score.

What to fix first

  1. Sort rules by points descending.
  2. Fix the highest-point rules first; they move the score the most.
  3. Re-run the check until isSpam is false and the score is in the green band (< 2.0).
  4. For a yellow result (2.0 – 4.9), decide based on the rule types. Missing unsubscribe, deceptive links or missing plain text are worth fixing even though the result is not blocked.
  5. Never treat a green score as a delivery guarantee. Domain authentication, sender reputation and recipient engagement still matter.

Common high-point rules

SDK examples

TypeScript
Python
PHP
Rust