Documentation
zSender is a transactional email API: send email over HTTP or SMTP, verify a sending domain, and read delivery events back, all through one JSON API built on top of a self-hosted mail server.
Base URL
Every request in this documentation is made against:
https://api.zsender.ioAuthentication
Every request carries your API key as a bearer token. Create a key from the dashboard, then pass it on every call:
Authorization: Bearer zs_a1b2c3d4_5e6f...See Authentication for the full shape of a key, what each permission gates, and how test-mode keys differ from live ones.
Where to go next
Guides
One page per topic, each going deeper than the reference tables: the "why" behind a field, not just its shape.
Sending email
Custom headers, threading a reply, transactional mail, tags, and recipient caps.
Domains
DNS records to publish, the two capabilities, pausing versus tearing down.
Webhooks
Create an endpoint, the eight events, signature verification, and retries.
Receiving email
Turn on a domain's receiving capability and read stored inbound mail back.
SMTP relay
Point an existing app at zSender's SMTP endpoint instead of the HTTP API.
Test mode
Send through the real pipeline, captured and never delivered.
Suppressions
When an address gets suppressed, what a send does about it, and one-click unsubscribe.
TypeScript SDK
Install, construct a client, send an email, and know what it retries for you.
Limits and reliability
Rate limits, quotas, and retrying a send without risking a duplicate.