App email
The emails your app sends, from your own domain.
Send receipts, sign-in links, and password resets through a REST API or SMTP relay, from the domain your customers already know. Follow every email with signed webhooks. The API is compatible with Resend's, so Resend SDKs work once you change the base URL.
How it works
What app email does for you
REST API or SMTP relay
POST an email with HTML or text, attachments, custom headers, and tags. Or point your framework's SMTP settings at smtp.chebu.email and sign in with an API key. Either way, mail goes out from a domain you've verified.
Batches and scheduling
Send up to 100 emails in one request. Schedule an email up to 30 days ahead with a date or a phrase like "in 1 hour", then reschedule or cancel it before it goes.
Retries that never send twice
Add an Idempotency-Key header and a retried request returns the original response instead of sending again. Keys last 24 hours.
Signed webhooks
Get sent, delivered, delayed, bounced, complained, opened, clicked, and failed events at your endpoint. Every request is signed with the Standard Webhooks scheme and retried on a schedule if your server is down.
Tracking and suppressions
Turn on open and click tracking per domain. Hard bounces and spam complaints go on a suppression list automatically, so you stop mailing addresses that can't or don't want to receive.
Compatible with Resend
Paths, request bodies, and error shapes match Resend's API. Moving over is usually a new API key and a new base URL: https://api.chebu.io.
Getting set up
Three steps and you're done
- 1
Verify your domain
Add the domain your app sends from. Chebu lists the DKIM, MAIL FROM, and DMARC records to add and checks them for you.
- 2
Create an API key
Create a key with full access or sending-only access, and restrict it to one domain if you like. The key is shown once.
- 3
Send your first email
POST to /emails, or use SMTP relay. Add a webhook to follow what happens to each email after it leaves.
FAQ
Common questions
Which plans include the API and SMTP relay?
Every Business plan: Mini, Business, and Enterprise. The free Personal plan doesn't. API and relay sends share the plan's monthly allowance with mailbox mail, and each email counts once however many recipients it has.
Can I keep my Resend code?
Usually, yes. The paths, request bodies, and error shapes match Resend's API. Set your Resend SDK's base URL to https://api.chebu.io and use a Chebu API key. The developer docs show how for Node, Python, Go, and PHP.
How do I know an email was delivered?
Subscribe a webhook to email.delivered, email.bounced, and the other events you care about. You can also fetch any email by its ID and read its last_event.
What happens to addresses that bounce?
Hard bounces, spam complaints, and repeated soft bounces add the address to your suppression list, and later sends to it are skipped. You can see the list and remove an address through the API.
Are there sending limits?
Each API key can make 10 requests a second by default. An email can have up to 50 recipients and 40 MB of attachments, and a batch can hold 100 emails. Monthly sends follow your plan.
Spend less time in email tools.
Set up your inbox, your domain, and your team in one sitting.