ParheliaWeb

邮箱验证 API

提供包含语法、域名和 SMTP 检查的实时邮箱验证。专为追求透明度、拒绝黑盒操作的开发者而构建。

基础 URL: https://parheliaweb.com

请在每次请求的 x-api-key 请求头中附带您的 API 密钥。响应格式统一为 JSON。

🚀 快速开始(免费版):
  1. 注册页面 免费订阅 —— 无需绑定信用卡
  2. 在控制台获取您的通用 API 密钥
  3. 调用此 API —— 每月 100 次免费额度
  4. 随时轻松升级 —— 密钥不变,配额提升,解锁高级功能
🗝️ 通用 API 密钥: 您的 ParheliaWeb 密钥适用于所有六个 API —— 包括本 API、融资、裁员、罚款、收购和 IPO。 每个 API 均提供免费层级。可在控制台中统一管理所有 API 的使用情况。

💶 定价与货币

所有价格均以 欧元 (EUR) 列示。 您的信用卡将按当前汇率以您的本地货币扣款。我们使用 Stripe 进行安全支付 处理,支持 135 种以上的货币以及包括 iDEAL、Bancontact 和 SEPA 直接扣款在内的本地支付方式。

欧盟基地: ParheliaWeb 在荷兰开发和托管。 所有数据处理均符合 GDPR。我们绝不以明文形式存储电子邮件地址 —— 仅进行 SHA-256 哈希处理用于运营监控。服务器位于荷兰数据中心,确保完全遵守欧盟数据保护法规。

🔐 身份验证

请在每次请求中将您的专属 API 密钥作为 HTTP 标头传递:

x-api-key: YOUR_API_KEY

若密钥缺失或无效,系统将返回 401 Unauthorized403 Forbidden

📡 速率限制与访问权限

套餐价格速率限制每月配额验证深度支持
加载定价...

当请求频率超出限制时,API 将返回 429 Too Many Requests

🔄 并发请求: 允许的并发验证数量 取决于您的套餐:1 (免费版), 2 (入门版), 3 (专业版), 10 (商业版)。超出的请求将 立即收到错误响应。如需更高的并发需求, 欢迎联系我们获取企业版方案。
为什么我们的免费版与众不同: 大多数电子邮件 API 将免费用户限制在基础语法检查或有时限的试用中。我们为您提供真实的 SMTP 验证 —— 每月 100 次查询,永久免费,与我们的付费客户使用的是完全相同的引擎。因为我们对自己的数据质量有足够的信心,让您可以充分测试。

📦 端点:验证电子邮件地址

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布尔值|nullTrue = 邮箱被接受,False = 被拒绝,null = 无法确定
smtp_check.code整数|nullSMTP 响应代码(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 模式。

⚠️ 关于主要电子邮件提供商: 验证准确性因提供商而异。 Gmail 提供真实响应,可以可靠地验证。 Microsoft (Outlook, Hotmail, Live) 在 SMTP 验证期间会接受所有地址,因此这些域名的结果可能不确定。Yahoo 和 其他一些提供商则会完全阻止验证探测。对于我们无法 获得明确答案的域名,我们将返回 risky 并附上清晰的 说明,而非盲目猜测。我们秉持透明的原则 —— 您应该确切知道 我们能验证什么,不能验证什么。
⏱️ 关于验证速度: 大多数验证在 2 秒内完成。 某些提供商(尤其是 Gmail)可能需要 5–10 秒来响应 SMTP 探测。 这属于正常现象 —— Gmail 作为其反垃圾邮件 措施的一部分,会故意引入轻微延迟。我们会等待真实的答案,而非盲目猜测或提前返回。每个 响应都包含 performance_ms 中的各阶段计时,以便您准确了解时间花在哪里。
验证如何工作: 我们的管道运行三个阶段:
(1) RFC 5322 语法验证,
(2) 针对 个黑名单域名和动态垃圾邮件模式的域名检查,以及
(3) SMTP 握手验证。每个阶段必须通过才能继续到下一阶段。结果包括各阶段计时,以便您准确了解发生了什么。

📦 端点:批量验证

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"
      }
    ]
  }
}

💻 代码片段

Python

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']}%")

JavaScript (fetch)

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));

cURL

# 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""}"

🗝️ 您的密钥适用于所有 ParheliaWeb API

您的 API 密钥不仅限于此 API。可在我们的整个平台上使用:

API端点基础路径免费层级专业版层级
邮箱验证/v1/email/validate100次/月25,000次/月
融资轮次/v1/funding100次/天1,000次/天
裁员/v1/layoffs100次/天1,000次/天
监管罚款/v1/fines100次/天1,000次/天
收购/v1/acquisitions100次/天1,000次/天
IPO/v1/ipos100次/天1,000次/天

配额按各个 API 单独计算。您可以根据需求独立升级单个 API。为何各 API 配额有所不同? 邮箱验证需要执行实时 SMTP 握手,每次检查均有基础设施成本;而数据 API 查询的是我们的缓存数据库,边际成本较低。

📬 技术支持

如果您在使用中遇到任何问题,或有功能建议,欢迎发送邮件至 info@parheliaweb.com 与我们联系。

ParheliaWeb 邮箱验证 API · 荷兰制造 · 条款 · 隐私 · 为什么选择我们 · 联系我们

AI 验证由 DeepSeek 提供支持