Payload Structure
When an email is delivered to your webhook endpoint, the request body contains a JSON object with the full email data.
{
"messageId": "<[email protected]>",
"uid": "job-uuid-here",
"date": "2026-03-25T10:30:00Z",
"subject": "Order Confirmation #1234",
"from": "[email protected]",
"to": "[email protected]",
"cc": "[email protected]",
"bcc": null,
"replyTo": "[email protected]",
"textBody": "Hi, I'd like to check the status of my order...",
"htmlBody": "<html><body><p>Hi, I'd like to check the status of my order...</p></body></html>",
"attachments": [
{
"filename": "receipt.pdf",
"content_type": "application/pdf",
"size": 24531,
"content": "JVBERi0xLjQK...",
"content_id": null,
"disposition": "attachment"
}
],
"domain": "yourdomain.com",
"messageSize": 51234,
"remoteIp": "203.0.113.10",
"remoteHost": "mail.example.com",
"headers": {
"message-id": "<[email protected]>",
"date": "Tue, 25 Mar 2026 10:30:00 +0000",
"mime-version": "1.0",
"content-type": "multipart/mixed; boundary=\"----=_Part_123\"",
"authentication-results": "mx.jetemail.com; dkim=pass; spf=pass; dmarc=pass",
"received-spf": "pass (sender is authorized)",
"dkim-signature": "v=1; a=rsa-sha256; d=example.com; s=selector1; ..."
}
}
Field Descriptions
| Field | Type | Description |
|---|
messageId | string | Value of the email Message-ID header |
uid | string | Unique internal ID for this delivery |
date | string | null | Email send date (ISO 8601), from the Date header |
subject | string | null | Email subject line |
from | string | null | Sender address(es) |
to | string | Recipient address(es), comma-separated |
cc | string | null | CC address(es), comma-separated |
bcc | string | null | BCC address(es), comma-separated |
replyTo | string | null | Reply-To header value |
textBody | string | null | Plain text body |
htmlBody | string | null | HTML body |
attachments | array | null | List of attachments (see below) |
domain | string | The receiving domain (e.g. yourdomain.com) |
messageSize | integer | Total size of the raw email in bytes |
remoteIp | string | IP address of the sending mail server |
remoteHost | string | Resolved hostname of the sending mail server |
headers | object | Filtered set of important email headers (see below) |
Attachments
Each attachment in the attachments array contains:
| Field | Type | Description |
|---|
filename | string | Attachment filename |
content_type | string | MIME type (e.g. application/pdf, image/png) |
size | integer | Size in bytes |
content | string | Base64-encoded file contents |
content_id | string | null | Content-ID for inline attachments (e.g. embedded images) |
disposition | string | attachment or inline |
Attachments are Base64-encoded and included directly in the payload. Large attachments will increase the payload size significantly. Make sure your endpoint can handle the expected payload sizes within the configured timeout.
Only a filtered subset of email headers are included to keep payload size manageable:
| Header | Description |
|---|
message-id | Unique message identifier |
date | Original send date |
mime-version | MIME version |
content-type | Content type and encoding |
content-transfer-encoding | Transfer encoding method |
user-agent | Sending client user agent |
x-mailer | Sending mail client |
authentication-results | SPF, DKIM, and DMARC results |
received-spf | SPF verification result |
dkim-signature | DKIM signature |
arc-authentication-results | ARC authentication results |
arc-message-signature | ARC message signature |
arc-seal | ARC seal |
received | Received header chain |
The authentication-results header is useful for checking whether the email passed SPF, DKIM, and DMARC checks at our servers.