Email Verification API That Normalizes Soft Bounce Statuses
Fix inconsistent soft bounce reporting between Mailgun and SES with a reliable email verification API.
Why Do Mailgun and SES Report Soft Bounces Differently?
You’re running email campaigns through both Mailgun and Amazon SES. You’re seeing “soft bounce” rates that don’t match. One platform says 5%, the other says 0.8%. You’re confident your list is clean. But the numbers don’t lie — or do they?
The problem isn’t bad data. It’s how each platform defines and reports soft bounces. Mailgun treats temporary delivery failures — full inboxes, rate limiting, temporary filters — as soft bounces with 5xx SMTP codes. SES, by default, reports those same events as “Transient” and rarely flags them as bounces at all. This creates a visibility gap.
When you’re using an email verification API that normalizes soft bounce statuses between Mailgun and SES, you’re not just reconciling numbers — you’re aligning your deliverability metrics across platforms. That’s critical for accurate performance tracking, list hygiene, and sender reputation management.
Key takeaways
- Mailgun classifies temporary delivery failures (like full inboxes) as soft bounces with 5xx SMTP codes; SES often labels them as 'Transient' without marking them as bounces.
- Without normalization, inconsistent bounce reporting hides the true health of your email list and distorts deliverability trend analysis across Mailgun and SES.
- An email verification API that normalizes soft bounce statuses ensures consistent, actionable insights regardless of the email service provider used.
What Happens When You Don’t Normalize Soft Bounce Statuses?
Without normalizing soft bounce statuses between Mailgun and Amazon SES, your deliverability team can’t distinguish between temporary delivery issues and legitimate failures. This leads to incorrect conclusions about list health, sender reputation, and inbox placement — often blaming your domain when the real problem is a high volume of transient errors that should be treated as warnings, not red flags.
You Misread Your List Quality
Mailgun reports soft bounces as 4xx codes, while SES often labels the same outcomes as TemporaryFailure. If you don’t unify these signals, a single campaign might show a 2% soft bounce rate, but without normalization, you can’t tell whether it’s 1% genuine delivery delays or 1% actual invalid addresses. This mislabels bad data as clean, making your list appear healthy when it’s not.
Let’s say your list has 5,000 emails, 10% bounce with a 451 (Mailgun) or TemporaryFailure (SES). Without normalization, those 500 soft bounces may get treated as hard failures. You’ll clean the list as if it’s full of dead addresses, but in reality, the recipients just had full inboxes or throttling policies. You’ve made a mistake in the data pipeline, not the list.
You Waste Resources on the Wrong Fixes
Because soft bounces aren’t all equal, failing to normalize them causes misattribution. You might spend time investigating DNS records or sender reputation when the actual issue is transient. The same API response—like a full mailbox or throttling from a provider—should be tracked differently than a malformed address or blocked domain.
For example, if you see repeated 451 responses in Mailgun, but no matching TemporaryFailure patterns in SES logs, you’re not tracking the same failure type across services. This breaks consistency in your monitoring and can even trigger unnecessary alerts or domain flagging. You’re not measuring failure types, you’re measuring logs.
The result? Campaigns appear successful in delivery stats, but messages are delayed or silently rejected — a red flag for inbox placement. You don’t realize your high soft bounce rate is masking delivery problems, not fixing them.
A real-time verification API helps catch this early, by testing email addresses before sending, so you know which ones are technically valid, which are catch-alls, and which are outright invalid. Tools like real-time email verification can catch soft bounce risks before they trigger delays, improving sender reputation and reducing false positives.
How Can an Email Verification API Solve This?
You can resolve inconsistent soft bounce handling between Mailgun and Amazon SES by using a real-time email verification API that checks email validity at the source—before sending. This API returns clear, standardized statuses like 'valid', 'invalid', 'catch-all', or 'risky', independent of each platform's internal logic. By catching issues like full inboxes or temporary delivery failures upfront, you prevent soft bounces entirely, improve deliverability, and maintain sender reputation.
Standardizing Statuses Across Platforms
Mailgun and Amazon SES report soft bounces differently—sometimes based on timing, sometimes on server behavior. One system might label a full inbox as a soft bounce; another might not. An email verification API insulates you from this inconsistency by giving you a single, reliable status for each address.
Instead of waiting to see if an email fails after being sent, you validate it in real time using SMTP checks, MX lookups, and syntax rules. The API returns structured data—no ambiguity. This includes whether a mailbox is temporarily full, which is a common soft bounce trigger.
Preventing Bounces At the Source
Let’s say an address is currently full. Sending to it will trigger a soft bounce. But if your API checks it first and flags it as 'risky' or 'invalid', you can remove it from the list before delivery. This avoids damaging your sender reputation, which can happen when you repeatedly send to addresses that won’t accept messages.
Tools like real-time email verification APIs don’t just check syntax—they simulate a real send attempt using protocols defined in RFC 5321 and RFC 5322, the foundation of email delivery. They test the actual server response, including temporary failures.
When you integrate this API, you’re not just cleaning your list—you’re building a consistent, reliable validation layer that works regardless of which email service you’re using. That means fewer surprises, lower bounce rates, and better inbox placement over time.
For bulk list cleaning, tools like bulk email list cleaning ensure your database stays healthy across campaigns. With 98.9% accuracy, you’re not guessing—just fixing what the system confirms is broken.
The Real Difference Between Soft Bounces and Risky Addresses
Soft bounces happen when a valid email address temporarily can't receive mail—like when the inbox is full or the server is down. Risky addresses aren't invalid, but they’re prone to repeated soft bounces, often because they’re role accounts, disposable, or inactive. An effective email verification API catches these before they hurt deliverability, even when they pass basic syntax checks.
Soft Bounces: Temporary, Not Permanent
When a message bounces softly, it means the server accepted the message but couldn’t deliver it right now. The address might be valid, but issues like a full inbox, temporary server overload, or message size limits are blocking delivery. These are not errors you can fix with a single resend—most email services retry automatically. But if soft bounces recur, they signal deeper issues.
According to RFC 6522, soft bounces are intended to be transient, not persistent. Frequent soft bounces from the same address, however, can trigger spam filters and hurt your sender reputation over time. That’s why treating them as a warning sign—rather than a one-off—is essential.
Risky Addresses: The Hidden Threats
A risky address isn’t technically wrong. It might be [email protected], [email protected], or even a throwaway address from a service like Mailinator. These often pass syntax checks and may not bounce at all. But they’re low-quality: unresponsive, frequently unused, or flagged by receivers as high-risk.
Role accounts (like info@, support@) are common in lists and rarely engaged. Research from Return Path shows that role-based addresses have significantly lower engagement and deliverability rates than personal ones. Disposable email domains (like tempmail.org) are even more problematic—they’re often used for signups that never lead to retention.
Verification APIs with advanced logic detect these nuances. They don’t just check “is this address valid?” They analyze patterns: how often does this address soft bounce? Is it role-based? Does it come from a known disposable domain? An API that normalizes soft bounce statuses between Mailgun and SES can help you flag these risks early—before you send to them, before they count against your sender reputation.
How Email List Validation Normalizes Soft Bounce Statuses Across Mailgun and SES
You send emails through both Mailgun and Amazon SES, but their soft bounce statuses don’t match—Mailgun says "transient," SES calls it "soft." That breaks your automation. Our API checks each email at the SMTP level, maps all transient errors (like full inbox, rate limiting, or throttling) to a single standardized "risky" status, so you stop treating the same issue differently across platforms. No more false positives or confusion in your delivery pipeline.
How the normalization works
- Full SMTP-level validation — We don’t rely on surface-level checks. For every email, we run a full connection to the target domain’s SMTP server, verifying DNS, MX records, and actual server responses in real time.
- Correlate error sources to root causes — We interpret the raw SMTP response codes (like 450, 451, 452, 421) and cross-reference them with known behaviors. A 451 means temporary failure due to policy or resource constraints—common in rate-limited or full inboxes.
- Apply universal tagging — Whether Mailgun labels it "transient" or SES says "soft bounce," we map all transient, recoverable errors to a unified "risky" status. You get the same signal no matter the sending platform.
- Preserve deliverability insights — Unlike basic syntax checks, we retain context: if an address consistently fails at SMTP level, it’s not just "risky"—it’s likely inactive. You can act on real patterns, not platform noise.
- Integrate seamlessly — Use our real-time verification API to cleanse and standardize your list before sending, or validate existing bounces retroactively.
Why this matters for your inbox placement
When different ESPs report the same issue differently, your automation can’t tell if an address is truly broken or just throttled. That leads to wasted sends, inflated bounce rates, and poor sender reputation. Standardizing "risky" status helps you apply consistent rules—skip re-sending to a risk-flagged address for 72 hours, for example, instead of guessing how each provider defines "transient."
This approach aligns with industry practices for deliverability hygiene. RFC 5321 and RFC 5322 define the SMTP protocol's error codes and behavior; we use those as the foundation. Tools like Spamhaus and MxToolbox use similar logic to analyze email delivery paths—our API follows the same standards, just at scale.
Consistent error mapping means you’re not fighting your email infrastructure — you’re working with it.
Using Email List Validation to Build a Clean, Consistent List
You can eliminate soft bounce inconsistencies between Mailgun and SES by validating your list in advance. Run every email through a real-time verification API before sending. Filter out addresses flagged as invalid, catch-all, or risky—these are sources of repeated soft bounces. Only send to those marked as valid. This ensures your send volume reflects truly deliverable recipients, reducing strain on both platforms and improving overall inbox placement.
How to align your list with Mailgun and SES expectations
- Use the real-time email verification API to process your entire list before each campaign, not after.
- Remove any address labeled as invalid—these fail DNS or SMTP checks and will always bounce.
- Block catch-all domains: they accept all incoming mail, which triggers soft bounces due to lack of delivery confirmation.
- Exclude risky addresses—disposable, role-based, or high-abuse domains that harm sender reputation.
- Only include addresses marked as valid. These have passed syntax, domain, and inbox presence checks.
Why consistency matters across platforms
Mailgun and Amazon SES enforce sender reputation differently, but both penalize patterns tied to invalid or unverifiable addresses. A soft bounce from a real mailbox might be temporary, but repeated soft bounces from a catch-all domain or role account (like [email protected]) signal poor list hygiene to either provider. Spamhaus tracks abuse patterns tied to high-volume sends to malformed or non-deliverable addresses—consistent soft bounce rates from those sources can lead to rate limiting or blocking.
By proactively filtering using a reliable verification service, you’re not just reducing bounces. You’re preventing your IP and domain reputation from being tainted by poor data. This is especially critical when sending to users you don’t directly know—such as leads or prospects in outbound campaigns.
Use tools like bulk email list cleaning to process large datasets, and ensure any integrations (e.g., with Klaviyo or HubSpot) are set to validate before syncing. This keeps your entire workflow aligned with industry best practices. Clean data doesn’t just help deliverability—it helps you understand who actually engages.
Integrating the Verification API with Mailgun and SES Workflows
You can normalize soft bounce statuses between Mailgun and SES by validating emails in real time before sending, filtering out invalid or risky addresses, and using the API to classify and act on results—only sending to valid recipients while logging risky or catch-all addresses for suppression. This reduces bounces, improves sender reputation, and keeps deliverability high across both platforms.
- Call the API before each send operation—integrate it via webhook or batch request directly into your Mailgun or SES workflow. This ensures every email is checked for validity, syntax, and deliverability risks before being queued for delivery. Real-time validation prevents sending to addresses that would otherwise cause soft bounces or be flagged by recipient servers.
- Filter your list based on the results—only proceed with sending to emails marked as
valid. Reject or delay sending toinvalid,catch-all, orriskyaddresses. This step eliminates low-quality data before it reaches any mailbox, directly improving deliverability rates. - Separate and log risky or catch-all results—flag these addresses for auditing, suppression, or re-engagement campaigns. Addresses classified as
catch-allmay accept any email but rarely engage, whileriskyaddresses may have temporary DNS issues or be associated with abuse patterns. Keeping them isolated prevents future misclassification. - Use the API’s consistent verdicts across Mailgun and SES—since both platforms report soft bounces differently (e.g., Mailgun may label a temporary failure as a hard bounce if not handled properly), a standardized validation layer ensures you’re not treating one platform’s soft bounce as a permanent failure. This normalization prevents over-suspending legitimate users.
- Monitor and refine over time—review logs of risky and catch-all addresses monthly. Over time, this data helps refine suppression lists and identify patterns—like domains with rising risk or user segments prone to invalid contacts—leading to cleaner, more effective email campaigns.
Why real-time validation matters
According to RFC 5321 and industry best practices, sending to invalid or compromised addresses harms your sender reputation. Platforms like Mailgun and SES monitor bounce and engagement rates closely. High bounce rates—even soft ones—can trigger throttling or temporary blocking. Validating addresses before sending ensures your IP and domain remain trusted.
Where to start
Set up the API with your existing Mailgun or SES workflow using the real-time verification endpoint. It integrates directly with your app or automation stack. For teams managing large lists, bulk verification is a fast way to clean datasets before integrating with your senders. Learn more about how the real-time email verification API works, or explore the official integrations with Mailgun and SES to see how it fits into your stack.
Why Manual Bounce Handling Fails at Scale
You can't scale email deliverability by hand. When Mailgun returns HTTP 5xx errors and Amazon SES sends transient failure codes, treating them the same way is impossible without automation. Different team members interpret the same bounce codes inconsistently—what one flags as a soft bounce, another might dismiss. That drift erodes reliability, increases technical debt, and hurts inbox placement over time.
Code Interpretation Differs Without Standards
Mailgun’s 5xx HTTP status codes indicate server-side issues, which are often transient. SES, meanwhile, uses specific error codes like 550 or 554 to mark soft bounces, but only when the failure is temporary. Manually reviewing these across platforms leads to mismatched logic: one engineer might treat a 550 as a soft failure, another may treat it as permanent. This inconsistency means your suppression logic is reactive, not consistent.
Without a normalized system, you end up with divergent cleaning rules. One team member may remove an email after a single 5xx response; another might ignore it until the third failure. The result? High false-positive rates, lost revenue from recoverable addresses, and increasing spam complaints. This drift accumulates across campaigns and platforms, directly weakening sender reputation.
Normalization Is Non-Negotiable at Scale
Automated normalization is the only way to apply consistent rules across multiple ESPs. By translating all soft bounce signals—whether from Mailgun’s HTTP 5xx, SES’s 554 code, or another provider—into a single standard verdict, you eliminate interpretation gaps. This doesn't just reduce manual work; it ensures every email list is assessed the same way, regardless of the sending platform.
Industry standards like RFC 6522 (SMTP Error Codes) provide the foundation for this logic, but implementation is rarely consistent in practice. When your team isn’t interpreting these codes the same, you’re not fixing problems—you’re introducing new ones.
That’s where a real-time email verification API helps. It doesn’t just validate addresses—it normalizes the status you receive, so your system can act consistently whether you're sending via Mailgun, SES, or another provider. Use real-time verification to pre-screen lists and reduce bounces before they even happen, turning a manual cleanup chore into an automated, repeatable control.
Key Verdicts from Email List Validation: What Each Status Means
You can’t trust every email address just because it looks right. Our verification API detects real delivery issues—like soft bounces in Mailgun or SES—by classifying addresses into precise categories: Valid (delivers), Invalid (syntax or domain issues), Catch-all (spam magnet), or Risky (high bounce or engagement risk). This clarity stops wasted sends and protects sender reputation across providers.
How Each Verdict Impacts Deliverability
Understanding these statuses isn’t just about filtering junk—it’s about aligning your email strategy with actual inbox placement realities. Misclassified emails lead to soft bounces, delayed delivery, or sudden blocklists, especially when scaling across platforms like Mailgun and Amazon SES.
| Status | What It Means | Impact on Sends | Recommended Action |
|---|---|---|---|
| Valid | Address is correctly formatted, domain exists, and accepts mail. Confirmed via SMTP and MX checks. | High likelihood of inbox delivery. No immediate risk. | Proceed with campaign send. Monitor engagement. |
| Invalid | Domain doesn’t exist, syntax is broken, or the address is unrouteable. | Hard bounce expected. Risk of sender reputation damage if sent. | Remove immediately. Do not retry. |
| Catch-all | Domain accepts all incoming mail, regardless of address validity. Common in disposable domains or misconfigured mail servers. | Precisely the opposite of what you want. High spam likelihood, poor engagement. | Exclude from campaigns. These often trigger spam filters. |
| Risky | Address is technically valid but likely to soft bounce, be marked as spam, or fail engagement metrics. | High soft bounce risk. Common in role accounts, temporary aliases, or low-engagement users. | Send with caution. Use warm-up sequences or segment for lower-volume campaigns. |
For example, a “Risky” status often applies to addresses like [email protected] in a high-volume list, where the email may deliver—but inbox placement is unreliable. You can’t rely on these for engagement, even if they don’t hard bounce. It’s a key difference between Mailgun’s and SES’s soft bounce handling: both see delivery delays, but neither warns you preemptively unless you’re detecting risk patterns in advance.
Real-time APIs that normalize these statuses across providers—like ours—help you act early. You avoid sending to catch-alls or risky addresses that degrade performance, even if they’re “valid” on paper. This is what drives consistent inbox placement. Learn how it works: verify emails in real time with our API.
These distinctions are rooted in SMTP protocols and common industry practices. The SMTP standard outlines how mail servers respond to deliverability attempts, but it doesn’t tell you whether an address is risky—only whether delivery was accepted or rejected. That’s why verification goes beyond syntax and into behavioral detection.
How 98.9% Accuracy Prevents Over-Filtering and Maintains Send Volume
Our email verification API maintains a 98.9% accuracy rate by validating addresses through real-time SMTP and DNS checks across millions of inboxes. This means you won’t lose valid addresses due to false positives—no more over-blocking legitimate recipients just because they had a temporary server hiccup. You keep your send volume stable because active accounts aren’t flagged as risky due to short-term failures like soft bounces.
Real-World Validation, Not Guesswork
You’re not relying on heuristics or cached data. Every verification runs a live connection to the recipient’s mail server, checking for MX records, SMTP availability, and actual inbox responsiveness. This is how we avoid the common trap of treating temporary delivery failures—like a full inbox or a rate-limited SMTP response—as permanent invalidations. As the RFC 5321 specification details, soft bounces are not errors, and treating them as such leads to unnecessary list churn.
Some tools mark an address as "risky" after one failed delivery, even if the inbox is operational. Our system recognizes patterns: short-term delays are normal and expected. We only flag addresses that show persistent issues—like repeated 5xx server responses or non-existent domains. This prevents over-filtering and preserves your ability to reach real users, even if they’ve had a brief delivery delay.
Why Accuracy Matters for Deliverability and Volume
Over-filtering doesn’t just reduce volume—it harms sender reputation. Sending to a list with too many false negatives signals poor list hygiene. ISPs like Google and Microsoft monitor sending patterns, and consistent over-filtering can trigger caution flags. Our approach aligns with industry best practices: validate before sending, and trust data backed by real SMTP responses.
For instance, Mailgun and Amazon SES often report the same soft bounce (e.g., 4xx error for 451 or 452) but treat it differently downstream. Our API normalizes these statuses by analyzing the context—not just the code. If the domain exists, the MX record is valid, and the inbox accepts mail under normal load, we treat it as valid—even if a single send failed due to a transient condition.
That consistency lets you send at scale without fear of harming deliverability. You’re not sacrificing volume for safety; you’re ensuring safety without losing engagement. If you're cleaning large lists, test it yourself with our bulk email list cleaning tool. Or integrate our real-time API for seamless, accurate validation at the point of capture.
For a deeper look at how modern verification handles SMTP nuances, refer to the IETF’s SMTP specification. Real verification is about connection testing, not guesswork. And that’s why accuracy isn’t just a number—it’s a technical necessity.
Final Step: Maintain Your List Over Time with Continuous Verification
Email lists degrade over time. Users change addresses, accounts expire, and domains shut down. Even a freshly cleaned list will lose accuracy without ongoing maintenance.
Schedule periodic bulk verification to normalize soft bounce statuses between Mailgun and SES. This ensures consistent inbox placement and keeps your sender reputation intact across platforms.
Integrate the email verification API with your CRM or marketing platform to validate new contacts in real time. Prevent bad data from entering your system before it impacts deliverability.
Keep reading
- Bounce management: hard bounces, soft bounces and bounce rate (complete guide)
- Prevent 550 5.2.2 Over Quota with Email Validation
- Email Verification Platform Rules for 5.1.0 Hard Bounce Classification
- How to Interpret 552 5.2.2 Error in SendinBlue Logs
- How to Translate Yahoo Mail Bounce Classifications Into Global Deliverability Guidelines
Ready to put this into practice? Email List Validation verifies emails with 98.9% accuracy — start with 100 free verifications.
Frequently asked questions
Can an email verification API really fix inconsistent soft bounce reporting?
Yes. By validating addresses before sending and assigning consistent statuses like 'valid' or 'risky', it removes platform-specific logic and standardizes how you assess deliverability risk.
Does Email List Validation work with both Mailgun and SES?
Yes. The API integrates with both platforms and normalizes the data they return, ensuring consistent list hygiene outcomes regardless of the sending engine.
What’s the difference between a soft bounce and a risky address?
A soft bounce is a temporary delivery failure. A risky address is one that is valid but has a history of failures or is associated with low engagement — it’s flagged before it causes issues.
How does normalization help improve sender reputation?
By removing risky and invalid addresses before sending, you reduce bounce and complaint rates — both of which hurt sender reputation on platforms like SES and Mailgun.
Do you need to verify every email before sending?
Not necessarily. Use the API to clean your list before campaigns or integrate it in real time for new sign-ups. Regular bulk checks also prevent drift.
Can I use Email List Validation with other email tools?
Yes. It integrates with Mailchimp, HubSpot, Klaviyo, and SendGrid, and supports API-based workflows across any sending system.
How many verifications come with a free trial?
100 free verifications are available to start. Purchased credits never expire, so you can use them as needed.
Does Email List Validation detect disposable emails?
Yes, it identifies disposable domains and role accounts by cross-referencing known patterns and behaviors during validation.
Is the API fast enough for real-time validation?
Yes. The real-time verification API responds in milliseconds, making it suitable for onboarding, signup, and checkout workflows.
How does the AI assistant help with email list validation?
It helps interpret complex validation results, suggests next steps for list cleaning, and answers questions about deliverability risk without requiring expert knowledge.
What’s the accuracy rate of Email List Validation?
We achieve 98.9% accuracy based on real SMTP and DNS validation across verified datasets.
Does Email List Validation support bulk verification?
Yes. You can process thousands of email addresses in bulk, with full reporting, filtering, and export options.