EmailCheck / Questions问题页 / How do I verify a list of emails in bulk without calling the API one by one?
How do I verify a list of emails in bulk without calling the API one by one?怎么批量验证一份邮箱名单,不用一个一个调 API?
Use the batch endpoint: POST up to 100 addresses to /validate/batch in one call, and get every address back with its own verdict, score and checks, plus a summary of counts and percentages (valid / risky / invalid / disposable / likely typos). A bad entry marks only itself — it never fails the batch. This is not a theoretical feature: our first paying subscriber runs every one of his checks through the batch endpoint.
用批量端点:一次把最多 100 个地址 POST 到 /validate/batch,每条都带自己的裁决、分数与逐项检查返回,另附计数与百分比汇总(valid / risky / invalid / 一次性 / 疑似拼错)。坏条目只标自己——不连坐整批。这不是纸面功能:我们的第一个付费订阅者,全部检查都走这个端点。
How the batch call works批量调用怎么工作
Send a JSON body — {"emails": ["...", "..."]} — to POST https://emailcheck-api.pages.dev/validate/batch. The response keeps submission order and gives each address the same full result shape as a single check, followed by a summary: total, valid, risky, invalid, disposable and typoLikely counts, with percentages. For lists bigger than 100, page through in chunks of 100; each chunk is independent.
Errors are named JSON, so a pipeline can react instead of guessing: MISSING_EMAIL (an entry with no address), EMPTY_BATCH, BATCH_TOO_LARGE (over 100), INVALID_JSON. A malformed address inside the batch is not an error at all — it comes back as that row's invalid verdict, and the rest of the batch is unaffected.
把 JSON body——{"emails": ["...", "..."]}——POST 到 POST https://emailcheck-api.pages.dev/validate/batch。响应保持提交顺序,每条返回与单查完全相同的完整结果,最后附 summary:total、valid、risky、invalid、disposable、typoLikely 的计数与百分比。名单超过 100 条就按每 100 条分片,每片互相独立。
错误是具名 JSON,管线可以对症处理、不用猜:MISSING_EMAIL(条目没有地址)、EMPTY_BATCH、BATCH_TOO_LARGE(超过 100)、INVALID_JSON。批次里某个地址格式错误根本不算错误——它就是那一行的 invalid 裁决,批次其余部分不受影响。
When single calls are still the right tool什么时候单查才是对的工具
Batch is for lists that already exist: CRM imports, pre-send hygiene, scheduled cleaning jobs. At the moment an address is being typed — a signup form, a checkout — you want the single check instead, so a typo suggestion can be shown to the person who can fix it with one tap. The two endpoints return the same fields, so the parsing code you write for one works for the other.
批量适合已经存在的名单:CRM 导入、发送前清洗、定时卫生任务。而在地址正被输入的那一刻——注册表单、结账页——要用单查,这样拼写建议能直接弹给那个能一键改对的人。两个端点返回的字段一致,为一个写的解析代码,另一个也能用。
Try the batch endpoint试一下批量端点
One address per line (up to 100). This posts to the production POST /validate/batch.
一行一个地址(最多 100 条)。直接调生产 POST /validate/batch。
Scope, stated plainly: EmailCheck checks domains, not mailboxes — no SMTP probing, no claim that a specific mailbox exists. Every API response carries scope: "domain-level" and a note saying exactly what was checked.
范围说死:EmailCheck 查的是域名,不是邮箱——不做 SMTP 探测,不声称某个具体邮箱存在。每个 API 响应都带 scope: "domain-level" 和一段说明,把查过的范围写清。