Example

Email validation API example with production decision logic.

See a validation request, response interpretation, suppression policy, retry behavior, and webhook path for valid, invalid, risky, catch-all, and unknown results.

Example request

The simplest validation call accepts one email address and returns status, sub_status, confidence, provider evidence, and individual signals.

  • POST /api/v1/validate with Authorization: Bearer wii_live_...
  • Use batch or bulk endpoints when validating lists.
  • Treat unknown as inconclusive rather than safe.

Example policy

A practical product policy usually suppresses invalid and disposable addresses, segments catch-all and role addresses, and retries unknown results.

ResultPolicyReason
validAcceptEvidence suggests the mailbox is reachable.
invalidSuppressHard failures damage reputation and waste sends.
riskySegmentRisk depends on campaign and recipient context.
unknownRetry or send conservativelyThe provider did not produce reliable evidence.

Production pattern

Turn the example into an observable integration

Keep the request, response, policy decision, and asynchronous follow-up connected. Store identifiers and reason codes so support and engineering can explain why an address was suppressed or why a release check failed.

StageApplication actionEvidence to retain
RequestSend an authenticated API call with bounded input.request id and workflow owner
ResponseParse status and reason fields without coercing uncertainty.status, sub-status, confidence, reasons
DecisionApply a versioned suppression or review policy.policy version and decision
Async follow-upPoll or process a verified webhook when work continues.job id, event id, final state

Failure handling

Retry transport failures without changing product meaning

Separate temporary delivery problems from validation evidence. Retry bounded transport failures, preserve uncertain outcomes, and make asynchronous processing safe to repeat without turning missing evidence into a confident result.

  • Retry rate limits and temporary infrastructure failures with bounded backoff.
  • Do not convert unknown or pending evidence into valid.
  • Verify webhook signatures before processing a completion event.
  • Make repeated events idempotent so one job cannot trigger duplicate customer actions.

How to use this example

Read examples as implementation patterns

Examples are not decorative screenshots. They should show the request, evidence, interpretation, decision, and next internal link. Use them when you need to explain a result to a teammate or convert a diagnostic finding into a policy.

Decision policy

Examples should end in an action

A good example does not stop at valid, risky, pass, or fail. It says whether to accept, suppress, segment, retry, fix DNS, change a template, open an owner task, or retest after propagation.

Run a real-message test

Use /test when the question is whether the exact production email is technically ready.

Validate recipients

Use /validator or /validator/bulk before imports, outbound, newsletters, and reactivation.

Automate checks

Use /docs/api when deliverability QA belongs in CI, release tooling, or an internal workflow.

FAQ

Can a sandbox prove production deliverability?

No. A sandbox verifies message generation, source, rendering, and configured checks. Run a real-message test through the production sender path before relying on the result.

How should webhook consumers handle duplicate deliveries?

Verify the signature, store a stable delivery or event identifier, and make processing idempotent before returning success.

Can I reuse these examples in production?

Use the request and policy patterns, but replace sample keys, domains, tokens, and thresholds with your own account and risk policy.