Mailstorm Docs
Email API for LATAM developers. Drop-in compatible with Resend. Half the price. Bill in pesos. Below — pick the language you ship in and you'll have a verified send in five minutes.
Quickstart
TypeScript / Node.js
Drop-in @mailstorm/resend or native @mailstorm/sdk.
Python
Same API as Resend's Python SDK. pip install and go.
Go
Native Go client. go get + Mailstorm.Send().
curl
No SDK needed. POST + Bearer token.
FrameworkNext.js
Server Actions and API routes for Next.js 14+.
★Coming from Resend?
Change one import, keep your code. Migration in 5 minutes.
Core concepts
Webhooks
email.delivered, email.bounced, email.complained, open, click, inbound. Same event names as Resend.
API Reference
OpenAPI 3.0 spec, every endpoint, every shape. Try-it-out enabled.
Common operations
Send a single email
import { Resend } from "@mailstorm/resend"; const resend = new Resend(process.env.MAILSTORM_API_KEY); const { data, error } = await resend.emails.send({ from: "hola@yourdomain.com", to: "user@example.com", subject: "Welcome", html: "<p>Hi</p>", });
Verify a domain
Add your domain in the dashboard at /domains. Mailstorm generates DKIM/SPF/DMARC records; paste them in your DNS host. Verification is automatic — typically green within 5 minutes.
Receive emails (inbound)
Point your MX record at mail1.mailstorm.dev. Mailstorm parses incoming mail, classifies it (category, urgency, language), and POSTs to your webhook. See Webhooks.
Migrate from Resend
One import swap. Same SDK shape, same webhooks, same response envelopes. See Migrate from Resend.
Stuck? Email support@mailstorm.dev — we respond within 24 business hours (LATAM time zone). Public source code at github.com/mailstorm.