Developers
An API that behaves like you’d design it.
Versioned from day one, predictable errors with request IDs, idempotency where duplication hurts, and test keys that simulate everything. Boring in all the ways infrastructure should be boring.
$ curl https://api.calder.click/v1/emails \
-H "Authorization: Bearer calder_sk_live_…" \
-H "Idempotency-Key: welcome-user-4815" \
-d '{
"from": "app@acme.com",
"to": "ada@example.com",
"subject": "Verify your email",
"html": "<p>Your code…</p>"
}'Errors you can program against
Every failure returns the same shape — a machine-readable code, a human message, and the request ID to quote when asking for help. No HTML error pages, no mystery 500s, no digging through headers.
{
"error": {
"code": "domain_not_verified",
"message": "The sending domain has not been verified.",
"request_id": "req_9f2k41xq…"
}
}Rate limits
Generous where it matters, strict where it counts.
Every 429 carries limit, remaining, reset, and a Retry-After. No guessing games.
Get started
Go get your first delivery.
Not your first signup form, not your first dashboard tour — your first email, landing in an inbox, with the webhook to prove it. Test keys are free and can’t hurt anything. The only thing standing between you and that little delivered tag is one POST request.