提供包含语法、域名和 SMTP 检查的实时邮箱验证。专为追求透明度、拒绝黑盒操作的开发者而构建。
基础 URL: https://parheliaweb.com
请在每次请求的 x-api-key 请求头中附带您的 API 密钥。响应格式统一为 JSON。
所有价格均以 欧元 (EUR) 列示。 您的信用卡将按当前汇率以您的本地货币扣款。我们使用 Stripe 进行安全支付 处理,支持 135 种以上的货币以及包括 iDEAL、Bancontact 和 SEPA 直接扣款在内的本地支付方式。
请在每次请求中将您的专属 API 密钥作为 HTTP 标头传递:
x-api-key: YOUR_API_KEY
若密钥缺失或无效,系统将返回 401 Unauthorized 或 403 Forbidden。
| 套餐 | 价格 | 速率限制 | 每月配额 | 验证深度 | 支持 |
|---|---|---|---|---|---|
| 加载定价... | |||||
当请求频率超出限制时,API 将返回 429 Too Many Requests。
POST /v1/email/validate
通过我们的多阶段验证管道验证单个电子邮件地址。目前正在监控 — 个黑名单域名,并动态检测新兴垃圾邮件技术。
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
email | 字符串 | 是 | 要验证的电子邮件地址 |
# 验证单个电子邮件地址
curl -X POST https://parheliaweb.com/v1/email/validate \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_KEY" \
-d '{"email": "user@example.com"}'
# 验证已知的临时域名
curl -X POST https://parheliaweb.com/v1/email/validate \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_KEY" \
-d '{"email": "test@mailinator.com"}'
{
"status": "ok",
"result": {
"email": "user@example.com",
"status": "valid",
"confidence": 90,
"cached": false,
"first_seen": "2026-06-15 21:45:00",
"syntax_valid": true,
"domain_check": {
"passed": true,
"whitelisted": false,
"blacklisted": false,
"blacklist_match": null,
"dynamic_match": null,
"no_probe": false,
"checks_performed": [
"blacklist_clean",
"numeric_prefix_clean",
"double_tld_clean"
]
},
"mx_valid": true,
"mx_servers": ["mail.example.com"],
"smtp_check": {
"performed": true,
"result": true,
"code": 250,
"message": "Mailbox accepted (code 250)"
},
"risk_factors": [],
"performance_ms": {
"total": 1847.32,
"phases": {
"syntax": 0.03,
"domain_check": 1.48,
"dns": 45.12,
"smtp": 1800.69
}
}
}
}
{
"status": "ok",
"result": {
"email": "info@company.com",
"status": "risky",
"confidence": 45,
"cached": false,
"first_seen": "2026-06-15 21:45:00",
"syntax_valid": true,
"domain_check": {
"passed": true,
"whitelisted": false,
"blacklisted": false,
"blacklist_match": null,
"dynamic_match": null,
"no_probe": false,
"checks_performed": [
"blacklist_clean",
"numeric_prefix_clean",
"double_tld_clean"
]
},
"mx_valid": true,
"mx_servers": ["mail.company.com"],
"smtp_check": {
"performed": true,
"result": true,
"code": 250,
"message": "Mailbox accepted (code 250)"
},
"catch_all": {
"detected": true,
"message": "Domain accepts all 2 test addresses — likely catch-all"
},
"risk_factors": [
{"factor": "catch_all_domain", "severity": "medium"}
],
"performance_ms": {
"total": 3215.67,
"phases": {
"syntax": 0.02,
"domain_check": 1.52,
"dns": 38.41,
"smtp": 2847.33,
"catch_all": 328.39
}
}
}
}
{
"status": "ok",
"result": {
"email": "spam@mailinator.com",
"status": "invalid",
"confidence": 95,
"cached": false,
"first_seen": "2026-06-15 21:45:00",
"syntax_valid": true,
"domain_check": {
"passed": false,
"whitelisted": false,
"blacklisted": true,
"blacklist_match": {
"type": "static_domain",
"domain": "mailinator.com",
"reason": "Disposable email service",
"category": "disposable",
"severity": 10
},
"dynamic_match": null,
"no_probe": false,
"checks_performed": ["blacklist_hit"]
},
"mx_valid": false,
"mx_servers": [],
"smtp_check": {
"performed": false,
"result": null,
"code": null,
"message": "Skipped: domain rejected"
},
"risk_factors": [
{
"factor": "domain_rejected",
"severity": "critical",
"detail": {
"type": "static_domain",
"domain": "mailinator.com",
"reason": "Disposable email service",
"category": "disposable",
"severity": 10
}
}
],
"performance_ms": {
"total": 1.54,
"phases": {
"syntax": 0.02,
"domain_check": 1.48
}
}
}
}
| 字段 | 类型 | 描述 |
|---|---|---|
email | 字符串 | 已验证的电子邮件地址 |
status | 字符串 | 总体评估:valid, invalid, risky, 或 unknown |
confidence | 整数 |
置信度评分 0–100。含义取决于 status:对于 valid: 90 = 邮箱由 SMTP 服务器确认。有效时通常为高置信度。 对于 invalid: 指示哪个阶段发现了问题: • 100 = 语法无效(缺少 @、连续的点) • 95 = 域名被拒绝(黑名单或动态模式匹配) • 90 = 无 MX 记录(域名没有邮件服务器) • 0 = SMTP 服务器明确拒绝了邮箱(代码 550) 对于 risky: 越高 = 风险越小。60 = 轻微问题(临时故障),55 = 全捕获域名,45–50 = 多重担忧,35 = 高风险。 对于 unknown: 总是 30 = 无法获得任何答案(域名阻止探测、频率限制、网络问题)。 |
cached | 布尔值 | 如果结果从缓存中提供(即时),则为 True;如果执行了全新的 SMTP 验证,则为 false |
X-Cache (HTTP 标头) | 字符串 | 如果结果从缓存中提供,则为 HIT;如果执行了新的验证,则为 MISS。检查此标头以确定缓存状态,而无需解析 JSON 正文。 |
first_seen | 字符串|null | 我们的系统首次遇到此电子邮件哈希的 ISO 8601 时间戳。首次验证时为 null |
syntax_valid | 布尔值 | 电子邮件是否通过 RFC 5322 语法验证 |
domain_check.passed | 布尔值 | 域名是否通过了所有黑名单和模式检查 |
domain_check.whitelisted | 布尔值 | 如果电子邮件或域名在受信任的白名单中,则为 True |
domain_check.blacklisted | 布尔值 | 如果域名在静态黑名单中(临时、垃圾邮件等),则为 True |
domain_check.blacklist_match | 对象|null | 有关黑名单匹配的详细信息(如适用) |
domain_check.dynamic_match | 对象|null | 有关动态模式匹配的详细信息(数字前缀、双 TLD 等) |
domain_check.no_probe | 布尔值 | 如果已知该域名会拒绝 SMTP 探测,则为 True |
domain_check.checks_performed | 数组 | 执行的所有域名级检查及其结果列表 |
mx_valid | 布尔值 | 域名是否有有效的 MX 记录 |
mx_servers | 数组 | MX 服务器主机名列表(最多 5 个,按优先级排序) |
smtp_check.performed | 布尔值 | 是否尝试了 SMTP 验证 |
smtp_check.result | 布尔值|null | True = 邮箱被接受,False = 被拒绝,null = 无法确定 |
smtp_check.code | 整数|null | SMTP 响应代码(250、550 等) |
smtp_check.message | 字符串 | SMTP 结果的人类可读说明 |
catch_all.detected | 布尔值|null | 专业版: 域名是否似乎是全捕获 |
catch_all.message | 字符串 | 专业版: 有关全捕获检测的详细信息 |
risk_factors | 数组 | 具有严重性级别(严重、高、中)的风险因素列表 |
performance_ms.total | 浮点数 | 总验证时间(毫秒) |
performance_ms.phases | 对象 | 各阶段计时细分(syntax、domain_check、dns、smtp、catch_all) |
| 状态 | 含义 | 建议操作 |
|---|---|---|
| valid | 电子邮件语法正确,域名存在,且 SMTP 服务器确认了邮箱 | 可以安全发送 |
| invalid | 电子邮件未通过语法、域名或 SMTP 检查,且置信度高 | 请勿发送 — 会退回 |
| risky | 无法完全验证电子邮件(全捕获域名、灰名单、可疑模式) | 用于营销时谨慎发送;避免用于事务性电子邮件 |
| unknown | 无法确定(被提供商频率限制、域名阻止探测、网络问题) | 稍后重试或通过其他方式验证 |
X-Priority 标头来灵活控制
速度与准确性之间的平衡:
如果未设置标头,将自动使用 balanced 模式。
performance_ms 中的各阶段计时,以便您准确了解时间花在哪里。
POST /v1/email/validate/batch
在单个请求中验证最多 100 个电子邮件地址。6 个或以上电子邮件的批次采用异步处理 —— 您将收到带有 batch_id 的即时响应,并可轮询结果。小批次(5 个或以下)则同步处理并立即返回结果。每个批次都分配有唯一的 batch_id,并记录在您的验证日志中。批量验证采用 连接池 技术 —— 发往相同域名的电子邮件共享一个 SMTP 连接,从而显著缩短包含重复域名的大型列表的验证时间。
batch_id,并轮询状态端点以
在完成时检索结果。缓存结果即时返回,使重复批次
显著加快。
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
emails | 字符串数组 | 是 | 要验证的电子邮件地址列表(最多 100 个) |
curl -X POST https://parheliaweb.com/v1/email/validate/batch \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_KEY" \
-d '{
"emails": [
"user@example.com",
"spam@mailinator.com",
"info@catchall-domain.com"
]
}'
{
"status": "ok",
"result": {
"batch_id": "dbb2b6bc8cc9",
"total_emails": 3,
"total_ms": 28.37,
"results": [
{
"email": "user@example.com",
"status": "valid",
"confidence": 90,
"cached": false,
"first_seen": "2026-06-15 21:45:00"
},
{
"email": "spam@mailinator.com",
"status": "invalid",
"confidence": 95,
"cached": false,
"first_seen": "2026-06-15 21:45:01"
},
{
"email": "info@catchall-domain.com",
"status": "risky",
"confidence": 45,
"cached": false,
"first_seen": "2026-06-15 21:45:02"
}
]
}
}
{
"status": "ok",
"result": {
"batch_id": "23f6e6244854",
"total_emails": 20,
"status": "processing",
"message": "Batch queued for processing. Poll GET /v1/email/validate/batch/23f6e6244854 for results."
}
}
GET /v1/email/validate/batch/{batch_id}
轮询异步处理的批次结果。返回批次状态,并在完成时返回完整结果数组。
curl -H "x-api-key: YOUR_KEY" https://parheliaweb.com/v1/email/validate/batch/23f6e6244854
{
"status": "ok",
"result": {
"batch_id": "23f6e6244854",
"total_emails": 20,
"completed_emails": 0,
"status": "processing",
"total_ms": null
}
}
{
"status": "ok",
"result": {
"batch_id": "23f6e6244854",
"total_emails": 20,
"completed_emails": 20,
"status": "completed",
"total_ms": 45230.67,
"results": [
{
"email": "user@example.com",
"status": "valid",
"confidence": 90,
"cached": false,
"first_seen": "2026-06-15 21:45:00"
},
{
"email": "spam@mailinator.com",
"status": "invalid",
"confidence": 95,
"cached": false,
"first_seen": "2026-06-15 21:45:01"
}
]
}
}
import requests
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
data = {"email": "user@example.com"}
resp = requests.post("https://parheliaweb.com/v1/email/validate", headers=headers, json=data)
result = resp.json()["result"]
print(f"Status: {result['status']}, Confidence: {result['confidence']}%")
fetch("https://parheliaweb.com/v1/email/validate", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
},
body: JSON.stringify({ email: "user@example.com" })
})
.then(res => res.json())
.then(data => console.log(data.result.status));
# Linux / macOS
curl -X POST https://parheliaweb.com/v1/email/validate \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"email": "user@example.com"}'
# Windows 11 PowerShell
curl.exe -X POST https://parheliaweb.com/v1/email/validate -H "Content-Type: application/json" -H "x-api-key: YOUR_API_KEY" -d '{\"email\": \"user@example.com\"}'
# Windows 10 PowerShell
curl.exe -X POST https://parheliaweb.com/v1/email/validate -H "Content-Type: application/json" -H "x-api-key: YOUR_API_KEY" -d "{""email"": ""user@example.com""}"
您的 API 密钥不仅限于此 API。可在我们的整个平台上使用:
| API | 端点基础路径 | 免费层级 | 专业版层级 |
|---|---|---|---|
| 邮箱验证 | /v1/email/validate | 100次/月 | 25,000次/月 |
| 融资轮次 | /v1/funding | 100次/天 | 1,000次/天 |
| 裁员 | /v1/layoffs | 100次/天 | 1,000次/天 |
| 监管罚款 | /v1/fines | 100次/天 | 1,000次/天 |
| 收购 | /v1/acquisitions | 100次/天 | 1,000次/天 |
| IPO | /v1/ipos | 100次/天 | 1,000次/天 |
配额按各个 API 单独计算。您可以根据需求独立升级单个 API。为何各 API 配额有所不同? 邮箱验证需要执行实时 SMTP 握手,每次检查均有基础设施成本;而数据 API 查询的是我们的缓存数据库,边际成本较低。
如果您在使用中遇到任何问题,或有功能建议,欢迎发送邮件至 info@parheliaweb.com 与我们联系。
ParheliaWeb 邮箱验证 API · 荷兰制造 · 条款 · 隐私 · 为什么选择我们 · 联系我们
AI 验证由 DeepSeek 提供支持