Skip to main content
Every email analysis returns deliverability signals that help you decide whether it is safe to send to an address. The webhook payload includes two fields for this purpose: send_recommendation and deliverability.risk_score. This guide explains what each field means and how to use them.

Two Fields, One Decision

The deliverability section of the webhook payload contains:
{
  "deliverability": {
    "risk_score": -1,
    "send_recommendation": "send"
  }
}
  • send_recommendation is the primary decisioning field. It combines deliverability with other risk factors (such as disposable or impersonation domains) into a single, actionable recommendation.
  • deliverability.risk_score is a narrower signal based on SMTP verification. Use it when you need more granular control over your send logic.
For most use cases, send_recommendation is all you need.

send_recommendation

ValueMeaningWhen it triggers
sendSafe to sendThe email is confirmed deliverable or has no adverse deliverability signal
send_with_cautionSome bounce riskThe email has uncertain deliverability (unknown SMTP status, mailbox full, or risky status), or the overall risk_score is very high
do_not_sendDo not sendThe email is confirmed invalid, is a no-reply address, or the domain is disposable, invalid, or an impersonation
send_recommendation accounts for more than just SMTP results. An email on a disposable domain will return do_not_send even if the mailbox technically exists, because disposable addresses are short-lived and poor targets for outreach.

deliverability.risk_score

The deliverability.risk_score ranges from -1 (deliverable) to 1 (not deliverable). The table below shows roughly where scores land and what they indicate:
Score rangeInterpretation
Around -1Confirmed deliverable — SMTP verification succeeded
Around 0Unable to verify — the mail server did not provide a definitive answer (e.g., catch-all domains, rate-limited servers)
Around 0.5Uncertain — SMTP status is unknown or the mailbox is full
Around 0.75Likely undeliverable — SMTP verification returned a risky status
Around 1Not deliverable — the email is confirmed invalid or is a no-reply address
A score around 0 means Verisoul was unable to verify the address — it does not mean the email is unsafe. Many emails that cannot be SMTP-verified (for example, those on catch-all domains) deliver fine in practice.

Which Should I Use?

Use send_recommendation as your only filter:
  • send — safe to email
  • send_with_caution — you can still send, but expect some bounce risk
  • do_not_send — skip this address
This is the recommended approach for most customers.
Start with send_recommendation, then layer on deliverability.risk_score for tighter control:
  1. Exclude anything with send_recommendation = "do_not_send"
  2. Additionally exclude emails where deliverability.risk_score > 0 to limit sending to addresses that are either confirmed deliverable or simply unverifiable
Keep in mind that filtering on risk_score > 0 will exclude emails where SMTP verification was inconclusive. Many of those addresses are perfectly deliverable — this approach trades some reach for lower bounce rates.
Use the top-level decision and risk_score fields instead. Deliverability is already factored into the overall risk assessment, so you do not need to check deliverability separately.

How Deliverability Affects the Overall Score

The deliverability.risk_score is one of several sub-scores that feed into the overall risk_score returned in the webhook. An undeliverable email will push the overall score toward risk, while a confirmed-deliverable email contributes a trust signal. The overall risk_score also incorporates breach history, email age, domain reputation, username patterns, and (when enabled) identity intelligence. See the Webhook Payload Reference for the full list of fields.