01
Transactional
Send single or batch emails with idempotency keys, scheduling, tags, and attachments. The API is shaped like the one you already know.
Transactional + marketing email
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
Send single or batch emails with idempotency keys, scheduling, tags, and attachments. The API is shaped like the one you already know.
02
Audiences, contacts, and broadcasts with one-click unsubscribe and List-Unsubscribe headers by default. Compliance isn't an afterthought.
03
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
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
Create an API key.
Add your domain. Your agent publishes the DNS records we return and calls verify_domain.
Send transactional email or create a broadcast.
Watch events by webhook or API. Guardrails handle the rest.
04Compared
| Capability | Typical email API | AgentSend |
|---|---|---|
| Transactional + marketing | Often separate products | One API |
| Pre-send linting | None | Built in, with machine-readable fixes |
| Budgets per API key | Rare | Built in |
| MCP tools | Community or none | Native |
| Agent-completable domain setup | Partial | Yes |
Free to start. Pro at $20/mo. Same price as the tools you're replacing.
See pricing05FAQ
Yes. The REST shape is deliberately familiar, so switching is mostly a base URL and key change.
Yes. Audiences, contacts, and broadcasts, with unsubscribe handled.
You get {error: {code, reason, fix}} and a guardrail.blocked event. Nothing reaches the recipient.
No. AgentSend is for product and opted-in marketing email, and abuse policy is enforced.
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.