Skip to main content

Postmark Component

Send transactional emails and manage delivery settings in Postmark.

Component key: postmark

Changelog ↓

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:

  1. Log in to Postmark
  2. Navigate to Servers in the left sidebar
  3. Select the server to generate tokens for (or create a new server if needed)
  4. Click on the API Tokens tab in the server settings
  5. Locate the Server API Token in the API Tokens section
  6. Copy the Server Token value
  7. To obtain the Account Token, click on Account in the top navigation
  8. Select API Tokens from the account menu
  9. 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.

InputNotesExample
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:

  1. Add the Postmark Webhook trigger to a flow and note the webhook URL
  2. Use the Create Webhook action or the Postmark dashboard to create a webhook configuration
  3. Set the webhook URL to the flow's webhook endpoint
  4. Configure which event types (triggers) should be sent to the webhook URL
  5. 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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
Connection

The Postmark connection to use.

{
"data": {
"message": "All listed webhooks deleted successfully."
}
}

Delete Server

Delete an existing server | key: deleteServer

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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

InputNotesExample
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