Install
openclaw skills install validate-emailValidate email addresses with format checking and risk scoring. Use when users need to verify email format, check disposable emails, or validate bulk email lists. Handles RFC 5322 compliance, domain extraction, and risk assessment. Runs locally with no external API calls.
openclaw skills install validate-emailLocal skill by Claw0x — runs entirely in your OpenClaw agent.
Validate email addresses for format correctness and assess risk level. Pure local logic processing with no external API calls.
Runs locally. No external API calls, no API key required. Complete privacy.
None. Just install and use.
| When This Happens | Do This | What You Get |
|---|---|---|
| User provides email | Validate format | Valid/invalid + risk score |
| Check disposable email | Run validation | Disposable domain detection |
| Bulk email validation | Loop through list | Format check for each |
| Pre-filter signups | Validate before save | Risk score assessment |
openclaw skills install email-validator
const result = await agent.run('email-validator', {
email: 'user@example.com'
});
console.log(result.valid); // true/false
console.log(result.risk_score); // 10-100
{
"valid": true,
"email": "user@example.com",
"checks": {
"format_valid": true,
"domain": "example.com",
"local_part": "user",
"is_disposable": false
},
"risk_score": 10,
"suggestion": null
}
100% local processing. Zero external API calls. Complete privacy.
This skill runs entirely in your agent's environment using pure TypeScript logic. All validation happens locally using:
Uses a regex pattern to check email structure locally:
@): 1-64 characters, alphanumeric, dots, hyphens, underscores, plus signs@): Valid hostname with TLDNo network calls. Pure string matching.
Compares the extracted domain against built-in lists (stored in code):
No DNS lookups. Pure array lookups.
Calculates risk score using simple arithmetic:
| Factor | Risk Impact |
|---|---|
| Invalid format | +90 (instant high risk) |
| Disposable domain | +70 |
| All-number local part | +30 |
| Very short local part (<3 chars) | +20 |
| Free email provider | +10 |
| Valid corporate domain | +10 (baseline) |
No external scoring API. Pure math.
Lower score = safer email.
This is by design. The skill is optimized for speed, determinism, and zero external dependencies.
Problem: Filter out fake emails during registration Solution: Validate format and check disposable domains Example:
const result = await agent.run('email-validator', {
email: 'test@mailinator.com'
});
if (result.risk_score > 70) {
console.log('Disposable email detected');
}
Problem: Clean email list before campaign Solution: Validate all emails and remove invalid ones Example:
const emails = ['user1@example.com', 'invalid@', 'user2@gmail.com'];
const results = await Promise.all(
emails.map(email => agent.run('email-validator', { email }))
);
const validEmails = results
.filter(r => r.valid && r.risk_score < 50)
.map(r => r.email);
Problem: Prioritize corporate emails over free providers Solution: Use risk score to rank leads Example:
const result = await agent.run('email-validator', {
email: 'ceo@company.com'
});
// Corporate domain = low risk score (10-20)
// Free provider = medium risk (20-30)
// Disposable = high risk (80-100)
import { Claw0xClient } from '@claw0x/sdk';
const claw0x = new Claw0xClient(process.env.CLAW0X_API_KEY);
agent.onUserInput(async (input) => {
if (input.includes('@')) {
const result = await claw0x.call('email-validator', {
email: input
});
if (!result.valid) {
return 'Invalid email format';
}
if (result.checks.is_disposable) {
return 'Disposable email not allowed';
}
}
});
from claw0x import Claw0xClient
client = Claw0xClient(api_key=os.environ['CLAW0X_API_KEY'])
def validate_email(email: str) -> dict:
result = client.call('email-validator', {'email': email})
return result
# Use in chain
email = "user@example.com"
validation = validate_email(email)
if validation['valid']:
print(f"Email is valid with risk score: {validation['risk_score']}")
const response = await fetch('https://api.claw0x.com/v1/call', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.CLAW0X_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
skill: 'email-validator',
input: { email: 'test@example.com' }
})
});
const result = await response.json();
console.log(result);
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | Email address to validate (3-254 chars) |
{
valid: boolean; // Whether email format is valid
email: string; // Normalized (lowercased) email
checks: {
format_valid: boolean; // RFC format check result
domain: string; // Extracted domain
local_part: string; // Extracted local part (before @)
is_disposable: boolean; // Whether domain is disposable
};
risk_score: number; // Risk score (10 = low, 90 = high)
suggestion: string | null; // Suggestion if invalid
}
| Error | Cause | Solution |
|---|---|---|
Missing required field: email | No email provided | Provide email in input |
email must be between 3 and 254 characters | Email too short/long | Check email length |
This skill is provided by Claw0x, the native skills layer for AI agents.
Cloud version available: For users who need centralized analytics, a cloud version is available at claw0x.com/skills/validate-email.
Explore more skills: claw0x.com/skills