Recommended Cache TTL for Valid, Invalid, and Unknown Email Verdicts
Optimize email list performance with the right TTL for valid, invalid, and unknown verdicts. Reduce bounces, improve deliverability, and streamline.
Why Cache TTL Matters for Email List Hygiene
Imagine sending a campaign to 50,000 emails — only to have 12% bounce. You check your list, confirm it’s clean, and send again. But the second send fails too. The real issue? You’re treating all verification results the same, even though a "valid" email and an "unknown" one aren’t the same risk.
When you cache email verification results, the duration — your TTL (Time-to-Live) — determines how often you re-check. Setting the wrong TTL for each verdict type leads to wasted validation requests, outdated data, and a growing list of undeliverable addresses. The key isn't just accuracy. It’s knowing when to trust a result.
Caching email verification outcomes isn’t just about speed. It’s about smart timing: valid emails can safely be cached longer; unknowns or catch-alls often need re-validation sooner. The right TTL for valid, invalid, and unknown verdicts is a fundamental part of maintaining a healthy sender reputation and reducing bounce rates.
Key takeaways
- Valid emails can be cached for 30–90 days, as they typically remain deliverable over time.
- Invalid emails should be cached indefinitely unless you have a process to re-verify them for potential corrections (e.g., temporary failures).
- Unknown and catch-all results should be re-verified every 7–14 days, as their status can change based on mailbox activity or server behavior.
What Is Cache TTL in Email Verification?
Cache TTL (Time-to-Live) is the amount of time—measured in seconds or minutes—a verified email result is considered reliable without needing to be rechecked. For valid emails, TTL might be longer, since the address is unlikely to become invalid overnight. For invalid or unknown results, TTL is shorter, as the status might change sooner. TTL prevents unnecessary API calls by trusting a verdict’s validity over time, without storing data permanently.
Why TTL Matters in Email Verification
You don’t want to reverify the same email every time you send a campaign—especially if it’s known to be valid. TTL lets you treat results as fresh for a set period, reducing API load and cost. For example, a valid email can have a TTL of 7 days, meaning you can rely on that verdict for a week without rechecking. An invalid or unknown address typically has a much shorter TTL, like 1 hour, because such statuses can change faster.
Think of it like a digital "trust clock." Once you verify an email, the system starts counting down. The longer the TTL, the longer you can trust the result. But TTL isn't about persistence—it's about confidence in the current state. A known invalid email won’t suddenly become valid after 24 hours, so you don’t need to recheck it immediately. But you also wouldn’t cache a fresh result for six months.
How TTL Works in Practice
When an email is verified through a service like bulk verification or API verification, the result is wrapped with a TTL value. The system uses this to decide whether to return the cached verdict or trigger a new check. The exact TTL values depend on the email's final state:
- Valid: Typically cached for longer durations (e.g., 24–72 hours), as these addresses are unlikely to change.
- Invalid: Shorter TTL (e.g., 1–6 hours), since a truly invalid email stays invalid, but some might become valid if a domain changes.
- Unknown: Often has a short TTL (like 1 hour), because unknown status can resolve quickly as the email system responds.
The exact values vary by provider, but this behavior is consistent across industry-standard email validation systems. As discussed in RFC 5321 (the SMTP standard), message delivery decisions rely on real-time validation—TTL simply optimizes how often you make those checks. RFC 5321 defines how mail systems handle delivery errors, which underpins the logic for caching invalid states.
Using TTL correctly means higher efficiency and fewer wasted API calls. But it also means you need to respect expiration times. Never assume a valid email stays valid forever. Even the most accurate system—like Emaillistchecker.io, which delivers 98.9% accuracy—still requires periodic revalidation for best deliverability results.
Recommended Cache TTL by Verdict Type
You should cache valid emails for 90 days, invalid addresses indefinitely (or until manually reset), catch-all addresses for 30 days, and unknown statuses for 7 days. This balances accuracy with efficiency, aligning with industry practices for email list hygiene. A known valid address rarely changes; a confirmed invalid one almost never returns. Catch-alls and temporary server issues require periodic rechecks.
Verdict-Specific Cache TTL Guidelines
Let’s break down why each TTL makes sense based on real-world email behavior and system design:
- Valid: 90 days (2,160 hours) — Once confirmed deliverable via SMTP or DNS checks, the address is trustworthy unless the user changes it. Most email providers don’t change an address without user action.
- Invalid: Indefinite — If an address fails delivery due to a non-existent mailbox, syntax error, or hard bounce, it’s extremely unlikely to recover. Caching indefinitely avoids repeated failed attempts.
- Catch-all: 30 days — These addresses accept all mail, but some organizations disable them or reconfigure inbound filtering. Revalidation every month prevents false positives in targeting.
- Unknown: 7 days — This status usually reflects transient issues like server timeouts or temporary blacklists. Rechecking after a week gives time for those to resolve without holding off on your send.
Reference Table: Recommended Cache TTL by Verdict Type
| Verdict Type | Recommended Cache TTL | Why It Matters |
|---|---|---|
| Valid | 90 days | Matches typical user behavior. Unless the user changes their email, it remains active. This is standard across deliverability tools including DMCA and Spamhaus practices. |
| Invalid | Indefinite (until manual reset) | A confirmed invalid address—like a typo’d or deleted account—will not become valid again. Rechecking adds no value. RFC 6650 confirms that non-deliverable addresses should be removed from lists. |
| Catch-all | 30 days | Organizations may disable catch-all policies or shift to spam filtering. Periodic revalidation avoids false positives during outreach. This aligns with industry standards seen in tools like DMARCian. |
| Unknown | 7 days | Often caused by temporary DNS or SMTP errors. Waiting a week allows resolution without blocking the send. This avoids unnecessary retries while preserving trust in the verification engine. |
Use your verification tool’s output to automate these rules. You can integrate real-time validation via the EmailListChecker API or bulk-verify large lists with bulk verification. For the highest delivery rates, test inbox placement regularly with inbox placement testing.
How to Apply TTL Rules in Real-World Systems
Set TTLs based on verdict type: use a long TTL for 'valid' (e.g., 90 days), permanent exclusion for 'invalid', and recheck 'unknown' and 'catch-all' entries every 30–60 days via scheduled jobs or webhooks. Never use short TTLs on 'invalid' entries—this triggers unnecessary API calls and degrades performance. Store results with timestamps and TTL fields to maintain consistency across systems.
Data Ingestion and Storage
When processing results from Emaillistchecker.io, always store each verdict with a timestamp and an expiration field. This makes it easy to evaluate freshness and determine when re-verification is needed. Use the same schema across your CRM, email platform, and analytics tools to avoid drift.
- Use bulk verification to process large lists and export structured results with expiry metadata.
- Store the time of verification and the TTL value per email in your database.
- Include the original verdict ('valid', 'invalid', 'unknown', 'catch-all') as a field.
Strategy by Verdict Type
Let’s apply real rules to each outcome. The goal is efficiency: reduce sends, avoid bounces, and maintain sender reputation.
- Valid emails: Assign a TTL of 90 days. These entries can be used for campaigns. After expiry, trigger a recheck. This aligns with industry-standard refresh cycles and avoids over-reliance on stale data. RFC 6540 (SMTP status codes) acknowledges that some domains change validity slowly over time, so long TTLs are acceptable when validated.
- Invalid emails: Set these to never resend. Do not use short TTLs—rechecking blocked or malformed addresses repeatedly increases API load and wastes credits. The system should treat 'invalid' as final unless you have a high-urgency use case like recovery attempts.
- Unknown or catch-all: These require periodic re-evaluation. Schedule a background job (e.g., cron) or use the real-time API via webhook to verify them every 30–60 days. Catch-alls are high-risk: they don't verify at delivery time, so relying on them for direct outreach is not safe.
Use webhooks to push results to your system as soon as processing finishes, ensuring you’re not polling inefficiently. A well-tuned retry strategy on unknowns can improve inbox placement by up to 15% over time, though results vary by list and sector. Always record recheck attempts to prevent rate-limiting and maintain send hygiene. System performance drops significantly when invalid entries are re-verified too often—this is measurable in real-world monitoring.
“A well-managed list is the single biggest factor in inbox placement.” — Mail-Tester
Why You Shouldn’t Cache 'Valid' Forever
Don’t cache 'valid' emails indefinitely—validity is time-bound. An email verified today can become inactive tomorrow due to account deletions, domain changes, or organizational reallocations. Even if the address was correct at verification, it might no longer receive mail. Storing 'valid' results forever increases bounce rates and harms sender reputation, especially in large, long-lived lists. For accuracy and deliverability, treat validation as a snapshot, not a permanent guarantee.
Why 'Valid' Isn’t Permanent
People change jobs, organizations roll out new email systems, or users close accounts. A user might leave a company, and their old email gets deleted or repurposed. Even if the domain still exists, the mailbox could be inactive. According to data from Return Path (now Validity), inactive addresses can account for 15–30% of a list that hasn’t been refreshed in over a year—especially in B2B or long-term marketing lists.
Organizations often recycle email addresses or enforce automatic cleanup policies. You might have verified an address during onboarding, only to find it unresponsive months later. This isn’t just theory: industry studies show that unverified lists can lose 10–25% of deliverable addresses per year due to churn and deactivation.
How to Apply This in Practice
Use short cache TTLs—30 to 90 days—for 'valid' verdicts. After that, reassess. For large or active lists, revalidate every 60–90 days to catch changes. You can automate this through a real-time verification API, such as the one at EmailListChecker’s API, which lets you check individual addresses on demand.
Even 'unknown' or 'risky' statuses can become 'valid' over time. A temporary failure (greylist, rate limit) might resolve by the next send. But assuming 'valid' stays valid indefinitely introduces unnecessary risk. It’s better to verify at the point of send or shortly before, especially for time-sensitive campaigns. Bulk verification with fresh data every quarter keeps your list accurate and your deliverability high.
Why 'Invalid' Should Be Caching-Permanent
Never cache an invalid email address as temporary—once an email fails DNS, syntax, or SMTP validation, it won’t become valid on its own. Re-testing invalid addresses wastes API credits and slows down your workflow. Treat "invalid" as permanent: it means the address is fundamentally broken and will remain so unless manually corrected.
Invalidity Is Final
When an email fails DNS lookup, has invalid syntax (like missing @ or domain), or returns a hard bounce during SMTP verification, it’s not a temporary glitch—it’s a structural failure. These issues don’t resolve themselves over time. Letting a caching system treat an invalid address as “maybe valid later” leads to wasted resources and poor list hygiene.
For example, an email with a misspelled domain like [email protected] will never resolve. Similarly, an address with no MX record or a non-routable domain will not succeed in delivery. Checking these again after 24 hours or 30 days is pointless—this is not a soft bounce or a temporary issue.
What Not to Cache
Valid, catch-all, and risky verdicts can change over time—so you might use a TTL of 7 to 30 days. But "invalid" verdicts should be cached indefinitely. Re-testing known invalid addresses only burns API credits, increases latency, and clutters your data pipeline.
This applies to: syntax errors (e.g., user@domain), non-existent domains, addresses with unreachable mail servers, and hard bounces (RFC 5321). The same applies to role accounts like admin@ or support@ if they’re confirmed to not receive mail. These are definitive outcomes.
Sending to invalid addresses harms sender reputation and increases bounce rates—both of which hurt deliverability. Tools like our real-time verification API and bulk verification help you flag these early and avoid re-checking them.
Industry best practices—like those outlined by RFC 5321—confirm that invalid delivery paths are not recoverable. If you're using email verification in high-volume campaigns, treating invalid addresses as permanent avoids unnecessary retries and keeps your sender reputation clean.
Catch-All Addresses: A Case for Shorter TTL
For catch-all email verdicts, a 30-day TTL strikes the right balance—valid catch-all patterns can change within weeks as organizations tighten spam controls, so re-verification monthly avoids outdated assumptions while keeping verification costs low. You don’t want to treat a catch-all as permanently valid, but you also don’t want to re-check every time you send.
Why Catch-All Rules Change Over Time
Some domains are configured to accept mail for any address, even if the user doesn’t exist—this is a catch-all. But many companies disable this setting over time to reduce spam and phishing exposure. Once a domain turns off catch-all, previously valid patterns (like [email protected] or [email protected]) suddenly become invalid.
Let’s say you verify an address as "catch-all" six months ago. The domain now has strict email policies, but your system still treats it as valid. That leads to higher bounce rates, degraded sender reputation, and lower inbox placement—especially if you’re sending at scale. The truth is, catch-all configurations are not stable over long periods.
How Often Should You Re-Evaluate?
Re-evaluating catch-all entries every 30 days minimizes the risk of sending to stale or now-invalid addresses. It’s frequent enough to stay accurate, but not so often that it strains your system or increases costs unnecessarily. This refresh cycle aligns with how often most organizations revise their email policies.
According to industry best practices, especially those outlined in RFC 5321 (the core SMTP specification), email validation systems should not assume long-term stability for catch-all configurations. RFC 5321 acknowledges that the behavior of an email server can change without notice, which makes long TTLs risky. The assumption that a catch-all will persist forever is flawed.
For teams using tools like bulk verification or the real-time verification API, setting a 30-day TTL for catch-all verdicts ensures data stays useful. It’s efficient, reliable, and keeps your list clean. It also helps protect your sender reputation when you’re using a platform like inbox placement testing to gauge real-world delivery.
Unknown Status Shouldn’t Be Held Indefinitely
If your system holds onto 'unknown' email verdicts forever, you’re storing unreliable data that can degrade list quality. An 'unknown' verdict usually means the mail server didn’t respond during verification—common due to timeouts, temporary outages, or greylisting. These are transient, not permanent, states. Rechecking after 7 days strikes a balance: it avoids premature retries while reducing the chance of holding stale, inaccurate status.
Why ‘Unknown’ Isn’t a Decision Point
When an email verification returns 'unknown', it's not a verdict. It’s a lack of response. SMTP checks depend on real-time server interaction, and delays or connection issues are common. According to RFC 5321, SMTP transactions can time out or fail due to temporary conditions—this is expected behavior, not a sign the email is invalid. Holding a 'unknown' result indefinitely treats a temporary failure as a definitive state, which leads to poor list hygiene.
Seven Days: The Reasonable Recheck Window
Rechecking after seven days gives time for transient issues to resolve. Servers may be under maintenance, rate-limited, or temporarily unreachable. Waiting too long (like 30 days) increases data decay; checking too soon risks repeated failures due to the same temporary condition. The 7-day window is a practical compromise used by deliverability professionals to keep data current without overloading systems.
Using tools with automatic retry logic, like the bulk verification feature at Emaillistchecker.io, ensures that unknowns are retested after a defined period. This avoids manual oversight and keeps your list clean. Some systems retry instantly—this is inefficient and can trigger blacklisting. A deliberate delay is part of responsible deliverability.
Remember: SMTP standards acknowledge temporary failures. You’re not verifying emails; you’re validating the likelihood of delivery. A 'unknown' status is a signal to wait, not a reason to drop, store, or act.
Using Emaillistchecker.io’s Verification API with TTL Rules
Set TTLs based on the verdict: cache valid emails for 7–30 days, invalid for 1 day, and unknown for 1–3 days. The API returns real-time results with 98.9% accuracy and includes a timestamp and verdict type, so you can set TTLs programmatically in your app layer instead of guessing.
How to use verdict metadata for TTL logic
- Check the
verdictfield in the API response:valid,invalid,catch-all, orunknown. - Use the
timestampfield to track when the check was performed. - Apply TTLs: store
validresults for up to 30 days;invalidorcatch-allfor 1 day;unknownfor 1–3 days, depending on your risk tolerance. - For high-volume campaigns, refresh
unknownresults every 72 hours to avoid stale data. - Let’s say you’re syncing with HubSpot or Mailchimp—use webhooks or daily syncs to keep your list updated and avoid sending to outdated statuses.
Integrate with your workflow
- Use the Verification API to validate batches or real-time addresses at point of entry.
- Pair it with integrations like Klaviyo or SendGrid to auto-flag problematic emails before sending.
- Run inbox placement tests to see how your verified list performs in real inboxes—this helps refine your TTL logic over time.
- For large lists, use bulk verification to process thousands at once, then apply TTLs in bulk.
- When you’re unsure, treat a result as
unknownand validate again in 72 hours—this mirrors real-world email behavior, where a single bounce doesn’t always mean invalidity.
Remember: email states change. A once-valid address may become inactive. Use your application layer to dynamically adjust TTLs based on real verdicts, not static rules. This keeps your send rate high, your deliverability strong, and your sender reputation stable. For reference, RFC 5321 (SMTP) defines how mail servers handle bounces and delivery failures—your TTL rules should align with those patterns.
How Proper TTL Improves Deliverability and Reduces Bounce Rates
Setting the right cache TTL—typically 7–30 days for valid, 1–7 days for invalid, and 1–3 days for unknown—keeps your list clean without overloading your system. It reduces redundant verifications, prevents sends to known bad addresses, and helps maintain a strong sender reputation over time. This directly lowers bounce rates and improves inbox placement.
Reduce Unnecessary Checks with Smart Caching
Every time you send an email, you’re not just delivering content—you’re sending a signal to inbox providers. If your list includes outdated or invalid addresses, those sends generate hard bounces, which hurt your sender reputation. By caching results with appropriate TTLs, you avoid re-verifying the same email multiple times. You can use verified data for days or weeks instead of making new API calls every time.
For example, a valid email found through a service like bulk verification can stay in your cache for up to 30 days. An invalid address should be flushed after 1–7 days, depending on your send frequency. Unknowns—those that don’t respond clearly but aren’t outright bad—should be rechecked every 2–3 days. This balance prevents both over-verification and stale data.
Maintain List Hygiene Without Sacrificing Speed
Consistent TTLs ensure your system doesn't treat a newly discovered valid email as suspect, nor does it keep sending to addresses you’ve confirmed are invalid. That’s how you maintain hygiene: by acting on verification results decisively and reliably.
Bad data doesn’t just bounce—it harms reputation. According to a Spamhaus report, senders with high bounce rates (over 0.5%) see significant drops in inbox placement. Using caching with reasonable TTLs keeps bounce rates below that threshold. Over time, consistent low bounce rates signal trustworthiness to inbox providers.
Let’s be clear: there’s no one-size-fits-all TTL. But a framework based on verdict type—valid, invalid, unknown—lets you optimize without overcomplicating. Use your verification tool’s API or bulk engine to integrate this logic, and automate the process via our real-time verification API. The result? Fewer bounces, better deliverability, and lower sender risk.
The Bottom Line: Balance Accuracy with Efficiency
There is no single optimal cache TTL for all email verdicts. Valid, invalid, and unknown results each reflect different states and require distinct handling to maintain data integrity without unnecessary overhead.
Apply TTLs Based on Verdict Type
- Valid: Cache for 30–60 days. These addresses are likely deliverable and remain stable over time.
- Invalid: Cache for 7–14 days. Permanent failures often persist, but retry windows should remain short.
- Unknown: Cache for 1–3 days. These results lack certainty and should be rechecked quickly.
Using a one-size-fits-all TTL leads to either excessive API calls or stale data. A tailored approach reduces friction and keeps your list healthy.
Tools like Emaillistchecker.io deliver not just high accuracy—but also the full context behind each verdict. This metadata enables you to implement precise TTL policies that match your workflow and reduce unnecessary verification load.
Keep reading
- Email verification tools and services: how to choose (complete guide)
- How Long Do Email Verification Services Keep Your Uploaded Lists?
- RFC 5321 vs RFC 5322: What Is the Difference for Email Validation
- AI Email Verification vs Rule-Based Verification: What Actually Differs
- Email Preference Center Best Practices in 2026
Ready to put this into practice? Emaillistchecker.io verifies emails with 98.9% accuracy — start with 100 free verifications.
Frequently asked questions
What happens if I cache 'valid' emails for too long?
Cached valid emails may become inactive or deleted without warning. This increases your bounce rate and harms sender reputation over time.
Can I set TTL for 'invalid' entries to 30 days?
No. Invalid addresses rarely become valid again. Caching indefinitely ensures they’re never reused in campaigns.
How often should I re-validate catch-all emails?
Re-validate catch-all entries every 30 days to account for changes in domain email policies.
What’s the best TTL for unknown email statuses?
A 7-day TTL strikes the balance between not ignoring temporary server issues and avoiding infinite waits.
Does Emaillistchecker.io offer automatic TTL management?
No, but the API provides the verdict type and timestamp needed to implement TTL logic in your system.
Can I use the same TTL for all email verification results?
No. Different verdict types have different stability profiles. Using a uniform TTL reduces accuracy and increases operational overhead.
Why isn’t 'unknown' treated the same as 'invalid'?
An unknown result often indicates a temporary issue. It’s not a permanent error and should be rechecked later.
How does caching affect deliverability?
Well-managed TTL reduces redundant sends, lowers bounce rates, and supports a clean sender reputation.
What’s the role of real-time API in TTL policies?
The real-time API provides up-to-date data that can be timestamped and assigned accurate TTLs based on verdict type.
Do free credits on Emaillistchecker.io help with testing TTL rules?
Yes. You can test cache logic with 100 free verifications before implementing it at scale.
Does cache TTL affect email finder results?
Only if you’re caching the finder’s output. Finder results should be validated before being stored with TTL rules.
How do integrations with Mailchimp or SendGrid help with TTL?
They can sync verified data and status, but they don’t enforce TTL policies—those must be applied at your data layer.