Know what happened
Search by application, domain, recipient, subject, and state. Follow each message from acceptance through delivery, bounce, or complaint. An accepted request is never shown as delivered.
Send verification codes, receipts, and product updates through one API. See what SES accepted, what reached a recipient server, and what needs attention.
Illustrative interface. Live states come from SES events.
Made for teams that need to send confidently and investigate quickly.
Search by application, domain, recipient, subject, and state. Follow each message from acceptance through delivery, bounce, or complaint. An accepted request is never shown as delivered.
Prove ownership, add SES DKIM records, and see verification progress before sending.
Issue a key for one application and domain. Rotate or revoke it without exposing the secret again.
Clear monthly allowances and hard limits. No surprise overage bill.
Outbound sending uses SES. Human mailboxes and webmail remain a separate service.
Own the domain, create a scoped credential, and send through a small, familiar API.
Add the ownership and SES DKIM records shown in your dashboard.
Scope it to the domain and keep the one-time secret on your server.
Filter activity and see acceptance and recipient-server delivery separately.
Monthly CAD plans. One email to one recipient counts as one unit. No automatic overages.
For a focused project finding its rhythm.
For products with more moving parts.
For steady transactional volume.
Negotiated volume, pricing, and operating needs.
Plan limits are under launch review. Checkout opens after final SES, cost, and tax verification. Sending stops at the included limit until the next period or a plan change.
Send from a verified address with a server-side key. Keep the same idempotency key when retrying an uncertain request. The response means SES accepted a submission; delivery arrives later as an event.
Read the API guide ↗POST /v1/messages
Authorization: Bearer es_live_••••••••
Idempotency-Key: job-68f4f893
Content-Type: application/json
{
"from": "hello@yourdomain.com",
"to": ["person@example.com"],
"subject": "Welcome aboard",
"text": "Your account is ready."
}
→ 202 { "status": "accepted", "id": "…" }