Getting started
Quickstart: send your first email
Verify a domain, create an API key, and send an email from your app in a few minutes.
The Chebu API is REST over HTTPS with JSON bodies, served at https://api.chebu.io. It sends email from domains you've verified in your workspace, and it follows Resend's API, so Resend SDKs work too.
1. Verify a domain
In the Chebu app, open your Business workspace settings and add the domain you send from, such as northwind.studio. Chebu lists a DKIM record, a MAIL FROM record pair, and a DMARC record. Add them at your DNS provider. Chebu checks them for you, and the domain shows as verified once they're live. You can also add domains through the API.
2. Create an API key
In workspace settings, open API keys and create a key. Give it sending access if it only needs to send. The key is shown once, so store it as a secret, for example in an environment variable:
export CHEBU_API_KEY="ck_Ab12Cd34_9f8e7d6c5b4a39281706f5e4d3c2b1a0"3. Send an email
/emailscurl -X POST https://api.chebu.io/emails \
-H "Authorization: Bearer $CHEBU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Northwind <[email protected]>",
"to": ["[email protected]"],
"subject": "Your receipt #1042",
"html": "<p>Thanks for your order.</p>"
}'{
"id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c"
}The id identifies the email from now on. The from address must be on a verified domain in the same workspace.
4. Follow delivery
Fetch the email to see its last_event, or add a webhook to get email.delivered, email.bounced, and other events as they happen.
/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33ccurl https://api.chebu.io/emails/4ef9a417-02e9-4d39-ad75-9611e0fcc33c \
-H "Authorization: Bearer $CHEBU_API_KEY"{
"object": "email",
"id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
"from": "Northwind <[email protected]>",
"to": ["[email protected]"],
"cc": [],
"bcc": [],
"reply_to": ["[email protected]"],
"subject": "Your receipt #1042",
"html": "<p>Thanks for your order.</p>",
"text": "Thanks for your order.",
"created_at": "2026-09-27T10:04:12.418Z",
"scheduled_at": null,
"last_event": "delivered",
"tags": [
{ "name": "category", "value": "receipt" }
]
}Next steps
- Send email: attachments, tags, headers, and scheduling.
- Idempotency: retry safely without sending twice.
- Webhooks: events, payloads, and signature checks.
- Usage and limits: rate limits and monthly quotas.