The execution layer for AI agents

Your agent decided to send it. Truncus makes sure it actually happened.

The only email API built for autonomous agents. Synchronous delivery confirmation, durable operations, delivery guarantees, and governance — in one API.

Traditional email APIs weren't built for agents

They return a message ID and hope for the best. Your agent can't hope. It needs to know:

  • Did the email actually get delivered?
  • If it bounced, why? Is it retryable?
  • If the provider went down, did it fail silently?
  • Is the agent sending too many emails?
  • Can I kill this agent's email access instantly if something goes wrong?

Truncus answers all of these. In the same API call.

Agent sends invoice with delivery proof

Synchronous — agent knows immediately if it worked

agent.py
from truncus import Truncus

truncus = Truncus(api_key="tr_live_xxx")

# Synchronous — agent knows immediately if it worked
result = truncus.emails.send_sync(
    from_address="billing@yourapp.com",
    to=customer.email,
    subject=f"Invoice #{invoice.id}",
    html=render_invoice(invoice),
)

if result.status == "delivered":
    mark_invoice_sent(invoice.id)
    log(f"Delivered in {result.latency_ms}ms")
elif result.status == "bounced":
    flag_invalid_email(customer.id)
    log(f"Bounce: {result.intelligence.explanation}")

Durable operation with retry across providers

Truncus handles retries and provider failover automatically

agent.py
# Create a durable operation — Truncus handles retries
op = truncus.operations.create(
    type="email.send",
    delivery_guarantee="at_least_once",
    params={
        "from": "support@yourapp.com",
        "to": user.email,
        "subject": "Your account is ready",
        "html": welcome_html,
    },
    retry_policy={"max_retries": 3, "backoff_ms": 5000},
)

# Check later (or let the webhook notify you)
status = truncus.operations.get(op.operation_id)
# { status: "completed", attempts: 1, provider: "ses" }

Pre-flight check before sending

Validate before wasting a send or risking reputation

agent.py
# Validate before wasting a send
check = truncus.emails.validate(
    from_address="agent@yourapp.com",
    to=prospect.email,
)

if check.recommendation == "do_not_send":
    skip_prospect(prospect.id, reason=check.checks.spam_risk)
elif check.confidence_score > 0.8:
    truncus.emails.send_sync(...)

Everything agents need

Execution certainty

send_sync

Synchronous delivery confirmation. 1.04s average. One call, one answer.

Operations API

Durable operations with lifecycle tracking. Create, retry, cancel.

Delivery guarantees

best_effort / at_least_once / exactly_once. Choose per email.

Reliability

Multi-provider failover

SES primary. Postmark, Mailgun, SendGrid as automatic failover.

Global message identity

One ID persists across retries and provider switches.

Content deduplication

Prevents agent loops from sending duplicate emails.

Intelligence

Pre-send validation

Confidence scoring, spam risk, domain health. Know before you send.

Post-send intelligence

Failure explanations and recommended next actions.

Inbound classification

Detect replies, unsubscribes, complaints, auto-replies.

Safety

Kill switch

Instant shutdown per agent or account. One API call.

Recipient cooldowns

Prevent over-emailing the same address.

Reputation engine

Auto-throttle agents with high bounce or complaint rates.

Works with your agent stack

MCP

197 tools on npm — works in Claude Desktop

Python SDK

pip install truncus

Node SDK

npm install @truncus/email

REST API

Any language, any framework

CLI

npm install -g @vanmoose/truncus-cli

Your Agent (LangChain / CrewAI / AutoGen / Custom)

Truncus

Execute, validate, govern, observe

SES

Postmark

Mailgun

SendGrid

Pricing

All plans include send_sync, Operations API, delivery guarantees, and governance.

Free

$0

3,000 emails/month

Pro

$19/mo

50,000 emails/month

Scale

$99/mo

300,000 emails/month

Send your first email with delivery confirmation

Free tier. 3,000 emails/month. No credit card. 30 seconds to first send.

Start free
Truncus for AI Agents — The Execution Layer for Agent Communication