Get started
Test and live mode
Build and test everything with a test key. Nothing reaches a real inbox until a person on your team decides to go live.
What a test key does
- Renders the email exactly as it would be sent, logs it, and marks it
deliveredright away. - Keeps a copy in the test inbox, so you can read what your users would get.
- Runs sequences and broadcasts too: their emails also go to the test inbox.
- Fires webhooks with
environment: "test"in the payload, so you can build your handlers.
Simulating problems
The recipient address picks the outcome, in test mode and in local development:
| Address contains | What happens |
|---|---|
bounce | Hard bounce. The address is suppressed, like a real bounce. |
soft | Soft bounce: a temporary failure. |
complain | Delivered, then marked as spam. |
| anything else | Delivered. Marketing email is sometimes opened and clicked, so you see real-looking stats. |
For example, bounce@example.com lets you check what your app does with an email.bounced webhook.
Going live
Live keys send real email once the account is live. Going live takes two things:
- A verified sending domain. Add it, add the DNS records, then verify.
- A person clicks Go live in the web app. API keys can't do this.
Before that, live keys get 403 test_mode_only. After it, swap sk_test_ for sk_live_ in your production environment; the code stays the same.
Keep using test keys after you go live
Test keys keep working on a live account. Use them in development, CI and for AI agents, so nothing they do reaches real people.