The email API for AI agents.
Give your agent a real email address in one call. Programmatic inboxes, Resend-compatible sending, and forwarding Routes in a single key - with built-in human-in-the-loop approvals. EU-resident by default.
curl https://threadcamp.vercel.app/v1/inboxes \
-H "Authorization: Bearer sk_live_..." \
-d '{ "domain": "acme-agents.email", "display_name": "Support Agent" }'
# -> { "id": "inbox_...", "address": "support-agent@acme-agents.email" }Stop gluing three services together.
Today, giving an agent identity, sending and forwarding means bolting an inbox API to a sending API to a forwarding service. ThreadCamp is all three, reconciled behind one key.
Inboxes as a primitive
POST /v1/inboxes creates a real, addressable inbox with threads, messages, reply/forward, attachments and labels. Scoped keys and idempotency built in.
Resend-compatible sending
POST /v1/emails accepts the Resend payload - plus scheduled_at and batch, which AgentMail lacks entirely.
Forwarding Routes with SRS
Per-domain catch-all and alias Routes forward to any address, webhook or inbox - with SRS rewrite so SPF and DMARC survive the hop.
Custom domains, automated DNS
Add a domain, get the full MX/SPF/DKIM/DMARC record set, verify. We manage alignment for you.
Human-in-the-loop approvals
Per-inbox autonomy: auto, approve-first, or notify. The one feature no competitor ships.
Signed webhooks + event log
message.received/sent/delivered/bounced, domain.verified - HMAC-signed, with an inspectable request log.
Human-in-the-loop approvals
The category's biggest objection is blast radius: what if the agent emails the wrong person, at scale? Set an inbox to approve-first and every agent send lands as a pending draft. A human approves in one click - and the approval is what actually sends it.
How approvals work →POST /v1/inboxes
{ "domain": "acme-agents.email",
"autonomy": "approve-first" }
// agent tries to send ->
{ "status": "pending_approval",
"approval_id": "apr_..." }
// human clicks Approve ->
{ "status": "sent" }Already using Resend? Change two lines.
The send endpoint speaks the Resend payload shape. Point at ThreadCamp and you get inbound inboxes, forwarding and scheduled send for free.
// Drop-in Resend-compatible send - swap the base URL + key
await fetch("https://threadcamp.vercel.app/v1/emails", {
method: "POST",
headers: { Authorization: "Bearer sk_live_...", "Content-Type": "application/json" },
body: JSON.stringify({
from: "agent@acme-agents.email",
to: ["customer@example.com"],
subject: "Your receipt",
text: "Thanks for your order.",
scheduled_at: "2026-08-01T09:00:00Z" // AgentMail can't do this
}),
});Free, then $19, then $79.
Questions
How do I give an AI agent its own email address?
Call POST /v1/inboxes with an API key. ThreadCamp returns a working address in milliseconds on the shared in.threadcamp.com domain (free) or your own custom domain. The agent then reads inbound mail via signed webhooks or polling, and sends with the same key.
Can AI agents send email safely?
Yes. Each inbox has an autonomy policy: auto, approve-first, or notify. Under approve-first, an agent's send lands as a pending draft in a human approval queue; a one-click approval executes the send. Combined with scoped keys, sandbox mode, rate limits and bounce auto-pause, this bounds an agent's blast radius.
Is ThreadCamp a drop-in Resend alternative?
The POST /v1/emails endpoint accepts the Resend payload shape, so you migrate by changing the base URL and key. ThreadCamp adds inbound inboxes, threads, forwarding Routes and scheduled send on top of sending.
Give your agent an inbox in the next minute.
No credit card. Full API, MCP and webhooks on the free tier.