v3.3 shipped — File Cache, Dedicated IPs, SMTP relay

Email infrastructure
for builders & agents.

Transactional sends, bulk batches, SMTP relay, dedicated IPs — wrapped in one API that LLM agents drive directly via MCP. Built on Cloudflare's edge.

Start sending free → Read the docs
3,000 emails/month on the free tier · no credit card required
POST /api/emails
$ curl -X POST https://api.mailgrid.space/api/emails \
    -H "Authorization: Bearer mb_live_..." \
    -H "Content-Type: application/json" \
    -d '{
      "from":    "hello@mailgrid.space",
      "to":      "user@example.com",
      "subject": "Welcome aboard",
      "html":    "<h1>Hi {{name}}</h1>",
      "variables": { "name": "Anna" },
      "streamId":  "transactional-prod"
    }'

// 200 OK · 187 ms
{
  "success":   true,
  "data": {
    "messageId": "0107019a-43cf-7e3d-9b8c-...",
    "status":    "sent",
    "to":        ["user@example.com"]
  }
}

Built on

Cloudflare Workers D1 SQLite R2 Storage AWS SES Workers AI · Llama 3.1 Hono Model Context Protocol Cloudflare Workers D1 SQLite R2 Storage AWS SES Workers AI · Llama 3.1 Hono Model Context Protocol

Drop-in API

Send in any language.

Same API shape as Resend or Postmark. Migrate in an afternoon, not a sprint.

send.sh
curl -X POST https://api.mailgrid.space/api/emails \
  -H "Authorization: Bearer $MAILGRID_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@yourdomain.com",
    "to": "user@example.com",
    "subject": "Order confirmed",
    "html": "<p>Thanks for your order!</p>"
  }'
import { Mailgrid } from '@mailgrid/sdk';

const mg = new Mailgrid(process.env.MAILGRID_KEY);

await mg.emails.send({
  from: 'hello@yourdomain.com',
  to: 'user@example.com',
  subject: 'Order confirmed',
  html: '<p>Thanks for your order!</p>',
});
from mailgrid import Mailgrid

mg = Mailgrid(api_key=os.environ["MAILGRID_KEY"])

mg.emails.send(
    from_="hello@yourdomain.com",
    to="user@example.com",
    subject="Order confirmed",
    html="<p>Thanks for your order!</p>",
)
mg := mailgrid.New(os.Getenv("MAILGRID_KEY"))

_, err := mg.Emails.Send(ctx, &mailgrid.SendRequest{
    From:    "hello@yourdomain.com",
    To:      []string{"user@example.com"},
    Subject: "Order confirmed",
    HTML:    "<p>Thanks for your order!</p>",
})
let mg = Mailgrid::new(env::var("MAILGRID_KEY")?);

mg.send(SendRequest {
    from:    "hello@yourdomain.com".into(),
    to:      vec!["user@example.com".into()],
    subject: "Order confirmed".into(),
    html:    Some("<p>Thanks for your order!</p>".into()),
    ..Default::default()
}).await?;

Capabilities

Everything ZeptoMail charges extra for.

We shipped the entire feature matrix on day one — no paywalled "Enterprise" buckets.

TX

Transactional Email

Idempotent single sends with bounce/complaint suppression, open + click tracking, and full event log.

BX

Bulk Email

100-message batch endpoint, list segmentation, RFC 8058 one-click unsubscribe headers.

25

SMTP Relay

HTTP-based SMTP relay endpoint. Pair with any legacy MTA sidecar for real SMTP over TCP.

IP

Dedicated IPs

Per-tenant IP pools with automated warmup. Routes traffic by email stream.

Bounce + Complaint Loop

SES SNS → automatic suppression list updates. Webhooks for every lifecycle event.

Scheduled Delivery

Schedule sends minutes or months ahead. Smart-send computes optimal time from open patterns.

📎

File Cache

Upload once, attach by id in every send. R2-backed, 25 MB per file. No payload bloat.

Email Streams

Separate transactional, marketing, notifications. Independent analytics, IPs, suppressions.

👥

User Access & Roles

Owner / admin / developer / viewer roles. Invite teammates, audit who sent what.

🤖

Built-in AI

Summarize, Ask AI, Voice & Tone match, Knowledge base, Auto-label. Workers AI on every plan.

📊

Analytics + Audit

30-day rollups, daily metrics, structured audit log of every admin action.

MCP-native

Email your agents can actually send.

Mailgrid speaks the Model Context Protocol natively. Drop one config block into Claude Code, Cursor, or your custom harness — every API capability becomes a first-class tool call.

No glue scripts. No prompt-engineered "you have an email API" hacks. Eighteen typed tools, full Zod validation, same source of truth as REST.

Claude Code Cursor Continue Zed Any MCP host
.cursor/mcp.json
// Drop this in. That's the whole setup.
{
  "mcpServers": {
    "mailgrid": {
      "url": "https://api.mailgrid.space/api/mcp",
      "headers": {
        "Authorization": "Bearer mb_live_..."
      }
    }
  }
}

// 18 tools your agent can call:
send_email          send_batch
create_template      generate_template
verify_domain        get_event_log
summarize            ask_ai
auto_label           smart_send_at
create_stream        upload_file
invite_user          register_dedicated_ip
... and 4 more

vs the competition

Compare on what matters.

Mailgrid Resend Postmark ZeptoMail
Price per 1k emails $0.40 $1.00 $1.25 $0.40
MCP server 18 tools
Email streams 3 types
File Cache / attach-by-id
SMTP relay
Dedicated IPs (cost) $24.95/mo $30/mo $50/mo Enterprise only
Open-source MIT
Built-in AI All plans
Edge-deployed 300+ POPs
17ms
Worker startup time
300+
Cloudflare edge POPs
18
MCP tools exposed
99.99%
Uptime SLA

Send your first email
in 60 seconds.

No demo call. No sales-assisted onboarding. Just a key and an endpoint.

Get your API key → Quickstart guide