Emails
Org email addresses, outbound send, inbound receive, and replies.
Email routes manage org-owned addresses, outbound send through SES, inbound receive, and threaded replies. The dashboard surface is /<orgSlug>/emails.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v1/emails | List received emails. |
GET | /api/v1/emails/:id | Get email details. |
POST | /api/v1/emails/send | Send an email via SES. |
POST | /api/v1/emails/:id/reply | Reply to an email thread. |
GET | /api/v1/emails/addresses | List org email addresses. |
GET | /api/v1/emails/domains | List verified email domains. |
POST | /api/v1/emails/domains | Add an org email domain and queue background verification lifecycle. |
POST | /api/v1/emails/inbound/ses | SES inbound webhook handler (provider ingress, not user-authenticated). |
Addresses and domains
GET /api/v1/emails/addresses lists addresses your org can send from. GET /api/v1/emails/domains lists domains verified for inbound routing. Org owners and admins can call POST /api/v1/emails/domains with { "domain": "example.com" } to add a domain; SES lifecycle verification continues through the background worker or admin sync route. Configure both from /<orgSlug>/emails before calling send routes.
Send and reply
POST /api/v1/emails/send accepts a structured payload with recipients, subject, and body. POST /api/v1/emails/:id/reply continues an existing thread using the stored message as context.
Inbound webhook
POST /api/v1/emails/inbound/ses is an AWS SES ingress endpoint. It is verified by provider signature, not org API keys. Use Webhooks for your own signed inbound receivers.