What is a catch-all domain?
A domain whose mail server accepts email for every address: anna@, sales@ and xk29qz@ all get a 250 OK. Companies set this up so that mail with a misspelled name still arrives, or because it is the default in some mail systems.
Why verifiers call them “risky”
Email verification asks the server whether it accepts a recipient (see how to check if an email exists). On a catch-all domain the answer is always yes, so the check proves nothing about the individual mailbox. The mail may reach a real person or a shared catch-all inbox nobody reads, or it may bounce later.
How to detect a catch-all domain
Ask the server about an address that certainly does not exist, like a long random string. If it is accepted, the domain is catch-all. The email validation API runs this test when you ask for it: add catch_all=1 to the request (paid plans from Small) and an accept-all domain comes back with catch_all: true. Without the parameter, catch_all is null. For domains we already know to be catch-all, the mailbox check is skipped and the address comes back as deliverable with the reason low_deliverability (the free checker shows it as Catch-all). The free check Is this a real email address? does not run the catch-all test.
How to handle catch-all addresses
- Keep them separate from verified addresses.
- Send in small batches and watch the bounces: they hurt your email deliverability like any others.
- Prioritize engagement: remove addresses that never open or click after a few sends.
- Use other signals: a named address (
anna.berg@) on a company domain is far more likely to reach a person who reads it than a role address likeinfo@.