Event Types Overview
Webhook events are namespaced by service (outbound or inbound). Subscribe to the events relevant to your use case.
Outbound Events
| Event | Description |
|---|
outbound.queued | Message entered the queue |
outbound.delivered | Message successfully delivered |
outbound.deferred | Message temporarily deferred |
outbound.bounced | Message bounced (hard or soft) |
outbound.rejected | Message rejected by remote server |
outbound.spam | Message flagged as spam |
outbound.virus | Virus detected in message |
outbound.dropped | Message dropped (policy/rate limit) |
outbound.opened | Recipient opened the email |
outbound.clicked | Recipient clicked a link |
outbound.complaint | Spam complaint received (FBL) |
Inbound Events
| Event | Description |
|---|
inbound.received | Message received at our servers |
inbound.delivered | Message delivered to your mailbox |
inbound.spam | Message marked as spam |
inbound.blocked | Message blocked by policy |
Outbound Event Payloads
outbound.queued
Triggered when a message enters the queue.
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.queued",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"subject": "Hello World",
"user": "api-user"
}
}
outbound.delivered
Triggered when a message is successfully delivered.
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.delivered",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"subject": "Hello World",
"mx": "aspmx.l.google.com",
"host": "2404:6800:4003:c1a::1b",
"ip": "2001:df4:2980:15::1",
"response": "250 2.0.0 OK"
}
}
outbound.bounced
Triggered when a message bounces.
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.bounced",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"bounce_type": "hard",
"mx": "mx.example.com",
"host": "192.0.2.1",
"response": "550 User unknown"
}
}
The bounce_type field indicates whether it was a hard bounce (permanent) or soft bounce (temporary).
outbound.rejected
Triggered when a message is rejected by the remote mail server.
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.rejected",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"mx": "mx.example.com",
"host": "192.0.2.1",
"response": "550 5.7.1 Message rejected due to policy"
}
}
outbound.deferred
Triggered when a message is temporarily deferred by the remote mail server.
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.deferred",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"mx": "mx.example.com",
"host": "192.0.2.1",
"response": "451 4.7.1 Try again later"
}
}
outbound.spam
Triggered when a message is flagged as spam before delivery.
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.spam",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"subject": "Buy now!!!",
"score": 15.3,
"rules": "URIBL_BLOCKED,HTML_IMAGE_RATIO_02"
}
}
outbound.virus
Triggered when a virus is detected in a message.
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.virus",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"subject": "Document attached",
"response": "Virus detected: Eicar-Test-Signature"
}
}
outbound.dropped
Triggered when a message is dropped due to policy or rate limiting.
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.dropped",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"response": "Rate limit exceeded"
}
}
outbound.opened
Triggered when a recipient opens an email (requires open tracking enabled).
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.opened",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"country": "AU",
"email_client": "Gmail",
"user_agent": "Mozilla/5.0..."
}
}
outbound.clicked
Triggered when a recipient clicks a link (requires click tracking enabled).
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.clicked",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"url": "https://example.com/promo",
"country": "AU",
"user_agent": "Mozilla/5.0..."
}
}
outbound.complaint
Triggered when a spam complaint is received via feedback loop (FBL).
{
"id": "evt_abc123",
"service": "outbound",
"type": "outbound.complaint",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]"
}
}
Spam complaints can negatively impact your sender reputation. Monitor these closely and remove recipients who complain from your mailing lists.
Inbound Event Payloads
inbound.received
Triggered when a message is first received at our servers.
{
"id": "evt_def456",
"service": "inbound",
"type": "inbound.received",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"subject": "Hello",
"domain": "yourdomain.com",
"host": "mail.sender.com",
"ip": "203.0.113.1"
}
}
inbound.delivered
Triggered when a message is successfully delivered to your mailbox.
{
"id": "evt_def456",
"service": "inbound",
"type": "inbound.delivered",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"subject": "Hello",
"domain": "yourdomain.com",
"response": "250 OK"
}
}
inbound.spam
Triggered when a message is marked as spam.
{
"id": "evt_def456",
"service": "inbound",
"type": "inbound.spam",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"subject": "You won!!!",
"domain": "yourdomain.com",
"spam_score": 12.5,
"spam_report": "URIBL_BLOCKED,BAYES_99"
}
}
inbound.blocked
Triggered when a message is blocked by policy.
{
"id": "evt_def456",
"service": "inbound",
"type": "inbound.blocked",
"created_at": 1704825600,
"data": {
"uid": "message-uid",
"from": "[email protected]",
"to": "[email protected]",
"domain": "yourdomain.com",
"response": "550 5.7.1 Sender blocked by policy"
}
}
Common Payload Fields
All webhook payloads share these common fields:
| Field | Type | Description |
|---|
id | string | Unique event identifier (format: evt_xxx) |
service | string | Either outbound or inbound |
type | string | The event type |
created_at | integer | Unix timestamp when the event occurred |
data | object | Event-specific data |
Data Object Fields
| Field | Events | Description |
|---|
uid | All | Unique message identifier |
from | Most | Sender email address |
to | Most | Recipient email address |
subject | Some | Email subject line |
domain | Inbound | Recipient domain |
response | Delivery events | Server response message |
mx | Outbound delivery | Mail exchanger used |
host | Delivery events | Server hostname or IP |
ip | Some | IP address |