Quickstart
Send your first email with Sendry in under 5 minutes.
1. Get an API key
Sign in to the Sendry dashboard, go to API Keys, and create a new key. Copy the key — it starts with sn_live_ for live mode or sn_test_ for test mode.
Store it as an environment variable:
export SENDRY_API_KEY="sn_live_your_api_key_here"
2. Verify a sending domain
Before sending, you need at least one verified domain. Go to Domains in the dashboard, add your domain, and follow the DNS setup guide. DNS propagation usually takes a few minutes.
For testing, use test-mode API keys — they bypass domain verification and capture emails to the Test Inbox instead of delivering them.
3. Send your first email
npm install sendry-sdk
# or: bun add sendry-sdkimport { Sendry } from "sendry-sdk";
const sendry = new Sendry(process.env.SENDRY_API_KEY!);
const email = await sendry.emails.send({
from: "you@yourdomain.com",
to: "user@example.com",
subject: "Hello from Sendry!",
html: "<h1>Welcome!</h1><p>Your first email just worked.</p>",
});
console.log(email.id); // em_abc123
console.log(email.status); // "queued"pip install sendryimport os
from sendry import Sendry
client = Sendry(api_key=os.environ["SENDRY_API_KEY"])
email = client.emails.send(
from_="you@yourdomain.com",
to="user@example.com",
subject="Hello from Sendry!",
html="<h1>Welcome!</h1><p>Your first email just worked.</p>",
)
print(email.id) # em_abc123
print(email.status) # queuedgo get github.com/sendry-dev/sendry-gopackage main
import (
"fmt"
"os"
"github.com/sendry-dev/sendry-go"
)
func main() {
client := sendry.New(os.Getenv("SENDRY_API_KEY"))
email, err := client.Emails.Send(sendry.SendEmailRequest{
From: "you@yourdomain.com",
To: "user@example.com",
Subject: "Hello from Sendry!",
HTML: "<h1>Welcome!</h1><p>Your first email just worked.</p>",
})
if err != nil {
panic(err)
}
fmt.Println(email.ID) // em_abc123
fmt.Println(email.Status) // queued
}curl -X POST https://api.sendry.online/v1/emails \
-H "Authorization: Bearer $SENDRY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "you@yourdomain.com",
"to": "user@example.com",
"subject": "Hello from Sendry!",
"html": "<h1>Welcome!</h1><p>Your first email just worked.</p>"
}'Response:
{
"id": "em_abc123",
"from": "you@yourdomain.com",
"to": ["user@example.com"],
"subject": "Hello from Sendry!",
"status": "queued",
"created_at": "2025-03-12T09:00:00Z"
}4. Check delivery status
const email = await sendry.emails.get("em_abc123");
console.log(email.status); // "delivered"
Status values: queued → sent → delivered (or bounced / complained).
5. Set up a webhook (optional)
Get notified when delivery events happen:
await sendry.webhooks.create({
url: "https://yourapp.com/webhooks/sendry",
events: ["email.delivered", "email.bounced", "email.opened", "email.clicked"],
});
See the Webhook Verification guide for payload signing and HMAC verification.
Next steps
- Authentication — understand API key scopes
- Sending Your First Email (guide) — detailed walkthrough
- API Reference: Emails — all email endpoint options
- TypeScript SDK — full SDK reference