Validate Emails and Phone Numbers Before You Send
Stop wasting sends on bad data. CloudContactAI's Contact Validator checks email addresses and phone numbers in real time — individually or in bulk — so your campaigns reach real people.
Get Started FreeEmail Validation
Validate email addresses before sending campaigns. Detect invalid, risky, and undeliverable addresses automatically.
- Single email validation
- Bulk validation (up to 50 at once)
- Returns valid, invalid, or risky status
- Detailed metadata per result
Phone Validation
Verify phone numbers are real, reachable, and mobile before sending SMS campaigns. Avoid landlines and invalid numbers.
- Single phone validation
- Bulk validation (up to 50 at once)
- Returns valid, invalid, or landline status
- Country code support
What Each Status Means
Address or number is real and deliverable. Safe to send.
Does not exist or cannot receive messages. Remove from your list.
Email exists but may cause bounces or spam flags. Send with caution.
Phone number is a landline — cannot receive SMS. Exclude from campaigns.
Validate via SDK
Integrate contact validation directly into your workflow using the CloudContactAI Node.js SDK. View full SDK docs →
// Install: npm install ccai-node import { CCAI } from 'ccai-node'; const ccai = new CCAI({ clientId: process.env.CCAI_CLIENT_ID, apiKey: process.env.CCAI_API_KEY }); // Validate a single email address const result = await ccai.contactValidator.validateEmail('[email protected]'); console.log(result.status); // "valid" | "invalid" | "risky" if (result.status === 'valid') { // Safe to add to your campaign addToEmailCampaign(result.contactField); }
// Validate up to 50 emails at once const results = await ccai.contactValidator.validateEmails([ '[email protected]', '[email protected]', '[email protected]', '[email protected]' ]); console.log(results.summary); // { total: 4, valid: 2, invalid: 1, risky: 1, landline: 0 } // Filter to only valid emails for your campaign const validEmails = results.results .filter(r => r.status === 'valid') .map(r => r.contactField); console.log(`Sending to ${validEmails.length} verified addresses`);
// Validate a single phone number (E.164 format) const result = await ccai.contactValidator.validatePhone( '+15551234567', 'US' ); console.log(result.status); // "valid" | "invalid" | "landline" if (result.status === 'valid') { // Mobile number — safe to send SMS addToSMSCampaign(result.contactField); } else if (result.status === 'landline') { // Cannot receive SMS — skip console.log('Landline detected, skipping SMS'); }
// Validate up to 50 phone numbers at once const results = await ccai.contactValidator.validatePhones([ { phone: '+15551234567' }, { phone: '+15559876543', countryCode: 'US' }, { phone: '+15550000000' } ]); console.log(results.summary); // { total: 3, valid: 2, invalid: 0, risky: 0, landline: 1 } // Only send SMS to valid mobile numbers const mobileNumbers = results.results .filter(r => r.status === 'valid') .map(r => r.contactField); console.log(`${mobileNumbers.length} mobile numbers ready for SMS`);
Why Validate Before You Send?
Reduce Bounce Rates
High email bounce rates hurt your sender reputation. Validate before every campaign to keep your list clean.
Avoid SMS Waste
Sending to landlines and invalid numbers burns credits. Bulk validate your list before launching SMS campaigns.
Protect Deliverability
ISPs and carriers penalize senders with high invalid rates. Validation keeps your deliverability score healthy.
Automate List Hygiene
Integrate validation into your signup flow or CRM sync to automatically filter bad contacts before they enter your list.
Start Validating Your Contacts Today
Clean lists mean better deliverability, lower costs, and higher engagement. Validate emails and phone numbers with the CloudContactAI SDK.
