Resend is a great developer email API. Truncus is a different category — the execution layer for systems that need guaranteed delivery, operational tracking, and governance. If your agent needs to send email AND know that it worked, Truncus is what you're looking for.
Side-by-side comparison of capabilities. Where we don't have a feature, we say so.
| Feature | Truncus | Resend |
|---|---|---|
| Synchronous delivery confirmation | Yes (send_sync — ~1s) | No |
| Operations API (durable sends) | Yes (delivery guarantees, retries, lifecycle) | No |
| Delivery guarantees | best_effort / at_least_once / exactly_once | Best effort only |
| Pre-send validation | Confidence score, spam check, domain health | No |
| Post-send intelligence | Failure analysis, recommended actions, lifecycle | No |
| Multi-provider failover | SES + Postmark + Mailgun + SendGrid | Single provider |
| Sandbox replay | Replay real event timelines for testing | No |
| Global message identity | One ID across sends, retries, providers | No |
| Content-based deduplication | Automatic (10-min window) | No |
| Account reputation engine | Auto-throttle on high bounce/complaint rates | No |
| Kill switch | Instant send suspension via API | No |
| MCP server | 197 tools (npm) | No |
| Agent discovery | agent.json, llms.txt, OpenClaw | No |
| CLI | @vanmoose/truncus-cli (send, ops, validate, domains) | Yes — with agent support (March 2026) |
| SDKs | Python + Node | 18 languages |
| EU data residency | Default (eu-west-1) | Available (add-on) |
| React Email support | Yes (via react field) | Yes (native) |
| Marketing emails | No | Yes (Audiences + Broadcasts) |
| Email editor | No | Yes |
| Multi-tenant (tenant_id per email) | Built-in | No |
| Scheduled sends | Yes (send_at field) | Yes |
| Batch API | Up to 100 emails per call | Yes |
| Inbound email processing | Yes (with intent classification) | Yes |
| Log retention (Pro) | 90 days | 30 days |
| Free tier | 3,000 emails/mo | 3,000 emails/mo |
| Pro pricing | $19/mo (50K emails) | $20/mo (50K emails) |
Truncus shipped agent-native tooling in early March 2026. Resend announced CLI agent support later that month.
Comparison based on publicly available information as of March 2026. Resend is a trademark of Resend Inc.
Truncus was designed for AI agents from day one. Resend is now adding agent support too — a sign the industry is moving this way. Here's what Truncus ships today.
Install @truncus/mcp-server in Claude Desktop or any MCP-compatible agent. 192 typed tools for sending, querying logs, and managing domains — all from natural language.
Pass a tenant_id on every email. Suppression lists, domains, and delivery logs are scoped per tenant — no workarounds needed.
/.well-known/agent.json lets any compliant agent discover Truncus capabilities automatically. Think robots.txt, but for AI agents.
Every API response follows a strict, machine-readable envelope with idempotency keys for safe retries. Agents can parse responses reliably without brittle string matching.
Both platforms are investing in agent support. Here's what shipped and when.
Agent-first from launch
@vanmoose/truncus-cli published to npm
MCP server published to npm (197 tools)
OpenClaw skill on ClawHub
.well-known/agent.json + llms.txt discovery
Idempotency keys, deterministic responses
Python SDK + Node SDK
Adding agent support to existing platform
CLI with agent support (announced)
Developer-focused SDKs (11+ languages)
React Email ecosystem, Audiences, Broadcasts
Both platforms now offer CLIs. Truncus additionally provides an MCP server with 197 tools, an OpenClaw skill, and agent discovery endpoints — infrastructure designed for autonomous agents, not just human developers.
Truncus is the right pick when:
Resend is the better choice when:
The APIs are nearly identical. Switching takes minutes, not days.
Before (Resend)
import { Resend } from 'resend'
const resend = new Resend('re_...')
await resend.emails.send({
to: 'user@example.com',
from: 'hello@yourapp.com',
subject: 'Your invoice is ready',
html: '<p>Thanks for your order.</p>'
})After (Truncus)
import { Truncus } from '@truncus/email'
const truncus = new Truncus({ apiKey: 'tr_live_...' })
await truncus.sendEmail({
to: 'user@example.com',
from: 'hello@yourapp.com',
subject: 'Your invoice is ready',
html: '<p>Thanks for your order.</p>'
})Change the import, swap the API key, and you are done. Same shape, same simplicity.
No credit card required. Get your API key in under a minute and start sending transactional email from the EU.
Create free accountFree tier includes 3,000 emails/month and 1 sending domain.