Truncus is the email execution layer for SaaS teams who can't afford silent failures. send_sync confirms the receiving mail server accepted each password reset and invoice — or hands you the exact error, fast.
Your user resets their password. You send the email through your email API. You get a 200 OK. But did the mail server actually accept it? You don't know. Your user waits. Refreshes. Opens a support ticket. You check logs — “sent” but no delivery confirmation.
With Truncus, your code knows the receiving mail server accepted the email before you move on — or gets the exact error if it didn't.
// Before (any other email API)
await resend.emails.send({ to, subject, html });
// Returns: { id: "msg_xxx" }
// Did it go through? No idea.
# After (Truncus)
curl -X POST https://truncus.co/api/v1/emails/send_sync \
-H "Authorization: Bearer tr_live_…" \
-H "Idempotency-Key: <uuid>" \
-d '{ "from": "billing@yourapp.com", "to": "customer@example.com",
"subject": "Your invoice", "html": "<p>Thanks.</p>" }'
# Returns:
{
"message_id": "cmvxr6q4q000120ajvvjpxhq8",
"global_message_id": "gm_8b96f356-f7e9-472e-bbe4-88a9be1651b5",
"status": "delivered",
"delivered_at": "2026-11-01T11:35:11.909Z",
"smtp_response": "250 2.0.0 Ok: queued as 4jHXnV4rtkz9vNPx",
"latency_ms": 2080
}
# "delivered" = the receiving mail server accepted it. You KNOW.Delivery confirmation in the same API call. Not "check your webhook later."
AWS SES in Ireland (eu-west-1). Circuit breakers detect failures fast and surface the exact error — no silent failures.
Failed sends enter a durable retry queue (30s/2m/8m/30m/2h backoff). Dead-letter recovery. Replay API.
Sending from Ireland, email data stored in Frankfurt. No add-on needed.
Don't waste sends on bouncing addresses. Confidence scoring.
Every send logged with its outcome. Provider health API for monitoring.
Switching from your current email API? Truncus speaks the same language.
// Most email APIs
await emailApi.send({ from, to, subject, html });
// Returns 200 OK... but did the mail server accept it? You don't know.
# Truncus — synchronous delivery confirmation
curl -X POST https://truncus.co/api/v1/emails/send_sync \
-H "Authorization: Bearer tr_live_…" \
-H "Idempotency-Key: <uuid>" \
-d '{ "from": "billing@yourapp.com", "to": "customer@example.com",
"subject": "Your invoice", "html": "<p>Thanks.</p>" }'
# Returns:
{
"message_id": "cmvxr6q4q000120ajvvjpxhq8",
"global_message_id": "gm_8b96f356-f7e9-472e-bbe4-88a9be1651b5",
"status": "delivered",
"delivered_at": "2026-11-01T11:35:11.909Z",
"smtp_response": "250 2.0.0 Ok: queued as 4jHXnV4rtkz9vNPx",
"latency_ms": 2080
}Same request shape. Better outcome.
All plans include send_sync, batch API, scheduled sends, and sandbox mode.
Free
€0
3,000 emails/month
For testing and dev
Pro
€19/mo
50,000 emails/month
For shipping products
Scale
€99/mo
300,000 emails/month
For serious infrastructure
USD pricing applies outside the EU
Free tier. 3,000 emails/month. No credit card. Same request shape, better outcome.
Start free