Getting Started
5 min setupGo from zero to sending emails in 6 steps. Account creation, domain verification, API keys, sending, webhooks, and monitoring.
Create your account
Sign up for a free SendMesh account. No credit card required.
Head to sendmesh.co/auth/signup and create your account. You get 1,000 free emails per month to start.
Verify your domain
Add DNS records for DKIM, SPF, and DMARC to authenticate your sending domain.
Add your sending domain in the dashboard, then configure these DNS records with your DNS provider.
# DKIM Record (TXT)
Host: sendmesh._domainkey.yourdomain.com
Value: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3...
# SPF Record (TXT)
Host: yourdomain.com
Value: v=spf1 include:amazonses.com ~all
# DMARC Record (TXT)
Host: _dmarc.yourdomain.com
Value: v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com
# Return-Path (CNAME)
Host: bounce.yourdomain.com
Value: feedback-smtp.us-east-1.amazonses.comDNS propagation typically takes 5-60 minutes. Use the dashboard to verify records are detected.
Generate an API key
Create a secret key to authenticate API requests.
Go to Dashboard → API Keys and click Create Key. You'll get a key pair:
# Public key (safe to expose in frontend)
pk_live_abc123...
# Secret key (keep private, use on server only)
sk_live_xyz789...Important: Your secret key is shown only once. Store it securely. Never commit it to version control or expose it in client-side code.
Send your first email
Make your first API call to send an email.
Use the POST /v1/emails/send endpoint:
curl -X POST https://api.sendmesh.co/v1/emails/send \
-H "Authorization: Bearer sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"from": { "email": "hello@yourdomain.com", "name": "Your App" },
"to": [{ "email": "user@example.com", "name": "Jane Doe" }],
"subject": "Hello from SendMesh!",
"html": "<h1>Welcome!</h1><p>Your first email via SendMesh.</p>"
}'import { SendMesh } from '@sendmesh/node';
const client = new SendMesh('sk_live_your_key_here');
const response = await client.emails.send({
from: { email: 'hello@yourdomain.com', name: 'Your App' },
to: [{ email: 'user@example.com', name: 'Jane Doe' }],
subject: 'Hello from SendMesh!',
html: '<h1>Welcome!</h1><p>Your first email via SendMesh.</p>',
});
console.log('Email ID:', response.data.id);from sendmesh import SendMesh
client = SendMesh("sk_live_your_key_here")
response = client.emails.send(
from_email={"email": "hello@yourdomain.com", "name": "Your App"},
to=[{"email": "user@example.com", "name": "Jane Doe"}],
subject="Hello from SendMesh!",
html="<h1>Welcome!</h1><p>Your first email via SendMesh.</p>",
)
print("Email ID:", response.data["id"])Set up webhooks
Receive real-time notifications for delivery, bounce, and complaint events.
Register a webhook endpoint to receive event notifications:
curl -X POST https://api.sendmesh.co/v1/webhooks \
-H "Authorization: Bearer sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/sendmesh",
"events": ["email.delivered", "email.bounced", "email.complained", "email.opened", "email.clicked"]
}'Webhook payload example:
{
"event": "email.delivered",
"timestamp": "2026-04-14T10:30:00Z",
"data": {
"emailId": "em_abc123",
"to": "user@example.com",
"subject": "Hello from SendMesh!",
"messageId": "<abc123@us-east-1.amazonses.com>"
},
"signature": "sha256=a1b2c3d4..."
}All webhook payloads include an HMAC-SHA256 signature for verification.
Monitor deliverability
Track delivery rates, bounces, complaints, and engagement in your dashboard.
Your dashboard shows real-time delivery metrics. You can also query analytics via API:
curl https://api.sendmesh.co/v1/analytics/overview \
-H "Authorization: Bearer sk_live_your_key_here"