Getting Started
Introduction
What ZevSend is, how it's organised, and what you need to send your first message.
ZevSend is a transactional messaging API. Deliver application email the way Resend, Postmark, or SendGrid do — your codebase owns the body, we handle deliverability, signing, and the lifecycle events your app reacts to. Reach the same customers on SMS and WhatsApp through one auth, one response envelope, and one webhook signing scheme.
How it’s organised
A handful of concepts show up everywhere in the API. Knowing what each one does upfront makes the rest of the documentation read fast.
Teams
A team is the unit of billing and isolation. Every API key, domain, template, and message belongs to one team. If you work with collaborators, invite them to your team rather than sharing keys.
API keys
API keys authenticate every request. Keys are scoped to a single
team and look like sk_live_… or sk_test_…. See
Authentication for how to pass them.
Domains
A domain is the brand identity your messages send from. After
you verify ownership with DNS records, we use it as the from
address for email and as the brand context for SMS and WhatsApp.
See Domains and brand identity.
Templates
A template is the pre-approved content of a message. Templates
declare which variables they accept and which channel they target.
You reference them by id (tpl_…) when you send. See
Templates.
Messages
A message is one delivery attempt. Every send returns a public
id (eml_…, sms_…, wam_…) that you can use to look up state
or correlate webhooks.
Lifecycle at a glance
Every channel uses the same lifecycle vocabulary so you can write one set of handlers and they’ll work everywhere:
| State | Meaning |
|---|---|
queued | We accepted the send and it’s waiting to dispatch. |
sending | Handed off; awaiting acceptance from the network. |
sent | Accepted by the network and in transit. |
delivered | Confirmed at the recipient’s device. |
read | Recipient opened the message (WhatsApp only). |
bounced | Permanent delivery failure (email only). |
complained | Recipient flagged as spam (email only). |
failed | Rejected at submit or permanent delivery failure. |
Sandbox vs live
Every team starts in sandbox. In sandbox mode you can send real API calls and see them flow through the dashboard without risking real recipients. When you’re ready, request a live upgrade from your dashboard. Read Sandbox and live mode for the full picture.
Next step
If you have an account, go straight to the Quickstart.
Updated at, Thursday, October 1, 2026