Test mode

API keys that begin with ev_test_ are test-mode keys. They return instant, canned results without touching DNS or SMTP, cost zero credits, and are designed for integration tests and CI pipelines.

How test mode works

The outcome returned depends on the local part of the email address submitted (everything before + or @, lowercased). Subaddress tags (e.g. invalid+foo@example.com) are ignored — only the base local part is matched.

Local part status sub_status
valid (or anything not listed below) valid ""
invalid invalid mailbox_not_found
catch_all catch-all accept_all
unknown unknown (varies)
disposable invalid disposable
role valid role_based

Examples

valid@any-domain.com      → status: valid,     sub_status: ""
invalid@any-domain.com    → status: invalid,   sub_status: mailbox_not_found
catch_all@any-domain.com  → status: catch-all, sub_status: accept_all
disposable@any-domain.com → status: invalid,   sub_status: disposable
role@any-domain.com       → status: valid,     sub_status: role_based
unknown@any-domain.com    → status: unknown

Subaddress tagging lets you exercise multiple outcomes in the same test without changing the recipient domain:

valid+01@example.com      → valid
invalid+01@example.com    → invalid

Full endpoint support

Test-mode keys work with all endpoints — single verify, batch, webhooks, and SSE — so you can run a full end-to-end integration test without spending credits or waiting for real SMTP probes.

Switching between test and live mode

Use a ev_test_ key in your CI environment and a live ev_ key in production. There is no other configuration change required — the same request shape works for both.