Connect BounceZero to your WordPress site and validate email addresses before they enter your database. Works with WPForms, Gravity Forms, Contact Form 7, WooCommerce, and custom code.
Without verification, your WordPress user table fills with junk - and your marketing list becomes useless.
Bots auto-fill sign-up forms with throwaway emails. Verification stops them at the door before they consume a license seat or free trial.
Users sign up with Guerrilla Mail, Mailinator, or 10MinuteMail to bypass paywalls. These addresses stop working within hours.
If you email your WordPress users for newsletters or password resets, hard bounces above 2% get you blocked by Gmail and Yahoo.
Invalid emails mean customers never receive order confirmations, tracking info, or abandoned cart recovery emails - direct revenue loss.
Spam traps are real email addresses that look valid but will get you blacklisted the moment you mail them. Verification detects them.
Mailchimp, Klaviyo, and ActiveCampaign bill by subscriber count. A clean list = lower monthly bill.
Add this to your theme's functions.php or a custom plugin. Validates every registration before it hits the database.
add_filter( 'registration_errors', function( $errors, $sanitized_user_login, $user_email ) {
$api_key = 'YOUR_BOUNCEZERO_API_KEY';
$response = wp_remote_post( 'https://api.bouncezero.io/api/v1/verify', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key,
],
'body' => json_encode( [ 'email' => $user_email ] ),
'timeout' => 5,
] );
if ( ! is_wp_error( $response ) ) {
$data = json_decode( wp_remote_retrieve_body( $response ), true );
if ( isset( $data['classification'] ) && $data['classification'] === 'undeliverable' ) {
$errors->add( 'invalid_email', __( 'This email address does not appear to be valid. Please use a different email.' ) );
}
}
return $errors;
}, 10, 3 );
For the best UX, validate while the user is still filling in the form - not after they click submit. Add this JS to your theme:
// In functions.php - enqueue the script
add_action('wp_enqueue_scripts', function() {
wp_add_inline_script('jquery-core', "
jQuery('#user_email, #reg_email').on('blur', function() {
var email = jQuery(this).val();
if (!email) return;
jQuery.post('" . admin_url('admin-ajax.php') . "', {
action: 'bz_verify_email',
email: email,
nonce: '" . wp_create_nonce('bz_verify') . "'
}, function(res) {
if (res.classification === 'undeliverable') {
jQuery('#bz-email-error').text('This email address is invalid.').show();
}
});
});
");
});
// AJAX handler
add_action('wp_ajax_nopriv_bz_verify_email', function() {
check_ajax_referer('bz_verify', 'nonce');
$email = sanitize_email( $_POST['email'] ?? '' );
$api_key = 'YOUR_BOUNCEZERO_API_KEY';
$resp = wp_remote_post('https://api.bouncezero.io/api/v1/verify', [
'headers' => ['Content-Type'=>'application/json','Authorization'=>'Bearer '.$api_key],
'body' => json_encode(['email'=>$email]),
'timeout' => 5,
]);
wp_send_json(json_decode(wp_remote_retrieve_body($resp), true));
});
Both plugins expose a server-side validation hook. Use wpforms_process_validate_email (WPForms) or gform_field_validation (Gravity Forms) and return an error when BounceZero returns undeliverable.
Hook into woocommerce_checkout_process to verify the billing email before an order is placed. Customers who provide invalid addresses can never receive order confirmations - block them at checkout.
65+ signals checked per address in a 5-stage pipeline - in under 300ms.
Syntax check
RFC 5321 compliance, length limits, invalid characters
MX record lookup
Does the domain have active mail servers?
SMTP handshake
Does the specific mailbox exist? (No email sent)
Catch-all detection
Does the domain accept all addresses regardless?
Disposable email
Is this a throwaway domain (Mailinator, 10MinuteMail)?
Spam trap detection
Is this address known to be a spam trap?
Role address
Is it info@, admin@, noreply@, or similar shared inbox?
ML confidence score
0-100 score for ambiguous edge cases
New to verification? Start with the complete email verification guide.
The fastest way is BounceZero's REST API: add a server-side hook on registration_errors that calls /api/v1/verify with the submitted address. If the result is undeliverable or disposable, reject the registration before it hits the database. Copy the code snippet above and replace YOUR_BOUNCEZERO_API_KEY with your key.
BounceZero provides a REST API that integrates with WordPress through any form plugin (WPForms, Gravity Forms, Contact Form 7, Elementor Forms) or custom PHP code. A dedicated WordPress plugin is on the roadmap. The API approach gives you more control over which forms are gated.
BounceZero responds in under 300ms for most addresses. For the best UX, call the API via AJAX on blur (when the user leaves the email field) rather than on form submit - verification completes before the user fills in the rest of the form, so there's no perceived delay.
Yes. BounceZero is a UK Ltd company with EU data residency (OVH UK1). We act as a data processor under your data processing agreement. We do not store email addresses beyond the duration needed to return the verification result. A DPA is available on request.
Start with 100 free verifications per month. No credit card. Full API access from day one.
Works with every major email platform - export, verify, reimport
Block invalid addresses at checkout and signup
Block fake checkouts and fraud at the source
Connect your ESP, CRM, or custom stack
Clean lists before campaigns - avoid 2% bounce limit
Remove invalids that inflate contact count + cost
Stop bounces from breaking your automations
Continue through related topics