Should I verify in real-time at signup or batch later?
Real-time and batch are not mutually exclusive. Most mature Valid Email Checker setups use both, at different stages of the subscriber lifecycle. The question is really which one to start with given your acquisition pattern and budget.
When real-time at signup wins
Verify at the form when:
- Your signup flow is the primary acquisition channel and a clean list at entry matters more than maximum signup velocity.
- You're already losing trust signals with your ESP from previous bounces. Stopping the bleeding at the form gives the next batch of subscribers a clean reputation start.
- Your monthly signup volume is below 100,000 — the cost is predictable and small.
- Your form is publicly accessible (no SSO gating), which means bots and bad-actor submissions show up regularly.
See how to integrate VEC into a signup form for the implementation details.
When batch later wins
Skip real-time and lean on periodic batch runs when:
- Signups are gated by SSO or a paid checkout — the email is already verified by an external trust signal.
- Your acquisition volume is enormous (millions per month) and the per-signup verification cost would dominate the budget.
- Conversion rate sensitivity is extreme. Every extra millisecond on the form costs measurable revenue. Verify after acquisition instead.
- Your team has not yet invested in custom signup-form work and you want to start cleaning the list today.
The hybrid setup most teams converge on
After running both for a while, most VEC users settle into a pattern:
- Real-time at signup for the four hard-fail statuses only:
invalid,disabled,disposable,spamtrap. Block submit on those. Accept everything else. - Batch refresh every 30 to 60 days on the active subscriber base via the bulk upload page or scheduled API calls. Catches addresses that went bad after signup.
- Pre-campaign verification for any list over 30 days old — see the best workflow for verifying a list before a campaign.
What changes between the two approaches
Real-time catches the bad address at the moment of intent. The user is right there, ready to retype, and a corrected email is a saved subscriber. Batch catches the same address weeks or months later when there's no realistic recovery path — the only option is to suppress.
Cost-wise the math is similar. Real-time charges one credit per signup. Batch charges one credit per stored subscriber on each refresh. Whichever produces fewer charges over your subscriber lifetime depends on your churn rate and refresh cadence — it varies more than you'd expect.
Related questions
Still stuck? Email support
