Postmark Component
Send transactional emails and manage delivery settings in Postmark.
Component key: postmark
Description
Postmark is a transactional email delivery service. This component allows you to send emails, manage sender signatures, and analyze email delivery and engagement.
API Documentation
This component was built using the Postmark API Documentation.
A Note on Postmark Message Streams Pagination
Postmark's Message Streams API supports pagination. This means that the API will return up to 50 streams for any query. If additional results are available, the API response includes a Meta field that indicates the TotalCount and Offset.
{
"MessageStreams": [],
"TotalCount": 100,
"Offset": 0
}
The Offset can be used in a subsequent query to fetch additional results.
See Postmark's Docs for information about Postmark's paginated API, and this quickstart for information on looping over a paginated API in Prismatic.
Connections
Postmark Token Authentication
To authenticate with Postmark, access tokens are required. Postmark provides two types of tokens: a Server Token for sending emails and server-related actions, and an Account Token for account-level management such as creating and managing servers.
Prerequisites
- An active Postmark account
- At least one server created in Postmark (required for Server Token)
Setup Steps
To generate access tokens:
- Log in to Postmark
- Navigate to Servers in the left sidebar
- Select the server to generate tokens for (or create a new server if needed)
- Click on the API Tokens tab in the server settings
- Locate the Server API Token in the API Tokens section
- Copy the Server Token value
- To obtain the Account Token, click on Account in the top navigation
- Select API Tokens from the account menu
- Copy the Account Token value
Configure the Connection
- Enter the Account Token value into the Account Token field
- Enter the Server Token value into the Server Token field
The Server Token is required for email sending operations and server-level actions. The Account Token is required for account-level operations such as creating and managing servers.
| Input | Notes | Example |
|---|---|---|
| Account Token | Account level API token from the Postmark API Tokens page. Used for account management operations like creating servers. | 12345678-1234-5678-1234-567812345678 |
| Server Token | Server level API token from your Postmark server settings. Used for sending emails and managing server-specific resources. Find it under Servers > [Your Server] > API Tokens. | aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
Triggers
Webhook
Receive and validate webhook requests from Postmark for webhooks you configure. | key: postmarkWebhook
The Postmark component includes a webhook trigger that receives and validates webhook requests from Postmark for manually configured webhooks.
Overview
Postmark webhooks allow applications to receive real-time notifications when events occur, such as email bounces, deliveries, opens, clicks, spam complaints, and subscription changes. When an event occurs, Postmark makes an HTTP POST request to the configured webhook URL with a JSON payload containing event details.
Webhook Types
Postmark supports several webhook event types that can be configured:
- Bounce - Notifies when emails bounce (hard bounce, soft bounce, etc.)
- Delivery - Confirms successful email delivery to the receiving server
- Open - Tracks when recipients open emails (requires open tracking to be enabled)
- Click - Monitors when recipients click tracked links in emails
- SpamComplaint - Alerts when recipients mark emails as spam
- SubscriptionChange - Tracks when recipients unsubscribe from emails
Configuration
To configure the webhook trigger in an integration:
- Add the Postmark Webhook trigger to a flow and note the webhook URL
- Use the Create Webhook action or the Postmark dashboard to create a webhook configuration
- Set the webhook URL to the flow's webhook endpoint
- Configure which event types (triggers) should be sent to the webhook URL
- Optionally enable content inclusion for bounce and spam complaint events
The Triggers configuration is a JSON object that specifies which events are enabled. Example:
{
"Open": {
"Enabled": true,
"PostFirstOpenOnly": false
},
"Click": {
"Enabled": true
},
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true,
"IncludeContent": false
},
"SpamComplaint": {
"Enabled": true,
"IncludeContent": false
},
"SubscriptionChange": {
"Enabled": true
}
}
Webhook Payload Examples
Bounce Event
{
"RecordType": "Bounce",
"MessageStream": "outbound",
"ID": 4323372036854775807,
"Type": "HardBounce",
"TypeCode": 1,
"Name": "Hard bounce",
"Tag": "Test",
"MessageID": "883953f4-6105-42a2-a16a-77a8eac79483",
"Metadata": {
"a_key": "a_value",
"b_key": "b_value"
},
"ServerID": 23,
"Description": "The server was unable to deliver your message (ex: unknown user, mailbox not found).",
"Details": "Test bounce details",
"Email": "john@example.com",
"From": "sender@example.com",
"BouncedAt": "2019-11-05T16:33:54.9070259Z",
"DumpAvailable": true,
"Inactive": true,
"CanActivate": true,
"Subject": "Test subject"
}
Delivery Event
{
"MessageID": "883953f4-6105-42a2-a16a-77a8eac79483",
"Recipient": "john@example.com",
"DeliveredAt": "2019-11-05T16:33:54.9070259Z",
"Details": "Test delivery webhook details",
"Tag": "welcome-email",
"ServerID": 23,
"Metadata": {
"a_key": "a_value",
"b_key": "b_value"
},
"RecordType": "Delivery",
"MessageStream": "outbound"
}
Open Tracking Event
{
"RecordType": "Open",
"MessageStream": "outbound",
"FirstOpen": true,
"Client": {
"Name": "Chrome 35.0.1916.153",
"Company": "Google",
"Family": "Chrome"
},
"OS": {
"Name": "OS X 10.7 Lion",
"Company": "Apple Computer, Inc.",
"Family": "OS X 10"
},
"Platform": "WebMail",
"UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5)",
"Geo": {
"CountryISOCode": "RS",
"Country": "Serbia",
"RegionISOCode": "VO",
"Region": "Autonomna Pokrajina Vojvodina",
"City": "Novi Sad",
"Zip": "21000",
"Coords": "45.2517,19.8369",
"IP": "188.2.95.4"
},
"MessageID": "883953f4-6105-42a2-a16a-77a8eac79483",
"Metadata": {
"a_key": "a_value",
"b_key": "b_value"
},
"ReceivedAt": "2019-11-05T16:33:54.9070259Z",
"Tag": "welcome-email",
"Recipient": "john@example.com"
}
Branch Behavior
This trigger returns all webhook events through the Notification branch. The trigger automatically responds with a 200 OK status to acknowledge receipt of the webhook.
Retry Behavior
Postmark implements automatic retry logic for webhook deliveries:
- Bounce and Inbound webhooks: Retries at 1 min, 5 mins, 10 mins (3x), 15 mins, 30 mins, 1 hour, and 2 hours
- Click, Open, Delivery, and Subscription webhooks: Retries at 1 min, 5 mins, and 15 mins
Actions
Create Server
Create a new server | key: createServer
| Input | Notes | Example |
|---|---|---|
| Delivery Type | The type of environment for your server. Options: Live, Sandbox. Defaults to Live. <strong>Important:</strong> This cannot be changed after the server is created. | Live |
| Inbound Hook URL | The URL to POST to whenever an inbound email event occurs. | https://hooks.example.com/inbound |
| Connection | The Postmark connection to use. | |
| Raw Email Enabled | When true, raw email content will be included with inbound webhook payloads under the RawEmail key. | false |
| Server Color | Color label for the server in the Postmark interface. | blue |
| Server Name | Filter by a specific server name. <strong>Note:</strong> This is a partial match search - 'MyServer' will match 'MyServer', 'MyServer Production', and 'MyServer Test'. | Production01 |
| SMTP API Activated | When true, SMTP is enabled on this server. | false |
{
"data": {
"ID": 1234568,
"Name": "New Staging Server",
"ApiTokens": [
"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
],
"Color": "green",
"SmtpApiActivated": true,
"RawEmailEnabled": false,
"DeliveryType": "Live",
"ServerLink": "https://postmarkapp.com/servers/1234568/streams",
"InboundAddress": "b2c3d4e5f6g7@inbound.postmarkapp.com",
"InboundHookUrl": null,
"BounceHookUrl": null,
"OpenHookUrl": null,
"DeliveryHookUrl": null,
"PostFirstOpenOnly": false,
"InboundDomain": "",
"InboundHash": "b2c3d4e5f6g7",
"InboundSpamThreshold": 0,
"TrackOpens": false,
"TrackLinks": "None",
"IncludeBounceContentInHook": false,
"ClickHookUrl": null,
"EnableSmtpApiErrorHooks": false
}
}
Create Webhook
Create a new webhook | key: createWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Triggers | A JSON object specifying the triggers for the webhook. Use the default structure as a guideline. | |
| Webhook URL | The URL where webhook events will be sent. | https://your-webhook-endpoint.com/postmark |
{
"data": {
"ID": 9876544,
"Url": "https://example.com/webhooks/postmark-new",
"MessageStream": "outbound",
"HttpAuth": {
"Username": null,
"Password": null
},
"HttpHeaders": [],
"Triggers": {
"Open": {
"Enabled": true,
"PostFirstOpenOnly": false
},
"Click": {
"Enabled": false
},
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true,
"IncludeContent": false
},
"SpamComplaint": {
"Enabled": false,
"IncludeContent": false
},
"SubscriptionChange": {
"Enabled": false
}
}
}
}
Delete Instanced Webhooks
Delete all webhooks that point to this instance | key: deleteInstancedWebhooks
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. |
{
"data": {
"message": "All listed webhooks deleted successfully."
}
}
Delete Server
Delete an existing server | key: deleteServer
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Server ID | The unique numeric identifier of the server. | 1234567 |
{
"data": {
"ErrorCode": 0,
"Message": "Server Production Mail Server removed."
}
}
Delete Webhook
Delete a specific webhook | key: deleteWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Webhook ID | The unique numeric identifier of the webhook. | 1234567 |
{
"data": {
"ErrorCode": 0,
"Message": "Webhook 9876543 removed"
}
}
Edit Server
Edit an existing server | key: editServers
| Input | Notes | Example |
|---|---|---|
| Enable SMTP API Error Hooks | When true, SMTP API errors will be included with bounce webhooks. | false |
| Inbound Hook URL | The URL to POST to whenever an inbound email event occurs. | https://hooks.example.com/inbound |
| Connection | The Postmark connection to use. | |
| Raw Email Enabled | When true, raw email content will be included with inbound webhook payloads under the RawEmail key. | false |
| Server Color | Color label for the server in the Postmark interface. | blue |
| Server ID | The unique numeric identifier of the server. | 1234567 |
| Server Name | Filter by a specific server name. <strong>Note:</strong> This is a partial match search - 'MyServer' will match 'MyServer', 'MyServer Production', and 'MyServer Test'. | Production01 |
| SMTP API Activated | When true, SMTP is enabled on this server. | false |
{
"data": {
"ID": 1234567,
"Name": "Production Mail Server - Updated",
"ApiTokens": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
],
"Color": "purple",
"SmtpApiActivated": true,
"RawEmailEnabled": false,
"DeliveryType": "Live",
"ServerLink": "https://postmarkapp.com/servers/1234567/streams",
"InboundAddress": "a1b2c3d4e5f6@inbound.postmarkapp.com",
"InboundHookUrl": "https://example.com/webhooks/inbound",
"BounceHookUrl": "https://example.com/webhooks/bounce",
"OpenHookUrl": "https://example.com/webhooks/open",
"DeliveryHookUrl": "https://example.com/webhooks/delivery",
"PostFirstOpenOnly": false,
"InboundDomain": "",
"InboundHash": "a1b2c3d4e5f6",
"InboundSpamThreshold": 5,
"TrackOpens": true,
"TrackLinks": "HtmlAndText",
"IncludeBounceContentInHook": true,
"ClickHookUrl": "https://example.com/webhooks/click",
"EnableSmtpApiErrorHooks": false
}
}
Edit Server Using Server Token Account
Edit an existing server | key: editServer
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Server Color | Color label for the server in the Postmark interface. | blue |
| Server Name | Filter by a specific server name. <strong>Note:</strong> This is a partial match search - 'MyServer' will match 'MyServer', 'MyServer Production', and 'MyServer Test'. | Production01 |
{
"data": {
"ID": 1234567,
"Name": "Production Mail Server - Updated",
"ApiTokens": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
],
"Color": "purple",
"SmtpApiActivated": true,
"RawEmailEnabled": false,
"DeliveryType": "Live",
"ServerLink": "https://postmarkapp.com/servers/1234567/streams",
"InboundAddress": "a1b2c3d4e5f6@inbound.postmarkapp.com",
"InboundHookUrl": "https://example.com/webhooks/inbound",
"BounceHookUrl": "https://example.com/webhooks/bounce",
"OpenHookUrl": "https://example.com/webhooks/open",
"DeliveryHookUrl": "https://example.com/webhooks/delivery",
"PostFirstOpenOnly": false,
"InboundDomain": "",
"InboundHash": "a1b2c3d4e5f6",
"InboundSpamThreshold": 5,
"TrackOpens": true,
"TrackLinks": "HtmlAndText",
"IncludeBounceContentInHook": true,
"ClickHookUrl": "https://example.com/webhooks/click",
"EnableSmtpApiErrorHooks": false
}
}
Edit Webhook
Edit an existing webhook | key: editWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Triggers | A JSON object specifying the triggers for the webhook. Use the default structure as a guideline. | |
| Webhook ID | The unique numeric identifier of the webhook. | 1234567 |
| Webhook URL | The URL where webhook events will be sent. | https://your-webhook-endpoint.com/postmark |
{
"data": {
"ID": 9876543,
"Url": "https://example.com/webhooks/postmark-updated",
"MessageStream": "outbound",
"HttpAuth": {
"Username": "webhook_user",
"Password": "webhook_password"
},
"HttpHeaders": [
{
"Name": "X-Custom-Header",
"Value": "custom-value"
}
],
"Triggers": {
"Open": {
"Enabled": true,
"PostFirstOpenOnly": false
},
"Click": {
"Enabled": true
},
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true,
"IncludeContent": true
},
"SpamComplaint": {
"Enabled": true,
"IncludeContent": false
},
"SubscriptionChange": {
"Enabled": false
}
}
}
}
Get Server
Get server information | key: getServer
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. |
{
"data": {
"ID": 1234567,
"Name": "Production Mail Server",
"ApiTokens": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
],
"Color": "blue",
"SmtpApiActivated": true,
"RawEmailEnabled": false,
"DeliveryType": "Live",
"ServerLink": "https://postmarkapp.com/servers/1234567/streams",
"InboundAddress": "a1b2c3d4e5f6@inbound.postmarkapp.com",
"InboundHookUrl": "https://example.com/webhooks/inbound",
"BounceHookUrl": "https://example.com/webhooks/bounce",
"OpenHookUrl": "https://example.com/webhooks/open",
"DeliveryHookUrl": "https://example.com/webhooks/delivery",
"PostFirstOpenOnly": false,
"InboundDomain": "",
"InboundHash": "a1b2c3d4e5f6",
"InboundSpamThreshold": 5,
"TrackOpens": true,
"TrackLinks": "HtmlAndText",
"IncludeBounceContentInHook": true,
"ClickHookUrl": "https://example.com/webhooks/click",
"EnableSmtpApiErrorHooks": false
}
}
Get Server
Get an existing server by ID | key: getServers
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Server ID | The unique numeric identifier of the server. | 1234567 |
{
"data": {
"ID": 1234567,
"Name": "Production Mail Server",
"ApiTokens": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
],
"Color": "blue",
"SmtpApiActivated": true,
"RawEmailEnabled": false,
"DeliveryType": "Live",
"ServerLink": "https://postmarkapp.com/servers/1234567/streams",
"InboundAddress": "a1b2c3d4e5f6@inbound.postmarkapp.com",
"InboundHookUrl": "https://example.com/webhooks/inbound",
"BounceHookUrl": "https://example.com/webhooks/bounce",
"OpenHookUrl": "https://example.com/webhooks/open",
"DeliveryHookUrl": "https://example.com/webhooks/delivery",
"PostFirstOpenOnly": false,
"InboundDomain": "",
"InboundHash": "a1b2c3d4e5f6",
"InboundSpamThreshold": 5,
"TrackOpens": true,
"TrackLinks": "HtmlAndText",
"IncludeBounceContentInHook": true,
"ClickHookUrl": "https://example.com/webhooks/click",
"EnableSmtpApiErrorHooks": false
}
}
Get Webhook
Retrieve a specific webhook | key: getWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Webhook ID | The unique numeric identifier of the webhook. | 1234567 |
{
"data": {
"ID": 9876543,
"Url": "https://example.com/webhooks/postmark",
"MessageStream": "outbound",
"HttpAuth": {
"Username": "webhook_user",
"Password": "webhook_password"
},
"HttpHeaders": [
{
"Name": "X-Custom-Header",
"Value": "custom-value"
}
],
"Triggers": {
"Open": {
"Enabled": true,
"PostFirstOpenOnly": false
},
"Click": {
"Enabled": true
},
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true,
"IncludeContent": true
},
"SpamComplaint": {
"Enabled": true,
"IncludeContent": false
},
"SubscriptionChange": {
"Enabled": false
}
}
}
}
List Servers
Get a list of all servers associated with the account | key: listServers
| Input | Notes | Example |
|---|---|---|
| Count | Number of servers to return per request. Maximum 500. | 50 |
| Offset | Number of servers to skip for pagination. | 0 |
| Connection | The Postmark connection to use. | |
| Server Name | Filter by a specific server name. <strong>Note:</strong> This is a partial match search - 'MyServer' will match 'MyServer', 'MyServer Production', and 'MyServer Test'. | Production01 |
{
"data": [
{
"ID": 1234567,
"Name": "Production Mail Server",
"ApiTokens": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
],
"Color": "blue",
"SmtpApiActivated": true,
"RawEmailEnabled": false,
"DeliveryType": "Live",
"ServerLink": "https://postmarkapp.com/servers/1234567/streams",
"InboundAddress": "a1b2c3d4e5f6@inbound.postmarkapp.com",
"InboundHookUrl": "https://example.com/webhooks/inbound",
"BounceHookUrl": "https://example.com/webhooks/bounce",
"OpenHookUrl": "https://example.com/webhooks/open",
"DeliveryHookUrl": "https://example.com/webhooks/delivery",
"PostFirstOpenOnly": false,
"InboundDomain": "",
"InboundHash": "a1b2c3d4e5f6",
"InboundSpamThreshold": 5,
"TrackOpens": true,
"TrackLinks": "HtmlAndText",
"IncludeBounceContentInHook": true,
"ClickHookUrl": "https://example.com/webhooks/click",
"EnableSmtpApiErrorHooks": false
},
{
"ID": 1234568,
"Name": "Staging Test Server",
"ApiTokens": [
"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
],
"Color": "green",
"SmtpApiActivated": true,
"RawEmailEnabled": false,
"DeliveryType": "Live",
"ServerLink": "https://postmarkapp.com/servers/1234568/streams",
"InboundAddress": "b2c3d4e5f6g7@inbound.postmarkapp.com",
"InboundHookUrl": null,
"BounceHookUrl": null,
"OpenHookUrl": null,
"DeliveryHookUrl": null,
"PostFirstOpenOnly": false,
"InboundDomain": "",
"InboundHash": "b2c3d4e5f6g7",
"InboundSpamThreshold": 0,
"TrackOpens": false,
"TrackLinks": "None",
"IncludeBounceContentInHook": false,
"ClickHookUrl": null,
"EnableSmtpApiErrorHooks": false
}
]
}
List Webhooks
List all webhooks for a server | key: listWebhooks
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Show Only Instance Webhooks | When true, show only webhooks that point to this instance. | true |
{
"data": {
"Webhooks": [
{
"ID": 9876543,
"Url": "https://example.com/webhooks/postmark",
"MessageStream": "outbound",
"HttpAuth": {
"Username": "webhook_user",
"Password": "webhook_password"
},
"HttpHeaders": [
{
"Name": "X-Custom-Header",
"Value": "custom-value"
}
],
"Triggers": {
"Open": {
"Enabled": true,
"PostFirstOpenOnly": false
},
"Click": {
"Enabled": true
},
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true,
"IncludeContent": true
},
"SpamComplaint": {
"Enabled": true,
"IncludeContent": false
},
"SubscriptionChange": {
"Enabled": false
}
}
},
{
"ID": 9876544,
"Url": "https://example.com/webhooks/postmark-backup",
"MessageStream": "outbound",
"HttpAuth": {
"Username": null,
"Password": null
},
"HttpHeaders": [],
"Triggers": {
"Open": {
"Enabled": false,
"PostFirstOpenOnly": false
},
"Click": {
"Enabled": false
},
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true,
"IncludeContent": false
},
"SpamComplaint": {
"Enabled": false,
"IncludeContent": false
},
"SubscriptionChange": {
"Enabled": false
}
}
}
]
}
}
Raw Request
Send raw HTTP request to Postmark | key: rawRequest
| Input | Notes | Example |
|---|---|---|
| Connection | The Postmark connection to use. | |
| Data | The HTTP body payload to send to the URL. | {"exampleKey": "Example Data"} |
| Debug Request | Enabling this flag will log out the current request. | false |
| File Data | File Data to be sent as a multipart form upload. | [{key: "example.txt", value: "My File Contents"}] |
| File Data File Names | File names to apply to the file data inputs. Keys must match the file data keys above. | |
| Form Data | The Form Data to be sent as a multipart form upload. | [{"key": "Example Key", "value": new Buffer("Hello World")}] |
| Header | A list of headers to send with the request. | User-Agent: curl/7.64.1 |
| Max Retry Count | The maximum number of retries to attempt. Specify 0 for no retries. | 0 |
| Method | The HTTP method to use. | |
| Query Parameter | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2. | |
| Response Type | The type of data you expect in the response. You can request json, text, or binary data. | json |
| Retry On All Errors | If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors. | false |
| Retry Delay (ms) | The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled. | 0 |
| Timeout | The maximum time that a client will await a response to its request | 2000 |
| URL | Input the path only (/servers/9363760), The base URL is already included (https://api.postmarkapp.com). For example, to connect to https://api.postmarkapp.com/servers/9363760, only /servers/9363760 is entered in this field. | /servers/9363760 |
| Use Exponential Backoff | Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored. | false |
Send Email
Send an email using Postmark | key: sendSingleEmail
| Input | Notes | Example |
|---|---|---|
| Attachments | List of attachments | |
| Bcc | Blind carbon copy recipient email address(es). Multiple addresses can be comma-separated. Maximum of 50 recipients per message. | blind-copied@example.com |
| Cc | Carbon copy recipient email address(es). Multiple addresses can be comma-separated. Maximum of 50 recipients per message. | copied@example.com |
| From Address | The sender email address. Must be a verified sender signature in Postmark. | sender@example.com |
| Headers | List of custom headers to include. | |
| Html Body | The HTML content of the email message. | |
| Metadata | Custom metadata key/value pairs. | |
| Connection | The Postmark connection to use. | |
| Reply To | Reply-to email address override. Defaults to the Reply To address set in the sender signature. | reply@example.com |
| Subject | The subject line of the email message. | Welcome to Our Service |
| Tag | A tag to categorize the email for tracking and filtering purposes. | welcome-email |
| Text Body | The plain text content of the email message. | Welcome! Thanks for joining us. |
| To Address | The recipient email address(es). Multiple addresses can be comma-separated. Maximum of 50 recipients per message. | receiver@example.com |
| Track Opens | When true, activate open tracking for this email. | true |
{
"data": {
"ErrorCode": 0,
"Message": "OK",
"MessageID": "b7bc2f4a-e38e-4336-af7d-e6c392c2f817",
"SubmittedAt": "2024-01-15T12:01:05.1794748-05:00",
"To": "john.doe@example.com"
}
}
Send Email Batch
Send a batch of emails using Postmark | key: sendBatchEmail
| Input | Notes | Example |
|---|---|---|
| Emails | Provide a JSON array of email objects. Each object should include the necessary email information. | |
| Connection | The Postmark connection to use. |
{
"data": [
{
"ErrorCode": 0,
"Message": "OK",
"MessageID": "b7bc2f4a-e38e-4336-af7d-e6c392c2f817",
"SubmittedAt": "2024-01-15T12:01:05.1794748-05:00",
"To": "receiver1@example.com"
},
{
"ErrorCode": 0,
"Message": "OK",
"MessageID": "e2ecbbfc-fe12-463d-b933-9fe22915106d",
"SubmittedAt": "2024-01-15T12:01:05.1794748-05:00",
"To": "receiver2@example.com"
}
]
}
Send Email Batch With Template
Send a batch of emails using a Postmark template | key: sendBatchEmailWithTemplate
| Input | Notes | Example |
|---|---|---|
| Messages | The list of templates to send. Please note that we accept up to 500 messages per API call. | |
| Connection | The Postmark connection to use. |
{
"data": [
{
"ErrorCode": 0,
"Message": "OK",
"MessageID": "d4fe6h8j-k71m-685n-ch9p-bg8e492d4h39",
"SubmittedAt": "2024-01-15T12:10:33.5912384-05:00",
"To": "subscriber1@example.com"
},
{
"ErrorCode": 0,
"Message": "OK",
"MessageID": "a2bd5g7i-j60l-574m-bg8n-af7d381c3g27",
"SubmittedAt": "2024-01-15T12:10:33.5912384-05:00",
"To": "subscriber2@example.com"
}
]
}
Send Email With Template
Send an email with a Postmark template | key: sendEmailWithTemplate
| Input | Notes | Example |
|---|---|---|
| Attachments | List of attachments | |
| Bcc | Blind carbon copy recipient email address(es). Multiple addresses can be comma-separated. Maximum of 50 recipients per message. | blind-copied@example.com |
| Cc | Carbon copy recipient email address(es). Multiple addresses can be comma-separated. Maximum of 50 recipients per message. | copied@example.com |
| From Address | The sender email address. Must be a verified sender signature in Postmark. | sender@example.com |
| Headers | List of custom headers to include. | |
| Html Body | The HTML content of the email message. | |
| Inline Css | When true, CSS style blocks in the template will be applied as inline attributes to the rendered HTML content. | true |
| Metadata | Custom metadata key/value pairs. | |
| Connection | The Postmark connection to use. | |
| Reply To | Reply-to email address override. Defaults to the Reply To address set in the sender signature. | reply@example.com |
| Subject | The subject line of the email message. | Welcome to Our Service |
| Tag | A tag to categorize the email for tracking and filtering purposes. | welcome-email |
| Template Alias | The alias of a template to use when sending this message. Required if Template ID is not specified. | welcome-email |
| Template ID | The numeric ID of the Postmark template to use for sending the email. | 31941508 |
| Template Model | The template data to use with the email template | |
| Text Body | The plain text content of the email message. | Welcome! Thanks for joining us. |
| To Address | The recipient email address(es). Multiple addresses can be comma-separated. Maximum of 50 recipients per message. | receiver@example.com |
| Track Opens | When true, activate open tracking for this email. | true |
{
"data": {
"ErrorCode": 0,
"Message": "OK",
"MessageID": "c8cd3g5b-f49f-574e-bg8e-af7d392c3g28",
"SubmittedAt": "2024-01-15T12:05:22.3847291-05:00",
"To": "jane.smith@example.com"
}
}
Changelog
2025-11-17
Updated example payloads for several actions and updated documentation