Email Validation
The Email Validation integration provides real-time email address validation including deliverability checks, spam trap detection, and domain verification.
| Detail | Value |
|---|---|
| Cost | $0.05 per validation |
| Rate limit | 3,000 requests/min |
| Billing | Wallet-based (pre-paid) |
Quick start
Section titled “Quick start”- Go to Integrations in your dashboard at app.econsent.org.
- Enable Email Validation and copy your API token.
- Make your first request:
curl -X POST https://api.econsent.org/api/integrations/YOUR_COMPANY_ID/vzew/email \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d '{ "email": "user@example.com" }'Endpoint
Section titled “Endpoint”POST https://api.econsent.org/api/integrations/:companyId/vzew/emailAuthentication
Section titled “Authentication”Use Bearer token authentication with your Email Validation integration token:
Authorization: Bearer YOUR_API_TOKENRequest parameters
Section titled “Request parameters”Path parameters
Section titled “Path parameters”| Parameter | Type | Description |
|---|---|---|
companyId | string | Your Company ID |
Request body
Section titled “Request body”| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address to validate |
Response
Section titled “Response”Success (200)
Section titled “Success (200)”{ "success": true, "status": 200, "data": { "email": "john.doe@example.com", "valid": true, "deliverable": true, "spam_trap": false, "disposable": false, "role_based": false, "free_provider": false, "domain": "example.com", "mx_records": true, "smtp_valid": true, "score": 95, "reason": "Valid email address" }, "billing": { "currency": "USD", "cost_charged": 0.05, "remaining_balance": 123.40, "formatted": { "cost_charged": "$0.05", "remaining_balance": "$123.40" } }, "processing_time_ms": 150, "service": "email", "company_id": "comp-abc", "timestamp": "2025-03-18T10:30:00Z", "provider": "vzew"}Response fields
Section titled “Response fields”| Field | Type | Description |
|---|---|---|
data.email | string | The email address validated |
data.valid | boolean | Overall validity (syntax + deliverability) |
data.deliverable | boolean | Can the email receive messages |
data.spam_trap | boolean | Known spam trap address |
data.disposable | boolean | Temporary/disposable email provider |
data.role_based | boolean | Role-based email (info@, admin@, etc.) |
data.free_provider | boolean | Free email provider (Gmail, Yahoo, etc.) |
data.domain | string | Domain of the email address |
data.mx_records | boolean | Domain has valid MX records |
data.smtp_valid | boolean | SMTP validation passed |
data.score | number | Overall quality score (0—100) |
data.reason | string | Human-readable validation result |
billing.cost_charged | number | Amount deducted from wallet ($0.05) |
billing.remaining_balance | number | Remaining wallet balance |
Quality scores
Section titled “Quality scores”| Score range | Quality | Recommendation |
|---|---|---|
| 90—100 | Excellent | Safe to send |
| 70—89 | Good | Generally safe |
| 50—69 | Fair | Use with caution |
| 0—49 | Poor | Not recommended |
Error responses
Section titled “Error responses”| Status | Meaning |
|---|---|
400 | Bad request: invalid email format |
401 | Unauthorized: invalid API token |
402 | Payment required: insufficient wallet balance |
403 | Forbidden: integration not enabled |
429 | Rate limited: exceeded 3,000 requests/min |
Health check
Section titled “Health check”You can verify your integration status, wallet balance, and available services using the health check endpoint:
GET https://api.econsent.org/api/integrations/:companyId/vzew/healthThe response includes your current wallet balance, available integrations, service costs, and routing configuration.
Code examples
Section titled “Code examples”async function validateEmail(email) { const companyId = process.env.ECONSENT_COMPANY_ID; const token = process.env.ECONSENT_EMAIL_TOKEN;
const response = await fetch( `https://api.econsent.org/api/integrations/${companyId}/vzew/email`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}`, }, body: JSON.stringify({ email }), } );
const data = await response.json();
if (data.success) { console.log('Valid:', data.data.valid); console.log('Deliverable:', data.data.deliverable); console.log('Score:', data.data.score); console.log('Spam Trap:', data.data.spam_trap); return data.data; } else { throw new Error(data.error); }}import osimport requests
def validate_email(email): company_id = os.getenv('ECONSENT_COMPANY_ID') token = os.getenv('ECONSENT_EMAIL_TOKEN')
response = requests.post( f'https://api.econsent.org/api/integrations/{company_id}/vzew/email', headers={ 'Content-Type': 'application/json', 'Authorization': f'Bearer {token}', }, json={'email': email}, )
data = response.json()
if data.get('success'): print(f"Valid: {data['data']['valid']}") print(f"Deliverable: {data['data']['deliverable']}") print(f"Score: {data['data']['score']}") return data['data'] else: raise Exception(data.get('error'))<?phpfunction validateEmail($email) { $companyId = getenv('ECONSENT_COMPANY_ID'); $token = getenv('ECONSENT_EMAIL_TOKEN');
$ch = curl_init("https://api.econsent.org/api/integrations/$companyId/vzew/email"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['email' => $email])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', "Authorization: Bearer $token", ]);
$response = curl_exec($ch); curl_close($ch);
$result = json_decode($response, true);
if ($result['success']) { echo "Valid: " . ($result['data']['valid'] ? 'Yes' : 'No') . "\n"; echo "Deliverable: " . ($result['data']['deliverable'] ? 'Yes' : 'No') . "\n"; echo "Score: " . $result['data']['score'] . "\n"; return $result['data']; } else { throw new Exception($result['error']); }}?>Best practices
Section titled “Best practices”- Validate server-side. Perform email validation on your backend after basic client-side format checks.
- Cache results. Store validation results for 30 days to avoid duplicate charges for the same email.
- Handle disposable emails. Decide whether to reject disposable/temporary email addresses based on your use case.
- Monitor spam traps. Always reject emails flagged as spam traps to protect your sender reputation.
- Batch processing. When validating lists, process in batches and respect the 3,000 requests/min rate limit.
Pricing
Section titled “Pricing”- Cost per validation: $0.05
- Rate limit: 3,000 requests/min
- Billing method: Wallet-based (pre-paid via Stripe)
Next steps
Section titled “Next steps”- Phone Validation. Validate phone numbers at $0.05/check
- Debt/Credit Lookup. Credit and debt lookups at $0.35/lookup
- Fraud Detection. Real-time fraud scoring at $0.05/check
- Pricing & Billing. Full pricing breakdown