Reference

Status & error codes

Every verdict BounceShift can return, what it means, and whether it's safe to send — plus HTTP codes and the exceptions each SDK raises.

Validation statuses

Every result carries a status and a 0–100 confidence score. An address is safe to send when its status is valid or catch_all. We report an honest unknown rather than a false valid when a probe is inconclusive — see how we measure accuracy.

StatusMeaningSafe to send?
valid The mailbox exists and is safe to send to. Yes
invalid Confirmed undeliverable — bad syntax, no MX records, or no mailbox. Remove it. No
risky Deliverable but elevated risk — for example a catch-all with no positive signals. No
catch_all An accept-all domain: the individual mailbox cannot be confirmed. Confidence reflects deliverability likelihood — send with caution. Yes
unknown The probe was inconclusive (greylisting, throttling, a blocked port). Retry later — this is not the same as invalid. No
disposable A throwaway address from a temporary-mail service. No
spamtrap A spam trap used to catch poor list hygiene. Never send. No
abuse A known complainer / abuse address. Never send. No
do_not_mail A forwarding service or an address you should not mail. No

Sub-statuses

Alongside the headline status, each result includes a granular sub_status explaining why. Common values include:

HTTP response codes

CodeMeaning
200Success — the address was validated.
400Bad request — invalid parameters, or no organization selected.
401Unauthorized — invalid or missing API token.
402Payment required — insufficient credits.
403Forbidden — the token lacks the required permission, or the organization is invalid.
404Not found — the resource does not exist.
422Unprocessable entity — request validation failed.
429Too many requests — rate limit exceeded (60 requests/minute).

SDK exceptions

The official SDKs map error responses to typed exceptions so you can catch each case:

HTTPPHP / LaravelNode
401AuthenticationExceptionAuthenticationError
402InsufficientCreditsExceptionInsufficientCreditsError
403ForbiddenExceptionForbiddenError
429RateLimitExceptionRateLimitError
otherApiException / BounceShiftExceptionApiError / BounceShiftError

Rate-limit errors expose the retryAfter value; both SDKs also retry 429 and 5xx automatically with a clamped backoff.

See also

Learn

Why we abstain instead of guessing

Ready to Try BounceShift?

Get 100 free validations to test our service. No credit card required.

Start Free Trial