Transactional + marketing email

Email your agents can send.

Transactional and marketing email through one API, MCP server, and CLI. Built so an agent can set up a domain, send, and run a broadcast without wrecking your sender reputation.

Free to start · sandbox delivery while sending goes live

curl $AGENTSEND_URL/api/v1/emails \
  -H "Authorization: Bearer $AGENTSEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <hello@acme.com>",
    "to": ["dana@example.com"],
    "subject": "Your login link",
    "html": "<p>Click <a href=\"https://acme.com/l/abc\">here</a> to sign in.</p>"
  }'
# {"id": "…", "status": "delivered", "warnings": []}

01Problem

Agents now write your password-reset emails, wire up your sending domain, and draft your launch broadcast. Email APIs still assume a careful human is on the other end. One unrendered {{first_name}}, one retry loop, or one missing unsubscribe link reaches thousands of inboxes before anyone notices.

# "html": "<p>Hi {{first_name}}, your trial ends…</p>"

HTTP/1.1 422
{
  "error": {
    "code": "unrendered_template",
    "reason": "Unrendered template variables: {{first_name}}.",
    "fix": "Render every template variable before calling send."
  }
}

02What you get

01

Transactional

Send single or batch emails with idempotency keys, scheduling, tags, and attachments. The API is shaped like the one you already know.

02

Marketing

Audiences, contacts, and broadcasts with one-click unsubscribe and List-Unsubscribe headers by default. Compliance isn't an afterthought.

03

Guardrails before send

Every email is linted before it leaves: unrendered variables, empty bodies, unverified from domains, missing unsubscribe links, duplicates, and budget overruns. When we block a send, the agent gets the reason and the fix.

04

Built for agents

MCP tools for every operation, and domain setup that tells your agent exactly which DNS records are missing. Agents get first-class tools here, not a wrapper written after the fact.

03How it works

  1. step 1

    Create an API key.

  2. step 2

    Add your domain. Your agent publishes the DNS records we return and calls verify_domain.

  3. step 3

    Send transactional email or create a broadcast.

  4. step 4

    Watch events by webhook or API. Guardrails handle the rest.

04Compared

CapabilityTypical email APIAgentSend
Transactional + marketingOften separate productsOne API
Pre-send lintingNoneBuilt in, with machine-readable fixes
Budgets per API keyRareBuilt in
MCP toolsCommunity or noneNative
Agent-completable domain setupPartialYes

Free to start. Pro at $20/mo. Same price as the tools you're replacing.

See pricing

05FAQ

Is this a Resend replacement?+

Yes. The REST shape is deliberately familiar, so switching is mostly a base URL and key change.

Can I send marketing email?+

Yes. Audiences, contacts, and broadcasts, with unsubscribe handled.

What happens when a guardrail blocks a send?+

You get {error: {code, reason, fix}} and a guardrail.blocked event. Nothing reaches the recipient.

Cold email?+

No. AgentSend is for product and opted-in marketing email, and abuse policy is enforced.

Is delivery live?+

Not yet. Today every send runs through the full pipeline (guardrails, events, webhooks, suppression) on sandbox delivery, and nothing leaves for the internet. The production sending provider plugs in behind the same API.

Your agent can already write the email. Let it send it safely.

Start sending