Why do so many B2B emails come back unknown or accept-all?

Separate the two labels first, since they have different causes. Accept-all, which ZapBounce reports as catch_all, is a finding: the domain accepted a made-up address as well as yours. Unknown is no finding at all, because the server never gave a usable answer. A verifier that lumps both into one "risky" pile makes the problem look bigger and harder to fix.

ZapBounce names the reason on every unknown row, and there are six. A greylisted row got a first-contact 4xx that clears on a retry. Throttled and probe_blocked rows hit a server that limited or refused probe traffic, which Microsoft 365 and Gmail do to cloud IPs. Timeout, temporary_failure and cannot_verify (a 252 reply) cover the rest.

Business lists lean toward exactly these servers. Companies buy security gateways that answer on the mailbox's behalf, and Microsoft 365 rate-limits aggressively. Yahoo-hosted domains return 250 or 252 to every recipient on purpose. You're verifying against servers built to give away as little as possible.

Business addresses are hard for every tool. Hunter's benchmark of 15 verifiers on 3,000 real business addresses (3 November 2025) measured overall accuracy between 31.2% and 70.0%. That spread is why ZapBounce reports two numbers together: how much of your list reached a verdict, and how accurate those verdicts are.

Lower your unknown share with a slower second pass. Re-check unknown rows a day or two later, once greylisting has cleared and rate limits have reset, and send catch_all rows in a small watched batch after your valid ones. ZapBounce never bills an unknown, so a high unknown share never inflates your bill. The full rule is on ZapBounce pricing.

Does a high unknown rate mean my list is bad?

No. Unknown means the server declined to answer, not that the address is dead. Re-check the rows a day or two later, once greylisting and rate limits clear, and hold back the rows that stay unknown.

What is the difference between unknown and accept-all?

Accept-all, or catch-all, means the domain accepted a made-up address, so it accepts everything. Unknown means the server gave no usable answer. ZapBounce reports catch_all and unknown as separate results with separate billing.

Why do Yahoo addresses come back unknown or accept-all?

Yahoo and AOL return 250 or 252 to every recipient on purpose to defeat address harvesting, then bounce later. For that reason Yahoo-hosted domains effectively always classify as catch-all.

Am I charged for unknown results?

Not at ZapBounce. Unknown results, duplicates and errors never use a credit. You pay one credit for valid, invalid or catch_all, from $5 for 1,000 checks.

Check this against your own list

100 free credits a month, no card. Unknown results come back labeled and are never billed.