Webhooks

Know What Happened to Every Email You Send

Add a callback URL in the dashboard and Maileroo posts every event to it as JSON: accepted, delivered, opened, clicked, deferred, failed, complained, and rejected. Each payload is signed so you can verify it came from us, and retried if your endpoint is down when we call.

Maileroo Metrics
Eight event types, delivered to your endpoint as structured JSON the moment they happen.
100M+
Emails Sent Monthly
1,000+
Happy Customers
99.9%
Uptime SLA
Webhook Events

Every Event, Pushed Straight to Your App

Point us at an endpoint in the Events section of the dashboard. From then on, every state change in a message you send arrives at that URL.

The Full Message Lifecycle

We emit accepted when we take the message off your hands, delivered when the receiving server confirms it, and opened or clicked if tracking is enabled. The other four tell you when something went wrong.

Deferred and failed are the pair worth understanding. A deferral is temporary, often a full mailbox or a greylisting server, and we keep trying. A failure is permanent. Emailing a customer about the first one is noise, and separating them keeps you from doing it.

Rejected means we never accepted the message, usually because the recipient is on your suppression list from an earlier bounce. Complained means the recipient hit the spam button, which is the one to act on quickly.

Get Started for Free

Everything Your Handler Needs in the Payload

Every payload carries the event type, timestamps as both a Unix value and an ISO string, the message ID, your own reference ID, and any tags attached at send time.

The event_data object changes with the event. Deferrals and failures include the reason string returned by the receiving server, so you see the actual SMTP response rather than a generic error code. Opens carry IP and user agent, clicks add the original URL, rejections say why we suppressed it.

Each request is signed with HMAC-SHA256 in the x-maileroo-signature header, so your handler can confirm the payload is ours before acting on it. If it does not return 200, we retry up to eight times on a widening schedule that runs from five minutes out to six hours.

Try It for Free
1
{
2
   "domain_id": 123,
3
   "event_data": {
5
   },
6
   "event_id": "abcd1234efgh5678ijkl9101",
7
   "event_time": 1710545542,
8
   "event_type": "delivered",
9
   "inserted_at": "2024-03-15T23:32:22.397Z",
10
   "message_id": "<[email protected]>",
11
   "message_reference_id": "mref1234567890abcdef",
12
   "tags": null,
13
   "user_id": 1001
14
}
15
Workflow Automation

Message Tagging

Attach tags and a reference ID when you send, and get them back in every event payload for that message.

Send Emails with Custom Tracking Tags

Tags are key value pairs you set at send time. Campaign name, tenant, order number, whichever identifiers your system will need when the event comes back.

Set a reference ID in the same call and you have a handle on the message that you generated yourself. Looking that up in your own database is easier than working from an identifier we assigned.

1
2
client := NewMailerooClient("YOUR_API_KEY")
3
4
client.SetFrom("John Doe", "[email protected]").
5
    SetTo("Jane Doe", "[email protected]").
6
    SetSubject("Hello").
7
    SetPlain("Hello World").
8
    SetReferenceId(client.GenerateReferenceId()).
9
    SetTracking(true).
10
    SetTags(map[string]string{"tag1": "value1", "tag2": "value2"})
11
12
response, err := client.SendBasicEmail()
13
14
if err != nil {
15
    fmt.Println("Error:", err)
16
} else {
17
    fmt.Println("Response:", response)
18
}
19

Receive Tags Back in Webhook Payloads

The same tags come back on every event for that message. Your handler reads them off the payload and routes the event to whatever should handle it.

This is the part that saves real work. Without it, most teams end up maintaining a lookup table from our message IDs to their own records and querying it on every inbound event. Tags let the context ride along with the message instead.

1
2
{
3
  "domain_id": 123,
4
  "event_data": {
6
  },
7
  "event_id": "abcd1234efgh5678ijkl9101",
8
  "event_time": 1710545542,
9
  "event_type": "delivered",
10
  "inserted_at": "2024-03-15T23:32:22.397Z",
11
  "message_id": "<[email protected]>",
12
  "message_reference_id": "mref1234567890abcdef",
13
  "tags": {"tag1": "value1", "tag2": "value2"},
14
  "user_id": 1001
15
}
16
FAQ

Questions? We've Got Answers

From deliverability and infrastructure to pricing and integrations, here's what developers ask us most before they send their first email.

Maileroo is an email delivery platform designed to help businesses send both transactional and marketing emails reliably and at scale. We provide a simple yet powerful API, SMTP integration, and a user-friendly dashboard that makes it easy to manage your email communication from a single place. With a focus on deliverability, security, and ease of use, Maileroo handles the complexities of email infrastructure so you can focus on your product. From startups to enterprises, Maileroo offers scalable plans and dedicated support to ensure your emails reach the inbox every time.

Maileroo supports both transactional and marketing emails. You can send transactional emails such as password resets, order confirmations, invoices, and notifications, as well as marketing emails to users who have explicitly opted in to receive them. Whether you're sending automated system emails or managing marketing campaigns, Maileroo provides the tools to automate all of your email communication from a single platform. If unsure about the type of email you're sending, you can always contact our support team for guidance.

Maileroo is built with deliverability at its core. We use strict account verification, continuous monitoring, intelligent automation, and proprietary abuse detection to protect our sending reputation and reduce spam. Combined with automatic suppression handling, SPF, DKIM, and DMARC support, and ongoing infrastructure maintenance, these safeguards give legitimate senders the best chance of reaching the inbox.

Maileroo's infrastructure is strategically hosted in Germany, Netherlands, Finland and France, providing exceptional performance, reliability, and security for customers worldwide. Our infrastructure is fully GDPR compliant, ensuring your data is handled in accordance with strict European data protection regulations. With enterprise-grade security and modern data centers, you can trust that your data is safe with us.

Maileroo provides support through live chat and email, with our team based in Australia to provide both general and technical assistance. Our team is available from 9 AM to 9 PM Melbourne time. Whether you need help with setup, configuration, integrations, or troubleshooting, our experienced team is available to help you get connected and running smoothly. We understand that email infrastructure is critical to your business, which is why providing fast, knowledgeable support is a key priority for us. Our team has the technical background to assist with complex setups and ensure you have the support you need when you need it.

All Maileroo plans include a monthly email quota. If you exceed your allocated quota, any additional emails will not be sent until your quota resets or your plan is upgraded. For paying users, we include a 12% buffer on your monthly quota, giving you extra flexibility in case of unexpected spikes in sending volume. In addition to monthly limits, we apply an hourly sending limits to accounts as a security measure to help protect our sending infrastructure and maintain deliverability. These limits can be easily increased through your dashboard by submitting a request, and our team can quickly review and adjust them to ensure your email sending is not impacted.

We accept credit card or debit card including Visa, Mastercard and American Express, along with PayPal and cryptocurrency payments.

Yes, Maileroo is built to support businesses of all sizes, from startups and small teams to agencies and large enterprises. We offer scalable plans starting from a free 3,000 emails per month option through to custom solutions designed for businesses sending millions of emails and beyond. Our infrastructure is built to scale with your growth, providing reliable email delivery, flexible sending capacity, and the tools needed to power email communication for businesses of all sizes.

Yes. Non-profits and open-source projects get 50% off every Maileroo plan. Get in touch with a short note about what you're building and we'll set it up. No lengthy application, no annual commitment.

Features

Crafted for a Delightful Email Experience

Everything behind reliable delivery at any volume: sending, verification, routing, and the analytics to see what happened, from first API call to millions a month.

SMTP Relay

Send transactional and bulk emails through reliable SMTP infrastructure built for speed, security, and deliverability.

View More

Email API

Integrate email delivery into your applications using powerful APIs built for flexibility, scalability, and performance.

View More

Streams

Separate transactional and marketing traffic into isolated sending streams to protect reputation and keep critical emails fast.

View More

Inbound Routing

Receive and route incoming emails directly into your applications using flexible automation and processing workflows.

View More

Email Marketing

Create and deliver marketing campaigns designed to increase engagement, reach, and customer retention.

View More

Webhooks

Receive real-time event notifications for deliveries, opens, and clicks for storage and automation workflows.

View More

Analytics

Monitor email performance with detailed insights, reporting tools, and actionable delivery metrics in real time.

View More

Dedicated IPs

Gain greater sending control with dedicated IPs designed for consistency, reputation, scalability, and reliability.

View More

Developer SDKs

Build integrations faster using SDKs, code examples, and resources for modern application development.

View More
Get Started
Contact Us
Ready to Move Your Email to Maileroo?
Migrating is usually the part people dread. It shouldn't be: add the DNS records, change the credentials in your app, and send. Our team is around if you want a second pair of eyes on the setup.