Overview
Business Email sends transactional mail (Amazon SES by default) and can sync marketing contacts to Resend, Mailgun, or Brevo when configured. Create a Business Email API token so your server or agent can only access email resources—the same least-privilege model as a Cloudflare API token.
| Item | Value |
|---|---|
| Service | Business Email |
| Status | Public Email API live · dashboard Mail API live |
| Permissions | email:send · email:read |
| Live token shape | umk_live_email_<prefix>_<secret> |
| Test token shape | umk_test_email_<prefix>_<secret> |
| Dashboard | Dashboard → Business Email |
| OpenAPI | /developers/openapi-business-email.json |
| Docs (AI) | /developers/business-email.md |
Get started
- Enable Business Email in Dashboard → Billing. Paid plans require an active Business Email subscription.
- Confirm email providers are configured (platform admin: Admin → Settings → Email). Default send provider is Amazon SES; optional Resend, Mailgun, or Brevo for marketing lists.
- Open Dashboard → Business Email to check provider status and send a test message.
- Dashboard → Developers → create an API token. Product: Business Email. Permissions: email:send and/or email:read. Environment: live or test. Optional IP allowlist.
- Copy the secret once. Store it only on your server or agent runtime—never in browsers or mobile apps.
- Call POST /v1/email/messages with your token.
API tokens
An API token lets an agent access Business Email only—not Live Chat, calling, or billing. Prefer the narrowest permissions for the job.
Authorization: Bearer umk_live_email_<prefix>_<secret>
# or
X-API-Key: umk_live_email_<prefix>_<secret>
API base: https://umneyconnect.com/api| Permission | Allows |
|---|---|
| email:send | Send messages and upsert marketing contacts on the public Email API |
| email:read | Read message status and activity on the public Email API |
Full token guide: /developers/api-tokens
Concepts
| Resource | Description |
|---|---|
| Message | Outbound transactional send (to/cc/bcc, subject, text/html, tags, attachments) |
| Marketing contact | Email + profile fields synced into configured provider lists/audiences |
| Provider status | Which backends are ready—without exposing secrets |
| From identity | Workspace default From; optional per-send override when the domain is authorized |
| Activity | Delivery / send activity for operators (metadata.source=email_v1) |
Dashboard Mail API
Uses the signed-in workspace session (JWT). Sending and contact sync require an organization or tenant administrator. If Business Email is a paid add-on for the workspace, that subscription must be active.
| Method | Path | Who | Throttle | Purpose |
|---|---|---|---|---|
| GET | /api/mail/status | Signed-in users | — | Provider readiness + whether Business Email is entitled |
| POST | /api/mail/send | Admins | 30 / minute | Send transactional mail |
| POST | /api/mail/marketing/contact | Admins | 60 / minute | Upsert marketing contact |
POST /api/mail/send
{
"to": ["customer@example.com"],
"cc": [],
"bcc": [],
"subject": "Your receipt",
"text": "Thanks for your order",
"html": "<p>Thanks for your order</p>",
"from": "optional@your-verified-domain.com",
"replyTo": "support@example.com",
"headers": { "X-Campaign": "receipt" },
"tags": ["receipt"],
"attachments": [
{ "filename": "receipt.pdf", "contentBase64": "…", "contentType": "application/pdf" }
]
}GET /api/mail/status returns which providers are ready (SES, Resend, Mailgun, Brevo), whether a default From is configured, marketing list configuration flags, and whether this workspace is entitled to Business Email. It never returns provider secrets.
Public Email API (token)
Stable paths for Business Email API tokens — live.
| Method | Path | Permission | Status |
|---|---|---|---|
| POST | /v1/email/messages | email:send | Live |
| GET | /v1/email/messages | email:read | Live |
| GET | /v1/email/messages/{id} | email:read | Live |
| POST | /v1/email/contacts | email:send | Live |
| GET | /v1/email/status | email:read | Live |
Public send
curl -X POST "https://umneyconnect.com/api/v1/email/messages" \
-H "Authorization: Bearer $EMAIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": ["customer@example.com"],
"subject": "Your receipt",
"html": "<p>Thanks for your order</p>",
"text": "Thanks for your order",
"tags": ["receipt"]
}'Providers
- Transactional default: Amazon SES
- Optional send backends: Resend, Mailgun, Brevo (when enabled in Admin → Settings → Email)
- Marketing sync: Resend audience, Mailgun mailing list, Brevo lists
- Secrets stay in platform settings—status endpoints never return API keys
Errors and limits
- 403 — Business Email not entitled, wrong product token, or missing permission
- 429 — send 30/min; contacts 60/min; list/status 120/min
- Provider errors — misconfigured From domain or disabled provider (check GET /v1/email/status)
Agent recipe
# 1. Enable Business Email in Billing
# 2. Developers → create token → product "Business Email" → email:send
CONNECT_API_BASE=https://umneyconnect.com/api
EMAIL_API_KEY=umk_live_email_…
# 3. Read /developers/business-email.md before answering
# 4. Public token: POST /v1/email/messages
# 5. Dashboard admin JWT: POST /api/mail/send
# 6. Never embed the token in clients