Email Verification
Email verification validates email addresses and assesses their risk level based on multiple factors including deliverability, domain reputation, and fraud signals.
Email Verification Process
┌─────────────────────────────────────────────────────────┐
│ EMAIL ADDRESS │
└─────────────────────────┬───────────────────────────────┘
│
┌─────────────┼─────────────┐
│ │ │
v v v
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Syntax │ │ Domain │ │ Mailbox │
│ Check │ │ Check │ │ Check │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
v v v
┌─────────────────────────────────────────────────────────┐
│ RISK ASSESSMENT │
│ Domain age, reputation, fraud history, patterns │
└─────────────────────────┬───────────────────────────────┘
│
v
┌─────────────────────────────────────────────────────────┐
│ VERIFICATION RESULT + RISK SCORE │
└─────────────────────────────────────────────────────────┘
Verify an Email
API Request
curl -X POST https://api.bytrustgate.com/v1/email/verify \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "john.doe@example.com",
"applicant_id": "550e8400-e29b-41d4-a716-446655440000"
}'
Response
{
"email": "john.doe@example.com",
"verification": {
"status": "valid",
"deliverable": true,
"syntax_valid": true,
"domain_valid": true,
"mailbox_exists": true
},
"risk_assessment": {
"risk_score": 25,
"risk_level": "low",
"factors": []
},
"metadata": {
"domain": "example.com",
"domain_age_days": 8500,
"is_free_provider": false,
"is_disposable": false,
"is_role_account": false,
"is_catch_all": false,
"mx_records": true
}
}
Verification Statuses
| Status | Description | Recommendation |
|---|---|---|
valid | Email is valid and deliverable | Accept |
invalid | Email is invalid | Reject or request new |
risky | Email exists but has risk factors | Review |
unknown | Unable to verify mailbox | Allow with caution |
Risk Factors
High Risk
| Factor | Risk Contribution | Description |
|---|---|---|
disposable_email | +30 | Temporary email service |
known_fraud_domain | +40 | Domain associated with fraud |
spam_trap | +50 | Known spam trap address |
recently_created_domain | +20 | Domain < 30 days old |
Medium Risk
| Factor | Risk Contribution | Description |
|---|---|---|
free_provider | +5 | Gmail, Yahoo, etc. |
catch_all_domain | +10 | Domain accepts all addresses |
role_account | +10 | Generic addresses (info@, admin@) |
no_mx_records | +15 | Domain can't receive email |
Low Risk
| Factor | Risk Contribution | Description |
|---|---|---|
new_email | +5 | No history of this email |
unusual_tld | +5 | Uncommon top-level domain |
Disposable Email Detection
Common Disposable Providers
TrustGate detects 10,000+ disposable email providers including:
- 10minutemail.com
- guerrillamail.com
- tempmail.com
- throwaway.email
- mailinator.com
- And many more...
Response for Disposable Email
{
"email": "user@tempmail.com",
"verification": {
"status": "risky",
"deliverable": true
},
"risk_assessment": {
"risk_score": 75,
"risk_level": "high",
"factors": [
{
"factor": "disposable_email",
"contribution": 30,
"details": "tempmail.com is a known disposable email provider"
},
{
"factor": "recently_created_domain",
"contribution": 20,
"details": "Domain created 15 days ago"
}
]
}
}
Email Domain Intelligence
Get Domain Information
curl -X GET "https://api.bytrustgate.com/v1/email/domain/example.com" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"domain": "example.com",
"domain_age_days": 8500,
"registrar": "Example Registrar Inc",
"mx_provider": "Google Workspace",
"spf_record": true,
"dkim_record": true,
"dmarc_record": true,
"is_free_provider": false,
"is_disposable": false,
"is_corporate": true,
"company_name": "Example Corporation",
"risk_score": 10,
"applications_from_domain": 25,
"fraud_rate_from_domain": 0.02
}
Workflow Rules
Block Disposable Emails
curl -X POST https://api.bytrustgate.com/v1/workflows/rules \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rule_id": "block_disposable_email",
"trigger": "email_verified",
"conditions": {
"all": [
{"field": "email_is_disposable", "operator": "eq", "value": true}
]
},
"actions": [
{
"type": "update_status",
"status": "pending_review"
},
{
"type": "request_info",
"info_needed": "Please provide a permanent email address"
}
]
}'
Flag Free Email Providers
curl -X POST https://api.bytrustgate.com/v1/workflows/rules \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rule_id": "flag_free_email",
"trigger": "email_verified",
"conditions": {
"all": [
{"field": "email_is_free_provider", "operator": "eq", "value": true},
{"field": "applicant_type", "operator": "eq", "value": "business"}
]
},
"actions": [
{
"type": "add_flag",
"flag": "personal_email_for_business"
}
]
}'
Email Verification Settings
Configure Email Checks
curl -X PUT https://api.bytrustgate.com/v1/settings/email-verification \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"verify_on_submit": true,
"block_disposable": true,
"flag_free_providers": true,
"require_corporate_for_business": true,
"risk_thresholds": {
"auto_accept": 30,
"manual_review": 60,
"auto_reject": 85
}
}'
Bulk Email Verification
Verify Multiple Emails
curl -X POST https://api.bytrustgate.com/v1/email/verify/bulk \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"emails": [
"user1@example.com",
"user2@company.org",
"user3@tempmail.com"
]
}'
Response
{
"results": [
{
"email": "user1@example.com",
"status": "valid",
"risk_score": 15
},
{
"email": "user2@company.org",
"status": "valid",
"risk_score": 10
},
{
"email": "user3@tempmail.com",
"status": "risky",
"risk_score": 75
}
],
"summary": {
"total": 3,
"valid": 2,
"risky": 1,
"invalid": 0
}
}
Email Deduplication
Find Duplicate Applications
curl -X GET "https://api.bytrustgate.com/v1/email/duplicates?email=john.doe@example.com" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"email": "john.doe@example.com",
"applications": [
{
"applicant_id": "app_001",
"status": "approved",
"created_at": "2024-06-15"
},
{
"applicant_id": "app_002",
"status": "pending",
"created_at": "2025-01-20"
}
],
"similar_emails": [
{
"email": "johndoe@example.com",
"similarity": 0.95,
"applicant_id": "app_003"
}
]
}
Next Steps
- Phone Verification - Phone number validation
- Device Intelligence - Device risk assessment
- Risk Signals - All fraud signals