Zerokit
Emails

Send email

Queue a transactional email for delivery. Returns immediately with the email ID — SES handoff happens in the background. Subscribe to a [webhook](/docs/webhooks) to learn about delivery, bounces, opens, and clicks. The `from` domain must be verified for the workspace — see the [Quickstart](/docs/quickstart) for the DNS records.

POST
/emails

Queue a transactional email for delivery. Returns immediately with the email ID — SES handoff happens in the background. Subscribe to a webhook to learn about delivery, bounces, opens, and clicks.

The from domain must be verified for the workspace — see the Quickstart for the DNS records.

Authorization

bearerAuth
AuthorizationBearer <token>

Workspace-scoped API key issued via the dashboard. Send as Authorization: Bearer zk_live_... on every request.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/emails" \  -H "Content-Type: application/json" \  -d '{    "from": "Acme <[email protected]>",    "to": [      "[email protected]"    ],    "subject": "Welcome to Acme",    "html": "<p>Hello Jane</p>",    "text": "Hello Jane"  }'
{
  "id": "email_2bV4dXyZ8AfQpkw7Lp",
  "status": "queued"
}
{
  "error": "The from domain is not verified for this organization."
}
{
  "error": "Invalid or missing API key."
}
{
  "error": "Daily send limit reached (100 / day on Free). Upgrade your plan or wait until tomorrow."
}