Results & statuses

How to read a verification result.

Every verification returns a result, a recommendation, a confidence score and a derived risk band.

GET /v3/validate/bulk/{jobId}/results

Query parameters (results)

ParameterTypeRequiredDescription
pageintegerOptionalPage number, starting at 1. Default 1.
limitintegerOptionalRows per page, 1–1000. Default 100.
resultstringOptionalOnly rows with this verdict: valid, invalid, catch_all, unknown, spamtrap, abuse or do_not_mail.

To export the whole job as a CSV instead of paging JSON, use GET /v3/validate/bulk/{jobId}/download — see Download bulk results.

Result values

ParameterTypeRequiredDescription
validresultOptionalMailbox exists and accepts mail — safe to send.
invalidresultOptionalMailbox does not exist or the domain can’t receive mail — do not send.
catch_allresultOptionalDomain accepts all recipients; existence can’t be confirmed — send with caution.
unknownresultOptionalNo definitive answer (timeout / greylist) — retry later. In-flight verifications also show unknown with sub_status: queued.
do_not_mailresultOptionalBlocked by a verification rule or otherwise flagged as unsafe to mail.
spamtrapresultOptionalKnown spam-trap address — sending damages your reputation.
abuseresultOptionalAddress with a history of marking mail as spam.
ParameterTypeRequiredDescription
recommendationmail | caution | suppress | reviewOptionalSuggested action for this address.
confidencenumber 0–1OptionalHow confident the verdict is.
risklow | medium | high | undeliverableOptionalRisk band derived from the result and confidence — valid maps to low, invalid to undeliverable, traps and do-not-mail to high.

Responses

StatusDescription
200OK. A page of per-address results (address, result, sub_status, risk, recommendation, MX and role/disposable flags, …) with total, page and limit.
401Missing or invalid API key.
404No bulk job with this id on your account.

Code examples

cURL
curl https://api.wemail.io/v3/validate/bulk/{jobId}/results \
  -H "Authorization: Bearer afn_live_…"
Node.js
const res = await fetch("https://api.wemail.io/v3/validate/bulk/{jobId}/results", {
  headers: {
    Authorization: `Bearer ${process.env.WEMAIL_API_KEY}`,
  },
});
const data = await res.json();
Python
import os, requests

r = requests.get(
    "https://api.wemail.io/v3/validate/bulk/{jobId}/results",
    headers={"Authorization": f"Bearer {os.environ['WEMAIL_API_KEY']}"},
)
data = r.json()