Real-time webhooks for
every email event
Get instant HTTP notifications when emails are delivered, opened, clicked, or bounced. Build reactive workflows with zero polling.
Webhook payload
Every webhook delivers a structured JSON payload with the event type, email ID, timestamp, and relevant details.
POST https://your-app.com/webhooks/getmailer
Headers:
Content-Type: application/json
X-GetMailer-Signature: sha256=a1b2c3d4e5...
{
"id": "evt_abc123",
"type": "email.delivered",
"created_at": "2025-01-15T10:30:01Z",
"data": {
"email_id": "em_xyz789",
"from": "hello@example.com",
"to": "user@example.com",
"subject": "Welcome!",
"smtp_response": "250 2.0.0 OK",
"tags": ["onboarding", "welcome"],
"metadata": {
"user_id": "usr_456"
}
}
}Supported event types
Subscribe to the events you care about. Each endpoint can listen for different event types.
email.deliveredEmail was accepted by the recipient's mail serveremail.bouncedEmail was rejected (hard bounce) or deferred (soft bounce)email.openedRecipient opened the email (tracking pixel loaded)email.clickedRecipient clicked a tracked link in the emailemail.complainedRecipient marked the email as spamemail.unsubscribedRecipient clicked the List-Unsubscribe linkReliable by design
Built for production workloads with signing, retries, and debugging tools.
All Event Types
Delivered, bounced, opened, clicked, complained, and unsubscribed. Get notified for every event in the email lifecycle.
Webhook Signing
Every webhook is signed with HMAC-SHA256 using your signing secret. Verify payloads to ensure they came from GetMailer.
Automatic Retries
Failed deliveries are retried with exponential backoff for up to 24 hours. Never miss an event.
Batch Webhooks
Receive multiple events in a single HTTP request to reduce overhead for high-volume senders.
Debugging Tools
View recent webhook deliveries, payloads, and response codes in the dashboard. Replay failed webhooks with one click.
Flexible Filtering
Subscribe to specific event types per endpoint. Route delivery events to one URL and engagement events to another.
Verify webhook signatures
Every webhook includes an HMAC-SHA256 signature in the X-GetMailer-Signature header. Verify it to ensure the payload is authentic.
import crypto from "crypto";
function verifyWebhook(payload: string, signature: string, secret: string) {
const expected = crypto
.createHmac("sha256", secret)
.update(payload)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature.replace("sha256=", "")),
Buffer.from(expected)
);
}
// In your webhook handler:
const isValid = verifyWebhook(rawBody, req.headers["x-getmailer-signature"], WEBHOOK_SECRET);Ready to get started?
Set up webhooks in minutes and react to email events in real-time.