The Postmark connector lets your AI agent act in each user's Postmark account. Each user connects their own Postmark API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 59 tools.
- Tools
- 59
- What they doRead · write · destructive
- 35 · 20 · 435 read20 write4 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Postmark connection
In AgentKit > Connections, create a Postmark connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Console steps with screenshots
Register your Scalekit environment with the Postmark connector so Scalekit can authenticate requests on your behalf. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:
-
Get your server API token
- Go to Postmark and open the server you want to connect.
- Go to the API Tokens tab. Postmark creates a default Server API token for every server — copy it, or click Create token for a dedicated one, for example named
Agent Auth.
-
Add the token in Scalekit
- In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Postmark and click Create.
- Paste the Server API token you copied in step 1.
- Click Save.
-
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'postmark'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Postmark:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'postmark_get_bounce_counts',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "postmark"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Postmark:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="postmark_get_bounce_counts",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Postmark credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolpostmark_get_bounceRetrieve full details for a single bounce by its Postmark bounce ID, including bounce type, the affected email address, timestamp, description, and whether the address has been deactivated.Read-onlyGet Bounce
Retrieve full details for a single bounce by its Postmark bounce ID, including bounce type, the affected email address, timestamp, description, and whether the address has been deactivated. Use postmark_list_bounces first to find the bounce ID you need.
Inputs
bounce_idintegerrequired- The numeric ID of the bounce to retrieve, as returned by postmark_list_bounces. Example: 42.
postmark_get_bounce_countsGet bounce counts for a Postmark server broken down by day and by bounce type (e.g.Read-onlyGet Bounce Counts
Get bounce counts for a Postmark server broken down by day and by bounce type (e.g. HardBounce, SoftBounce, Transient, SpamNotification) for the requested date range. Use this to diagnose deliverability issues over time. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the bounce-count range, formatted YYYY-MM-DD. If omitted, all bounce history up to todate is included.
messagestreamstring- Message stream ID to scope the bounce counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter bounce counts by. Only bounced messages that were originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the bounce-count range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_bounce_dumpRetrieve the raw source (full RFC 822 message content, including headers) of a bounced message by its Postmark bounce ID.Read-onlyGet Bounce Dump
Retrieve the raw source (full RFC 822 message content, including headers) of a bounced message by its Postmark bounce ID. Use this to inspect exactly what was sent and why it may have bounced. Use postmark_list_bounces first to find the bounce ID you need.
Inputs
bounce_idintegerrequired- The numeric ID of the bounce whose raw message source should be retrieved, as returned by postmark_list_bounces. Example: 42.
postmark_get_bulk_email_statusCheck the processing status of a previously submitted Bulk Email send: overall status (Accepted, Processing, or Completed), percent complete, and total message count.Read-onlyGet Bulk Email Status
Check the processing status of a previously submitted Bulk Email send: overall status (Accepted, Processing, or Completed), percent complete, and total message count.
Inputs
bulk_request_idstringrequired- The bulk request ID returned when the bulk send was submitted (Send Bulk Email).
postmark_get_click_browser_usageGet link click counts for a Postmark server broken down by browser family (e.g.Read-onlyGet Click Browser Usage
Get link click counts for a Postmark server broken down by browser family (e.g. Chrome, Safari, Firefox, Edge) for the requested date range. Requires link tracking to have been enabled on the sent messages. Use this to understand which browsers your recipients use when clicking links. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the browser-usage range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the browser-usage counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter browser-usage counts by. Only clicks for messages originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the browser-usage range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_click_countsGet link click counts for a Postmark server broken down by day, reporting both unique clicks (one per recipient) and total clicks (including repeat clicks) for the requested date range.Read-onlyGet Click Counts
Get link click counts for a Postmark server broken down by day, reporting both unique clicks (one per recipient) and total clicks (including repeat clicks) for the requested date range. Requires link tracking to have been enabled on the sent messages. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the click-count range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the click counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter click counts by. Only clicks for messages originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the click-count range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_click_location_statsGet link click counts for a Postmark server broken down by where in the email the clicked link was located: HTML body, HTML header, text body, or text header, for the requested date range.Read-onlyGet Click Location Stats
Get link click counts for a Postmark server broken down by where in the email the clicked link was located: HTML body, HTML header, text body, or text header, for the requested date range. Requires link tracking to have been enabled on the sent messages. Use this to see whether recipients click links in headers vs. body content. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the click-location range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the click-location counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter click-location counts by. Only clicks for messages originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the click-location range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_click_platform_usageGet link click counts for a Postmark server broken down by platform (Desktop, Webmail, or Mobile) for the requested date range.Read-onlyGet Click Platform Usage
Get link click counts for a Postmark server broken down by platform (Desktop, Webmail, or Mobile) for the requested date range. Requires link tracking to have been enabled on the sent messages. Use this to understand which platforms your recipients use when clicking links. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the click-platform-usage range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the click-platform-usage counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter click-platform-usage counts by. Only clicks for messages originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the click-platform-usage range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_delivery_statsGet a breakdown of delivery statistics for the current Postmark server, including a count of inactive (undeliverable) email addresses and a breakdown of bounce counts by bounce type (e.g.Read-onlyGet Delivery Stats
Get a breakdown of delivery statistics for the current Postmark server, including a count of inactive (undeliverable) email addresses and a breakdown of bounce counts by bounce type (e.g. HardBounce, SoftBounce, Transient). Takes no parameters and reflects data for the server whose API token is used to authenticate.
Inputs
This tool takes no inputs.
postmark_get_email_client_usageGet email open counts for a Postmark server broken down by the email client used to open the message (e.g.Read-onlyGet Email Client Usage
Get email open counts for a Postmark server broken down by the email client used to open the message (e.g. Outlook, Gmail, Apple Mail) for the requested date range. Use this to understand which email clients your recipients use most. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the email-client-usage range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the email-client-usage counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter email-client-usage counts by. Only opens for messages originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the email-client-usage range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_email_open_countsGet email open counts for a Postmark server broken down by day, reporting both unique opens (one per recipient) and total opens (including repeat opens) for the requested date range.Read-onlyGet Email Open Counts
Get email open counts for a Postmark server broken down by day, reporting both unique opens (one per recipient) and total opens (including repeat opens) for the requested date range. Use this to track engagement trends over time. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the open-count range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the open counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter open counts by. Only opens for messages originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the open-count range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_email_platform_usageGet email open counts for a Postmark server broken down by the platform used to open the message (Desktop, Webmail, or Mobile) for the requested date range.Read-onlyGet Email Platform Usage
Get email open counts for a Postmark server broken down by the platform used to open the message (Desktop, Webmail, or Mobile) for the requested date range. Use this to understand which platforms your recipients use to read email. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the platform-usage range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the platform-usage counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter platform-usage counts by. Only opens for messages originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the platform-usage range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_inbound_messageGet full details of a single inbound message by its Postmark Message ID, including parsed headers, sender, recipients, tag, mailbox hash, attachment metadata, processing status, and any processing errors.Read-onlyGet Inbound Message
Get full details of a single inbound message by its Postmark Message ID, including parsed headers, sender, recipients, tag, mailbox hash, attachment metadata, processing status, and any processing errors.
Inputs
message_idstringrequired- The Postmark Message ID (a UUID) of the inbound message to retrieve. Obtain this from postmark_list_inbound_messages or from a Postmark inbound webhook payload.
postmark_get_message_clicksList click (link click tracking) events for a single outbound message, identified by its Postmark Message ID, with pagination via count and offset.Read-onlyGet Message Clicks
List click (link click tracking) events for a single outbound message, identified by its Postmark Message ID, with pagination via count and offset. Requires Link Tracking to be enabled on the relevant message stream, otherwise no click events will exist for the message.
Inputs
countintegerrequired- Number of click events to return in this page of results.
message_idstringrequired- The Postmark Message ID (a UUID) of the outbound message whose click events you want to list. Obtain this from postmark_list_outbound_messages or from the MessageID returned when the message was sent.
offsetintegerrequired- Number of click events to skip before starting to return results, used together with count to page through the full result set. Use 0 for the first page, then increment by count for each subsequent page.
postmark_get_message_opensList open (email open tracking) events for a single outbound message, identified by its Postmark Message ID, with pagination via count and offset.Read-onlyGet Message Opens
List open (email open tracking) events for a single outbound message, identified by its Postmark Message ID, with pagination via count and offset. Requires Open Tracking to be enabled on the relevant message stream, otherwise no open events will exist for the message.
Inputs
countintegerrequired- Number of open events to return in this page of results.
message_idstringrequired- The Postmark Message ID (a UUID) of the outbound message whose open events you want to list. Obtain this from postmark_list_outbound_messages or from the MessageID returned when the message was sent.
offsetintegerrequired- Number of open events to skip before starting to return results, used together with count to page through the full result set. Use 0 for the first page, then increment by count for each subsequent page.
postmark_get_message_streamRetrieve details about a single message stream on the current Postmark server by its stream ID, including its name, description, type (Transactional/Broadcasts/Inbound), archive status, and subscription management configuration.Read-onlyGet Message Stream
Retrieve details about a single message stream on the current Postmark server by its stream ID, including its name, description, type (Transactional/Broadcasts/Inbound), archive status, and subscription management configuration.
Inputs
stream_idstringrequired- The unique identifier (ID) of the message stream to retrieve, e.g. "outbound" or "onboarding-emails".
postmark_get_outbound_messageGet full details of a single outbound message by its Postmark Message ID, including sender, recipients, subject, tag, message stream, current status, and a full history of tracked events (e.g.Read-onlyGet Outbound Message
Get full details of a single outbound message by its Postmark Message ID, including sender, recipients, subject, tag, message stream, current status, and a full history of tracked events (e.g. Sent, Delivered, Opened, Clicked, Bounced) for that message. Does not return the raw SMTP source — use postmark_get_outbound_message_dump for that.
Inputs
message_idstringrequired- The Postmark Message ID (a UUID) of the outbound message to retrieve. Obtain this from postmark_list_outbound_messages, from the MessageID field returned when the message was sent, or from a Postmark webhook payload.
postmark_get_outbound_message_dumpGet the raw, complete SMTP source of a single outbound message by its Postmark Message ID, exactly as it was transmitted to the receiving mail server — including all MIME headers and body parts.Read-onlyGet Outbound Message Dump
Get the raw, complete SMTP source of a single outbound message by its Postmark Message ID, exactly as it was transmitted to the receiving mail server — including all MIME headers and body parts. Useful for deep debugging of formatting, encoding, or header issues that aren't visible in the parsed details returned by postmark_get_outbound_message.
Inputs
message_idstringrequired- The Postmark Message ID (a UUID) of the outbound message whose raw SMTP source you want to retrieve. Obtain this from postmark_list_outbound_messages or from the MessageID returned when the message was sent.
postmark_get_outbound_stats_overviewGet a high-level overview of outbound email activity for a Postmark server: total sent count, bounce counts and rate, spam complaint counts and rate, open counts and rate (unique and total), and click counts and rate (unique and total) for the requested date range.Read-onlyGet Outbound Stats Overview
Get a high-level overview of outbound email activity for a Postmark server: total sent count, bounce counts and rate, spam complaint counts and rate, open counts and rate (unique and total), and click counts and rate (unique and total) for the requested date range. Optionally scope the overview to a specific tag or message stream. Omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the overview period, formatted YYYY-MM-DD. If omitted, Postmark includes all-time data up to todate.
messagestreamstring- Message stream ID to scope the overview to (e.g. 'outbound' or 'broadcasts'). If omitted, stats are aggregated across all message streams on the server.
tagstring- Tag to filter the overview by. Only messages sent with this exact tag are included. If omitted, the overview covers messages with any tag or no tag.
todatestring- End date (inclusive) for the overview period, formatted YYYY-MM-DD. If omitted, Postmark includes all-time data from fromdate through today.
postmark_get_sent_countsGet the number of emails sent from a Postmark server broken down by day, along with the total sent count for the requested date range.Read-onlyGet Sent Counts
Get the number of emails sent from a Postmark server broken down by day, along with the total sent count for the requested date range. Use this to chart outbound sending volume over time. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the sent-count range, formatted YYYY-MM-DD. If omitted, all send history up to todate is included.
messagestreamstring- Message stream ID to scope the sent counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter sent counts by. Only messages sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the sent-count range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_server_infoRetrieve the full configuration of the current Postmark server, including its name, color, tracking and webhook settings (open/click/bounce/delivery/inbound hook URLs), inbound domain and spam threshold, and SMTP API settings.Read-onlyGet Server Info
Retrieve the full configuration of the current Postmark server, including its name, color, tracking and webhook settings (open/click/bounce/delivery/inbound hook URLs), inbound domain and spam threshold, and SMTP API settings. Takes no parameters and reflects the server whose API token is used to authenticate.
Inputs
This tool takes no inputs.
postmark_get_spam_complaint_countsGet the number of spam complaints (recipients marking a message as spam) received for a Postmark server broken down by day for the requested date range.Read-onlyGet Spam Complaint Counts
Get the number of spam complaints (recipients marking a message as spam) received for a Postmark server broken down by day for the requested date range. Use this to monitor sender reputation risk over time. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the spam-complaint range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the spam complaint counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter spam complaint counts by. Only complaints for messages originally sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the spam-complaint range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_templateRetrieve a single email template or layout from the current Postmark server by its numeric ID or alias, including its Name, Subject, HtmlBody, TextBody, and associated layout.Read-onlyGet Template
Retrieve a single email template or layout from the current Postmark server by its numeric ID or alias, including its Name, Subject, HtmlBody, TextBody, and associated layout.
Inputs
template_id_or_aliasstringrequired- Numeric ID or alias string of the template to retrieve.
postmark_get_tracked_email_countsGet counts, broken down by day, of how many outbound emails from a Postmark server were sent with open tracking enabled and how many were sent with link (click) tracking enabled, for the requested date range.Read-onlyGet Tracked Email Counts
Get counts, broken down by day, of how many outbound emails from a Postmark server were sent with open tracking enabled and how many were sent with link (click) tracking enabled, for the requested date range. Use this to see tracking adoption over time. Optionally scope results to a specific tag or message stream; omit all filters to get all-time, all-tag, all-stream totals.
Inputs
fromdatestring- Start date (inclusive) for the tracked-email range, formatted YYYY-MM-DD. If omitted, all history up to todate is included.
messagestreamstring- Message stream ID to scope the tracked-email counts to (e.g. 'outbound' or 'broadcasts'). If omitted, counts are aggregated across all message streams.
tagstring- Tag to filter tracked-email counts by. Only messages sent with this exact tag are counted. If omitted, all tags (and untagged messages) are included.
todatestring- End date (inclusive) for the tracked-email range, formatted YYYY-MM-DD. If omitted, counts run through today.
postmark_get_webhookRetrieve the full configuration of a single webhook on the current Postmark server by its numeric ID, including its target URL, message stream scope, HTTP auth/header settings, and which event triggers are enabled.Read-onlyGet Webhook
Retrieve the full configuration of a single webhook on the current Postmark server by its numeric ID, including its target URL, message stream scope, HTTP auth/header settings, and which event triggers are enabled.
Inputs
webhook_idstringrequired- The numeric ID of the webhook to retrieve, as returned by List Webhooks or Create Webhook.
postmark_list_bouncesList bounces for the current Postmark server with pagination and optional filtering.Read-onlyList Bounces
List bounces for the current Postmark server with pagination and optional filtering. Returns a paginated array of bounce records (bounce ID, type, email, description, timestamps, and whether the address is inactive/deactivated). Use the type, tag, messageID, date range, or message stream filters to narrow results, and count/offset to page through them.
Inputs
countintegerrequired- Number of bounces to return in this request. Maximum allowed value is 500. Example: 50.
offsetintegerrequired- Number of bounces to skip before starting to return results, for pagination (0-indexed). Example: 0 for the first page, 500 for the next page when count=500.
email_filterstring- Filter bounces to only those for a specific email address. Maps to Postmark's 'emailFilter' query parameter. Example: 'recipient@example.com'.
from_datestring- Filter bounces that occurred on or after this date. Format: YYYY-MM-DD. Maps to Postmark's 'fromdate' query parameter. Example: '2026-06-01'.
inactiveboolean- Filter by whether the bounced email address has been deactivated (true) or is still active (false). Omit to return both.
message_idstring- Filter bounces belonging to a specific Postmark MessageID (the UUID Postmark assigns to a sent message). Maps to Postmark's 'messageID' query parameter. Example: '0ac29aee-c259-4b34-8434-1b3f2a1af9b6'.
message_streamstring- Filter bounces by the message stream they were sent through (e.g. 'outbound' or 'broadcasts'). Maps to Postmark's 'messagestream' query parameter.
tagstring- Filter bounces to messages that were sent with this specific tag. Example: 'welcome-email'.
to_datestring- Filter bounces that occurred on or before this date. Format: YYYY-MM-DD. Maps to Postmark's 'todate' query parameter. Example: '2026-08-01'.
typestring- Filter bounces by Postmark bounce type code, e.g. 'HardBounce' or 'SoftBounce'. See Postmark's bounce type documentation for the full list.one of
HardBounceTransientUnsubscribeSubscribeAutoResponderAddressChangeDnsErrorSpamNotificationOpenRelayTestUnknownSoftBounceVirusNotificationChallengeVerificationBadEmailAddressSpamComplaintManuallyDeactivatedUnconfirmedBlockedSMTPApiErrorInboundErrorDMARCPolicyTemplateRenderingFailed
postmark_list_inbound_messagesList messages received (inbound) by a Postmark inbound server, with optional filters for recipient, sender, tag, subject, mailbox hash, processing status, and date range.Read-onlyList Inbound Messages
List messages received (inbound) by a Postmark inbound server, with optional filters for recipient, sender, tag, subject, mailbox hash, processing status, and date range. Returns summary metadata for each matching message but not the full parsed content — use postmark_get_inbound_message for full details of a specific message. Pagination is mandatory: count and offset must always be supplied.
Inputs
countintegerrequired- Number of inbound messages to return in this page of results.
offsetintegerrequired- Number of messages to skip before starting to return results, used together with count to page through the full result set. Use 0 for the first page, then increment by count for each subsequent page.
from_datestring- Filter to messages processed on or after this date, evaluated in US Eastern time. Format YYYY-MM-DD. Maps to Postmark's fromdate query parameter.
from_emailstring- Filter results to messages sent from this exact sender email address. Maps to Postmark's fromemail query parameter.
mailbox_hashstring- Filter to messages sent to an inbound address containing this mailbox hash (the portion after the + in a hashed inbound address, e.g. the "sales" portion of hash+sales@inbound.postmarkapp.com). Maps to Postmark's mailboxhash query parameter.
recipientstring- Filter results to messages sent to this exact recipient email address (your Postmark inbound address, e.g. hash@inbound.postmarkapp.com).
statusstring- Filter results by processing status. Valid values: blocked (rejected by an inbound rule), processed (successfully processed and delivered to your webhook), queued (accepted, awaiting processing), failed (processing attempted and failed), or scheduled (queued for a delayed retry). Defaults to processed when not specified.one of
blockedprocessedqueuedfailedscheduleddefaultprocessed subjectstring- Filter results to messages whose subject line contains this text.
tagstring- Filter results to messages that were received with this exact tag.
to_datestring- Filter to messages processed on or before this date, evaluated in US Eastern time. Format YYYY-MM-DD. Maps to Postmark's todate query parameter.
postmark_list_inbound_rulesList the inbound rule triggers configured on the Postmark server — the email addresses and domain patterns currently blocked from inbound processing.Read-onlyList Inbound Rules
List the inbound rule triggers configured on the Postmark server — the email addresses and domain patterns currently blocked from inbound processing. Supports paging via count (page size) and offset (records to skip). ASSUMPTION: the count/offset pagination parameters and their defaults (count=50, offset=0) are inferred from Postmark's legacy Swagger mirror (postmarkapp.com/swagger/server.yml) for the Inbound Rules section, since the current developer docs site does not separately document paging for this endpoint — verify against a live response if pagination behaves unexpectedly.
Inputs
countinteger- Number of inbound rule records to return per page. Defaults to 50 (assumed from Postmark's standard list pagination convention — not separately confirmed for this endpoint on the current docs site).default
50 offsetinteger- Number of inbound rule records to skip before starting to return results. Defaults to 0 (assumed from Postmark's standard list pagination convention — not separately confirmed for this endpoint on the current docs site).default
0
postmark_list_message_clicksList click (link click tracking) events for outbound messages sent from a Postmark server, with optional filters for recipient, tag, message stream, and the email client / operating system / platform / geolocation that triggered each click.Read-onlyList Message Clicks
List click (link click tracking) events for outbound messages sent from a Postmark server, with optional filters for recipient, tag, message stream, and the email client / operating system / platform / geolocation that triggered each click. Requires Link Tracking to be enabled on the relevant message stream, otherwise no click events will exist. Pagination is mandatory: count and offset must always be supplied.
Inputs
countintegerrequired- Number of click events to return in this page of results.
offsetintegerrequired- Number of click events to skip before starting to return results, used together with count to page through the full result set. Use 0 for the first page, then increment by count for each subsequent page.
citystring- Filter by the geolocated city from which the link was clicked.
client_companystring- Filter by the company that makes the email client used when the link was clicked (e.g. Google, Microsoft, Apple).
client_familystring- Filter by the client family/category used when the link was clicked (e.g. Chrome, Outlook, Mobile Safari).
client_namestring- Filter by the name of the email client used to view the message when the link was clicked (e.g. Chrome, Outlook, Apple Mail).
countrystring- Filter by the geolocated country from which the link was clicked.
message_streamstring- Filter results to click events for messages sent through this message stream ID. Defaults to outbound (the default transactional stream) if not specified. Maps to Postmark's messagestream query parameter.default
outbound os_companystring- Filter by the company that makes the operating system used when the link was clicked (e.g. Apple, Microsoft).
os_familystring- Filter by the operating system family used when the link was clicked (e.g. OS X, Windows, iOS).
os_namestring- Filter by the name of the operating system used when the link was clicked (e.g. OS X, Windows, iOS).
platformstring- Filter by the type of platform used when the link was clicked. Valid values: webmail, desktop, or mobile.one of
webmaildesktopmobile recipientstring- Filter results to click events for messages sent to this exact recipient email address.
regionstring- Filter by the geolocated region/state from which the link was clicked.
tagstring- Filter results to click events for messages that were sent with this exact tag.
postmark_list_message_opensList open (email open tracking) events for outbound messages sent from a Postmark server, with optional filters for recipient, tag, message stream, and the email client / operating system / platform / geolocation that triggered each open.Read-onlyList Message Opens
List open (email open tracking) events for outbound messages sent from a Postmark server, with optional filters for recipient, tag, message stream, and the email client / operating system / platform / geolocation that triggered each open. Requires Open Tracking to be enabled on the relevant message stream, otherwise no open events will exist. Pagination is mandatory: count and offset must always be supplied.
Inputs
countintegerrequired- Number of open events to return in this page of results.
offsetintegerrequired- Number of open events to skip before starting to return results, used together with count to page through the full result set. Use 0 for the first page, then increment by count for each subsequent page.
citystring- Filter by the geolocated city from which the message was opened.
client_companystring- Filter by the company that makes the email client used to open the message (e.g. Google, Microsoft, Apple).
client_familystring- Filter by the client family/category used to open the message (e.g. Chrome, Outlook, Mobile Safari).
client_namestring- Filter by the name of the email client used to open the message (e.g. Chrome, Outlook, Apple Mail).
countrystring- Filter by the geolocated country from which the message was opened.
message_streamstring- Filter results to open events for messages sent through this message stream ID. Defaults to outbound (the default transactional stream) if not specified. Maps to Postmark's messagestream query parameter.default
outbound os_companystring- Filter by the company that makes the operating system used to open the message (e.g. Apple, Microsoft).
os_familystring- Filter by the operating system family used to open the message (e.g. OS X, Windows, iOS).
os_namestring- Filter by the name of the operating system used to open the message (e.g. OS X, Windows, iOS).
platformstring- Filter by the type of platform used to open the message. Valid values: webmail, desktop, or mobile.one of
webmaildesktopmobile recipientstring- Filter results to open events for messages sent to this exact recipient email address.
regionstring- Filter by the geolocated region/state from which the message was opened.
tagstring- Filter results to open events for messages that were sent with this exact tag.
postmark_list_message_streamsList the message streams configured on the current Postmark server.Read-onlyList Message Streams
List the message streams configured on the current Postmark server. Message streams separate transactional mail from broadcast/marketing mail so bounce and engagement behavior can be tracked independently. Filter by stream type (All, Inbound, Transactional, Broadcasts) and optionally include archived streams.
Inputs
include_archived_streamsboolean- Whether to include archived message streams in the results. Defaults to false.default
false message_stream_typestring- Filter streams by type. One of: All, Inbound, Transactional, Broadcasts. Defaults to All.one of
AllInboundTransactionalBroadcastsdefaultAll
postmark_list_outbound_messagesList messages sent (outbound) from a Postmark server, with optional filters for recipient, sender, tag, subject, delivery status, message stream, and date range.Read-onlyList Outbound Messages
List messages sent (outbound) from a Postmark server, with optional filters for recipient, sender, tag, subject, delivery status, message stream, and date range. Returns summary metadata for each matching message (Message ID, subject, recipient, tag, status, received/submitted timestamps) but not the full message body — use postmark_get_outbound_message for full details of a specific message. Pagination is mandatory: count and offset must always be supplied, and Postmark caps count at 500 per request.
Inputs
countintegerrequired- Number of outbound messages to return in this page of results. Must be between 1 and 500 (Postmark's maximum page size for this endpoint).
offsetintegerrequired- Number of messages to skip before starting to return results, used together with count to page through the full result set. Use 0 for the first page, then increment by count for each subsequent page.
from_datestring- Filter to messages processed on or after this date, evaluated in US Eastern time. Format YYYY-MM-DD. Maps to Postmark's fromdate query parameter.
from_emailstring- Filter results to messages sent from this exact sender email address. Maps to Postmark's fromemail query parameter.
message_streamstring- Filter results to messages sent through this message stream ID (e.g. the default outbound transactional stream, or a specific broadcast stream). Maps to Postmark's messagestream query parameter.
recipientstring- Filter results to messages sent to this exact recipient email address.
statusstring- Filter results by delivery status. Valid values: queued (accepted by Postmark, not yet sent to a receiving server), sent (handed off to the receiving server), or processed (accepted by Postmark regardless of eventual delivery outcome, including messages that later bounced).one of
queuedsentprocessed subjectstring- Filter results to messages whose subject line contains this text.
tagstring- Filter results to messages that were sent with this exact tag.
to_datestring- Filter to messages processed on or before this date, evaluated in US Eastern time. Format YYYY-MM-DD. Maps to Postmark's todate query parameter.
postmark_list_suppressionsList all suppressed email addresses for a specific Postmark message stream.Read-onlyList Suppressions
List all suppressed email addresses for a specific Postmark message stream. Suppressions prevent Postmark from sending to an address (e.g. due to a hard bounce, spam complaint, or manual suppression) until the address is reactivated or removed from the suppression list. Optionally filter by suppression reason, origin (who/what created the suppression), a creation-date range, or a single email address. Returns an array of suppression records, each including EmailAddress, SuppressionReason, Origin, and CreatedAt.
Inputs
stream_idstringrequired- The unique identifier (ID) of the message stream to list suppressions for, e.g. "outbound" or "broadcasts".
email_addressstring- Filter results down to a single specific email address. If omitted, suppressions for all addresses in the stream are returned.
fromdatestring- Start date (inclusive) to filter suppressions by creation date, formatted YYYY-MM-DD. If omitted, no lower bound is applied.
originstring- Filter results by the origin that created the suppression. One of: Recipient (bounce/complaint reported by the recipient), Customer (added manually via API/dashboard), Admin (added by Postmark support). If omitted, suppressions from all origins are returned.one of
RecipientCustomerAdmin suppression_reasonstring- Filter results to suppressions created for this reason. One of: HardBounce, SpamComplaint, ManualSuppression. If omitted, suppressions of all reasons are returned.one of
HardBounceSpamComplaintManualSuppression todatestring- End date (inclusive) to filter suppressions by creation date, formatted YYYY-MM-DD. If omitted, no upper bound is applied.
postmark_list_templatesList email templates and layouts on the current Postmark server, with pagination via count and offset.Read-onlyList Templates
List email templates and layouts on the current Postmark server, with pagination via count and offset. Optionally filter by template_type (All, Standard, or Layout) or by the alias of a parent layout template.
Inputs
countinteger- Number of templates to return in this page of results.default
50 layout_templatestring- Filter results to only templates that use the layout with this alias.
offsetinteger- Number of templates to skip before starting to return results, for pagination.default
0 template_typestring- Filter results by template type: All, Standard, or Layout.one of
AllStandardLayoutdefaultAll
postmark_list_webhooksList the webhooks configured on the current Postmark server, including each webhook's URL, message stream scope, HTTP auth/header configuration, and which event triggers (Open, Click, Delivery, Bounce, SpamComplaint, SubscriptionChange) are enabled.Read-onlyList Webhooks
List the webhooks configured on the current Postmark server, including each webhook's URL, message stream scope, HTTP auth/header configuration, and which event triggers (Open, Click, Delivery, Bounce, SpamComplaint, SubscriptionChange) are enabled. Optionally filter to webhooks scoped to a specific message stream.
Inputs
message_streamstring- Optional message stream ID to filter webhooks by. If omitted, webhooks for all streams are returned.
postmark_activate_bounceReactivate a previously deactivated (bounced) email address on the current Postmark server, so future messages sent to it will be attempted again instead of being suppressed.WriteActivate Bounce
Reactivate a previously deactivated (bounced) email address on the current Postmark server, so future messages sent to it will be attempted again instead of being suppressed. Use postmark_list_bounces or postmark_get_bounce first to find the bounce ID for the address you want to reactivate.
- Idempotent
Inputs
bounce_idintegerrequired- The numeric ID of the bounce whose associated email address should be reactivated. Example: 42.
postmark_bypass_inbound_messageBypass (unblock) an inbound message that Postmark blocked because it matched an inbound spam or filtering rule, allowing it to be reprocessed and delivered to your configured inbound webhook.WriteBypass Inbound Message
Bypass (unblock) an inbound message that Postmark blocked because it matched an inbound spam or filtering rule, allowing it to be reprocessed and delivered to your configured inbound webhook. Only messages whose current status is Blocked can be bypassed; calling this on a message that isn't blocked has no additional effect. Takes no request body.
- Idempotent
Inputs
message_idstringrequired- The Postmark Message ID (a UUID) of the blocked inbound message to bypass. Obtain this from postmark_list_inbound_messages (filter status=blocked) or from postmark_get_inbound_message.
postmark_create_inbound_ruleCreate a new inbound rule trigger on the Postmark server to block inbound email processing for a specific email address or domain pattern.WriteCreate Inbound Rule
Create a new inbound rule trigger on the Postmark server to block inbound email processing for a specific email address or domain pattern. Provide a single address (e.g. "spam@example.com") or a wildcard domain pattern (e.g. "*@spamdomain.com") in the Rule field. Once created, any inbound message matching the rule is blocked before it reaches your inbound webhook. The response includes the newly created rule's ID, which is needed later to delete the rule.
Inputs
rulestringrequired- The email address or wildcard domain pattern to block from inbound processing. Examples: "spam@example.com" (single address) or "*@spamdomain.com" (entire domain).
postmark_create_message_streamCreate a new message stream on the current Postmark server.WriteCreate Message Stream
Create a new message stream on the current Postmark server. A Server can have up to 10 message streams. Provide a unique ID, a display name, and a MessageStreamType of either Transactional or Broadcasts (the default Inbound stream cannot be created via this endpoint). Optionally configure subscription management for Broadcasts streams.
Inputs
message_stream_typestringrequired- The type of message stream to create. Must be either Transactional or Broadcasts.one of
TransactionalBroadcasts namestringrequired- Human-friendly display name for the message stream, shown in the Postmark dashboard.
stream_idstringrequired- Unique identifier for the new message stream. Must be unique on the server, lowercase, and may contain letters, numbers, and dashes, e.g. "onboarding-emails". This becomes the stream's ID (Postmark's API field name is "ID").
descriptionstring- Optional free-text description of the message stream's purpose.
subscription_management_configurationobject- Optional object controlling unsubscribe handling for Broadcasts streams. Shape: {"UnsubscribeHandlingType": "none"|"Postmark"|"Custom"}. Use "Postmark" to let Postmark host the unsubscribe page, "Custom" if you manage unsubscribes yourself, or "none" to disable unsubscribe handling.
postmark_create_suppressionsManually add one or more email addresses to the suppression list for a specific Postmark message stream, preventing Postmark from sending to those addresses on this stream until the suppression is removed.WriteCreate Suppressions
Manually add one or more email addresses to the suppression list for a specific Postmark message stream, preventing Postmark from sending to those addresses on this stream until the suppression is removed. Accepts up to 50 addresses per call. Each item in the suppressions array must be a raw Postmark-shaped object with a single key, e.g. {"EmailAddress": "user@example.com"}. Returns, for each address, whether the suppression was applied (Status: "Suppressed") or why it could not be (e.g. already suppressed for a different reason).
Inputs
stream_idstringrequired- The unique identifier (ID) of the message stream to add suppressions to, e.g. "outbound" or "broadcasts".
suppressionsarrayrequired- Array of email addresses to suppress, up to 50 per call. Each item must be a raw Postmark-shaped object with a single key "EmailAddress", e.g. {"EmailAddress": "user@example.com"} — pass these objects directly, do not use a different inner key name. Example value: [{"EmailAddress": "bounce1@example.com"}, {"EmailAddress": "bounce2@example.com"}].
postmark_create_templateCreate a new email template or layout on the current Postmark server.WriteCreate Template
Create a new email template or layout on the current Postmark server. At least one of html_body or text_body must be provided. subject is required for Standard templates (it does not apply to Layout templates). Use layout_template to associate a Standard template with a parent Layout's alias.
Inputs
namestringrequired- Descriptive name of the template, shown in the Postmark dashboard.
aliasstring- Unique alias for the template, used to reference it in the withTemplate send API instead of its numeric ID.
html_bodystring- HTML content of the template. Required if text_body is not provided — at least one of html_body or text_body must be set.
layout_templatestring- Alias of the parent Layout template this Standard template should render inside. Only relevant when template_type is Standard.
subjectstring- Subject line template, rendered with the same placeholder data as the body. Required when template_type is Standard; not used for Layout templates.
template_typestring- Type of template to create: Standard (a regular email template) or Layout (a wrapper template other templates can inherit from). Defaults to Standard.one of
StandardLayoutdefaultStandard text_bodystring- Plain text content of the template. Required if html_body is not provided — at least one of html_body or text_body must be set.
postmark_create_webhookCreate a new webhook on the current Postmark server.WriteCreate Webhook
Create a new webhook on the current Postmark server. Postmark will POST event payloads to the given HTTPS URL as they occur. Optionally scope the webhook to a single message stream, protect the endpoint with basic auth or custom headers, and choose which event triggers (Open, Click, Delivery, Bounce, SpamComplaint, SubscriptionChange) fire it.
Inputs
urlstringrequired- The HTTPS endpoint Postmark will POST event payloads to whenever an enabled trigger fires.
http_authobject- Optional HTTP basic auth credentials Postmark will send when calling your webhook URL, if your endpoint requires authentication. Shape: {"Username": "...", "Password": "..."}.
http_headersarray- Optional array of custom HTTP headers Postmark will send with each webhook request. Each item shape: {"Name": "...", "Value": "..."}.
message_streamstring- Optional message stream ID to scope this webhook to. If omitted, the webhook applies to the server's default stream behavior.
triggersobject- Optional object enabling specific event triggers for this webhook. Shape: {"Open": {"Enabled": bool, "PostFirstOpenOnly": bool}, "Click": {"Enabled": bool}, "Delivery": {"Enabled": bool}, "Bounce": {"Enabled": bool, "IncludeContent": bool}, "SpamComplaint": {"Enabled": bool, "IncludeContent": bool}, "SubscriptionChange": {"Enabled": bool}}. Only include the trigger keys you want to configure; unspecified triggers keep Postmark's defaults (typically disabled).
postmark_delete_suppressionsRemove one or more manually-created suppressions from a specific Postmark message stream, up to 50 addresses per call.WriteDelete Suppressions
Remove one or more manually-created suppressions from a specific Postmark message stream, up to 50 addresses per call. Each item in the suppressions array must be a raw Postmark-shaped object with a single key, e.g. {"EmailAddress": "user@example.com"}. Important: suppressions whose Origin is SpamComplaint cannot be removed via this endpoint — Postmark reports those back as not removed. This endpoint uses HTTP POST (not DELETE) per Postmark's own API design, so it is not annotated as a destructive-method tool, even though it permanently removes eligible suppression records.
Inputs
stream_idstringrequired- The unique identifier (ID) of the message stream to remove suppressions from, e.g. "outbound" or "broadcasts".
suppressionsarrayrequired- Array of email addresses to remove from suppression, up to 50 per call. Each item must be a raw Postmark-shaped object with a single key "EmailAddress", e.g. {"EmailAddress": "user@example.com"}. Note: SpamComplaint-origin suppressions cannot be removed via this endpoint and will be reported back as not removed. Example value: [{"EmailAddress": "bounce1@example.com"}].
postmark_retry_inbound_messageRetry processing of an inbound message that previously failed, causing Postmark to attempt delivery to your configured inbound webhook again.WriteRetry Inbound Message
Retry processing of an inbound message that previously failed, causing Postmark to attempt delivery to your configured inbound webhook again. Only messages whose current status is Failed can be retried; calling this on a message that isn't in a failed state has no additional effect. Takes no request body.
- Idempotent
Inputs
message_idstringrequired- The Postmark Message ID (a UUID) of the failed inbound message to retry. Obtain this from postmark_list_inbound_messages (filter status=failed) or from postmark_get_inbound_message.
postmark_send_batch_emailsSend up to 500 individual transactional emails in a single batch request (max 50MB total payload).WriteSend Batch Emails
Send up to 500 individual transactional emails in a single batch request (max 50MB total payload). Each item in the messages array has the same shape as a single Send Email call (from and to are required per message; the rest are optional). Postmark processes each message independently and returns a per-message result array.
Inputs
messagesarrayrequired- Array of email message objects to send in this batch. Maximum 500 items and 50MB total payload. Each item requires from and to; other fields mirror the single Send Email tool.
postmark_send_batch_emails_with_templatesSend up to 500 template-rendered transactional emails in a single batch request.WriteSend Batch Emails with Templates
Send up to 500 template-rendered transactional emails in a single batch request. Each item in the messages array mirrors a single Send Email with Template call: TemplateId or TemplateAlias identifies the template, TemplateModel supplies the render data, and From/To are required. Postmark processes each message independently and returns a per-message result array.
Inputs
messagesarrayrequired- Array of template-based email message objects to send in this batch. Maximum 500 items. Each item requires From, To, TemplateModel, and exactly one of TemplateId or TemplateAlias.
postmark_send_bulk_emailSend one message (subject and body defined once) to a large list of recipients via Postmark's Bulk Email API — distinct from the Batch API (Send Batch Emails), which sends a different message per recipient in one call.WriteSend Bulk Email
Send one message (subject and body defined once) to a large list of recipients via Postmark's Bulk Email API — distinct from the Batch API (Send Batch Emails), which sends a different message per recipient in one call. Each entry in the messages array is a recipient plus optional per-recipient template variables. Requires the sending server to have Bulk API access activated by Postmark support.
Inputs
fromstringrequired- The sender email address, with a confirmed Sender Signature on this server.
messagesarrayrequired- Array of recipient entries. Each item needs at least 'to'; template_model supplies per-recipient values for {{variable}} placeholders in subject/html_body/text_body. Maximum 500 recipients per send.
subjectstringrequired- The subject line of the email. May include {{variable}} placeholders resolved per-recipient via each message's template_model.
attachmentsarray- Array of {Name, Content, ContentType, ContentID} attachment objects, attached to every message in the send. Counts against the 50MB total payload limit.
headersarray- Array of custom headers as {Name, Value} objects, applied to every message in the send.
html_bodystring- HTML body content. Required if text_body is not provided. May include {{variable}} placeholders resolved per-recipient via each message's template_model.
message_streamstring- Message stream to send through. Defaults to the broadcast stream if omitted.
metadataobject- Free-form key-value metadata attached to every message in the send.
reply_tostring- Reply-To email address for this send.
tagstring- Tag used to categorize this send. Maximum 1000 characters.
text_bodystring- Plain text body content. Required if html_body is not provided.
track_linksstring- Link tracking mode: None, HtmlAndText, HtmlOnly, or TextOnly.one of
NoneHtmlAndTextHtmlOnlyTextOnly track_opensboolean- Enable open tracking for this send.
postmark_send_emailSend a single transactional email through Postmark.WriteSend Email
Send a single transactional email through Postmark. Requires a From sender address and one or more To recipients (comma-separated, up to 50). At least one of html_body or text_body must be provided. Supports CC/BCC, a reply-to override, custom headers, attachments, free-form metadata, open/link tracking, and routing through a specific message stream.
Inputs
fromstringrequired- Sender email address. Can include a display name, e.g. 'Sender Name <sender@example.com>'. Must be a verified Sender Signature or domain on the Postmark server.
tostringrequired- Recipient email address(es). Multiple addresses are comma-separated, up to 50 total. Each may include a display name, e.g. 'Name <recipient@example.com>'.
attachmentsarray- Array of file attachments. Each item is an object with Name, Content (base64-encoded file data), ContentType, and an optional ContentID (used to reference inline images from the HTML body via 'cid:').
bccstring- BCC recipient email address(es), comma-separated for multiple.
ccstring- CC recipient email address(es), comma-separated for multiple.
headersarray- Array of custom email headers to include. Each item is an object with Name and Value keys, e.g. [{"Name":"X-Custom-Header","Value":"value"}].
html_bodystring- HTML body content of the email. Required if text_body is not provided — at least one of html_body or text_body must be set.
message_streamstring- The message stream to send this email through. Defaults to 'outbound' for transactional email.default
outbound metadataobject- Free-form key-value metadata to attach to the message, returned later in webhooks and message details. Example: {"order-id":"1234"}.
reply_tostring- Reply-To email address to use instead of the From address.
subjectstring- Subject line of the email.
tagstring- Tag used to categorize this email for tracking and statistics. Maximum 1000 characters.
text_bodystring- Plain text body content of the email. Required if html_body is not provided — at least one of html_body or text_body must be set.
track_linksstring- Link tracking mode for this email. One of None, HtmlAndText, HtmlOnly, or TextOnly. If omitted, the server's default link-tracking setting is used.one of
NoneHtmlAndTextHtmlOnlyTextOnly track_opensboolean- Whether to enable open tracking for this email. If omitted, the server's default open-tracking setting is used.
postmark_send_email_with_templateSend a single transactional email rendered from a Postmark template.WriteSend Email with Template
Send a single transactional email rendered from a Postmark template. Identify the template by template_id or template_alias (exactly one is required) and supply template_model with the data used to render its placeholders. Supports the same From/To/CC/BCC, headers, attachments, metadata, and tracking options as a regular send.
Inputs
fromstringrequired- Sender email address. Can include a display name, e.g. 'Sender Name <sender@example.com>'. Must be a verified Sender Signature or domain on the Postmark server.
template_modelobjectrequired- Data object used to render the template's placeholder variables. Example: {"name":"Jane","product_url":"https://example.com"}.
tostringrequired- Recipient email address(es). Multiple addresses are comma-separated, up to 50 total.
attachmentsarray- Array of file attachments. Each item is an object with Name, Content (base64-encoded file data), ContentType, and an optional ContentID (used to reference inline images from the rendered HTML via 'cid:').
bccstring- BCC recipient email address(es), comma-separated for multiple.
ccstring- CC recipient email address(es), comma-separated for multiple.
headersarray- Array of custom email headers to include. Each item is an object with Name and Value keys, e.g. [{"Name":"X-Custom-Header","Value":"value"}].
inline_cssboolean- Whether to inline CSS styles into the rendered HTML. Only applies to templates that use a Layout with a <style> block.
message_streamstring- The message stream to send this email through. Defaults to 'outbound' for transactional email.default
outbound metadataobject- Free-form key-value metadata to attach to the message, returned later in webhooks and message details. Example: {"order-id":"1234"}.
reply_tostring- Reply-To email address to use instead of the From address.
tagstring- Tag used to categorize this email for tracking and statistics. Maximum 1000 characters.
template_aliasstring- Alias of the template to render. Required if template_id is not provided — exactly one of template_id or template_alias must be set.
template_idinteger- Numeric ID of the template to render. Required if template_alias is not provided — exactly one of template_id or template_alias must be set.
track_linksstring- Link tracking mode for this email. One of None, HtmlAndText, HtmlOnly, or TextOnly. If omitted, the server's default link-tracking setting is used.one of
NoneHtmlAndTextHtmlOnlyTextOnly track_opensboolean- Whether to enable open tracking for this email. If omitted, the server's default open-tracking setting is used.
postmark_unarchive_message_streamUnarchive a previously archived message stream on the current Postmark server, restoring it to active use before its 30-day deletion window elapses.WriteUnarchive Message Stream
Unarchive a previously archived message stream on the current Postmark server, restoring it to active use before its 30-day deletion window elapses. Fails if the stream was not archived or if it has already been permanently deleted.
Inputs
stream_idstringrequired- The unique identifier (ID) of the archived message stream to restore, e.g. "onboarding-emails".
postmark_update_message_streamUpdate an existing message stream's display name, description, or subscription management configuration on the current Postmark server.WriteUpdate Message Stream
Update an existing message stream's display name, description, or subscription management configuration on the current Postmark server. The stream's ID and type cannot be changed after creation.
- Idempotent
Inputs
stream_idstringrequired- The unique identifier (ID) of the message stream to update, e.g. "onboarding-emails".
descriptionstring- New free-text description of the message stream's purpose. Omit to leave unchanged.
namestring- New human-friendly display name for the message stream. Omit to leave unchanged.
subscription_management_configurationobject- Optional object controlling unsubscribe handling for Broadcasts streams. Shape: {"UnsubscribeHandlingType": "none"|"Postmark"|"Custom"}. Omit to leave unchanged.
postmark_update_server_infoUpdate configuration settings for the current Postmark server (the server identified by the API token used to authenticate).WriteUpdate Server Info
Update configuration settings for the current Postmark server (the server identified by the API token used to authenticate). Every field is optional and only the fields you provide are changed on Postmark's side; fields left blank are not modified. Use this to rename the server, change its color, toggle open/click tracking, or set webhook URLs for delivery, bounce, open, click, and inbound events.
- Idempotent
Inputs
bounce_hook_urlstring- URL that Postmark will POST to whenever a message sent from this server bounces. Must be a valid HTTPS URL. Maps to Postmark's 'BounceHookUrl' field.
click_hook_urlstring- URL that Postmark will POST to whenever a tracked link in a message from this server is clicked. Must be a valid HTTPS URL. Maps to Postmark's 'ClickHookUrl' field.
colorstring- Color label shown for this server in the Postmark dashboard. One of: Purple, Blue, Turquoise, Green, Red, Yellow, Grey, Orange. Maps to Postmark's 'Color' field.one of
PurpleBlueTurquoiseGreenRedYellowGreyOrange delivery_hook_urlstring- URL that Postmark will POST to whenever a message sent from this server is successfully delivered. Must be a valid HTTPS URL. Maps to Postmark's 'DeliveryHookUrl' field.
enable_smtp_api_error_hooksboolean- Whether Postmark should call the bounce webhook for SMTP API errors as well as bounces. Maps to Postmark's 'EnableSmtpApiErrorHooks' field.
inbound_domainstring- Inbound domain to associate with this server's inbound email address, used for parsing incoming email. Maps to Postmark's 'InboundDomain' field.
inbound_hook_urlstring- URL that Postmark will POST to whenever this server receives an inbound email. Must be a valid HTTPS URL. Maps to Postmark's 'InboundHookUrl' field.
inbound_spam_thresholdinteger- SpamAssassin score threshold above which inbound messages are marked as spam and blocked from forwarding. Higher values are more permissive. Maps to Postmark's 'InboundSpamThreshold' field.
include_bounce_content_in_hookboolean- Whether the bounce webhook payload should include the full bounce content (raw source). Maps to Postmark's 'IncludeBounceContentInHook' field.
namestring- Display name for this Postmark server, shown in the dashboard. Maps to Postmark's 'Name' field. Example: 'Production Server'.
open_hook_urlstring- URL that Postmark will POST to whenever a message sent from this server is opened (requires TrackOpens). Must be a valid HTTPS URL. Maps to Postmark's 'OpenHookUrl' field.
post_first_open_onlyboolean- Whether the open webhook should fire only for the first open of a message, rather than every open. Maps to Postmark's 'PostFirstOpenOnly' field.
raw_email_enabledboolean- Whether inbound emails should be posted to the inbound webhook as a raw MIME message instead of Postmark's parsed JSON format. Maps to Postmark's 'RawEmailEnabled' field.
smtp_api_activatedboolean- Whether this server is permitted to send messages via the SMTP API (in addition to the standard email API). Maps to Postmark's 'SmtpApiActivated' field.
track_linksstring- Default link-tracking behavior for messages sent from this server. One of: None, HtmlAndText, HtmlOnly, TextOnly. Maps to Postmark's 'TrackLinks' field.one of
NoneHtmlAndTextHtmlOnlyTextOnly track_opensboolean- Whether open tracking is enabled by default for messages sent from this server. Maps to Postmark's 'TrackOpens' field.
postmark_update_templateUpdate an existing email template or layout on the current Postmark server, identified by numeric ID or alias.WriteUpdate Template
Update an existing email template or layout on the current Postmark server, identified by numeric ID or alias. At least one of html_body or text_body should remain set after the update. subject applies to Standard templates and is not used for Layout templates.
- Idempotent
Inputs
namestringrequired- Descriptive name of the template, shown in the Postmark dashboard.
template_id_or_aliasstringrequired- Numeric ID or alias string of the template to update.
aliasstring- Unique alias for the template, used to reference it in the withTemplate send API instead of its numeric ID.
html_bodystring- HTML content of the template. Required if text_body is not also being set to a value — the template must end up with at least one of the two.
layout_templatestring- Alias of the parent Layout template this Standard template should render inside.
subjectstring- Subject line template, rendered with the same placeholder data as the body. Applies to Standard templates; not used for Layout templates.
text_bodystring- Plain text content of the template. Required if html_body is not also being set to a value — the template must end up with at least one of the two.
postmark_update_webhookUpdate an existing webhook on the current Postmark server by its numeric ID.WriteUpdate Webhook
Update an existing webhook on the current Postmark server by its numeric ID. Any field you omit is left unchanged. Use this to change the target URL, HTTP auth/header configuration, or which event triggers (Open, Click, Delivery, Bounce, SpamComplaint, SubscriptionChange) fire the webhook.
- Idempotent
Inputs
webhook_idstringrequired- The numeric ID of the webhook to update, as returned by List Webhooks or Create Webhook.
http_authobject- Optional replacement HTTP basic auth credentials Postmark will send when calling your webhook URL. Shape: {"Username": "...", "Password": "..."}. Omit to leave unchanged.
http_headersarray- Optional replacement array of custom HTTP headers Postmark will send with each webhook request. Each item shape: {"Name": "...", "Value": "..."}. Omit to leave unchanged.
triggersobject- Optional replacement object enabling specific event triggers for this webhook. Shape: {"Open": {"Enabled": bool, "PostFirstOpenOnly": bool}, "Click": {"Enabled": bool}, "Delivery": {"Enabled": bool}, "Bounce": {"Enabled": bool, "IncludeContent": bool}, "SpamComplaint": {"Enabled": bool, "IncludeContent": bool}, "SubscriptionChange": {"Enabled": bool}}. Omit to leave unchanged; only include the trigger keys you want to change.
urlstring- Optional replacement HTTPS endpoint Postmark will POST event payloads to. Omit to leave unchanged.
postmark_validate_templateValidate template content without saving it, rendering subject, html_body, and/or text_body against test_render_model to surface syntax errors and preview the rendered output.WriteValidate Template
Validate template content without saving it, rendering subject, html_body, and/or text_body against test_render_model to surface syntax errors and preview the rendered output. Provide at least one of subject, html_body, or text_body to validate.
Inputs
html_bodystring- HTML body content to validate. Provide at least one of subject, html_body, or text_body.
inline_css_for_html_test_renderboolean- Whether to inline CSS styles into the rendered HTML preview. Only relevant when html_body uses a Layout with a <style> block.
layout_templatestring- Alias of the parent Layout template to validate this content against, if applicable.
subjectstring- Subject line content to validate. Provide at least one of subject, html_body, or text_body.
template_typestring- Type of template being validated: Standard or Layout. Affects which placeholders (e.g. {{{@content}}}) are considered valid.one of
StandardLayout test_render_modelobject- Sample data object used to render the placeholders in subject, html_body, and text_body for this validation. Example: {"name":"Jane"}.
text_bodystring- Plain text body content to validate. Provide at least one of subject, html_body, or text_body.
postmark_archive_message_streamArchive a message stream on the current Postmark server, removing it from active use.DestructiveArchive Message Stream
Archive a message stream on the current Postmark server, removing it from active use. Archived streams are permanently deleted 30 days after archiving unless unarchived. A Server can have at most 10 message streams in total, and the default streams created with the server (e.g. the default Inbound and Outbound streams) cannot be archived.
Inputs
stream_idstringrequired- The unique identifier (ID) of the message stream to archive, e.g. "onboarding-emails". Default streams cannot be archived.
postmark_delete_inbound_rulePermanently remove an inbound rule trigger from the Postmark server by its ID, restoring normal inbound processing for the previously blocked email address or domain pattern.DestructiveDelete Inbound Rule
Permanently remove an inbound rule trigger from the Postmark server by its ID, restoring normal inbound processing for the previously blocked email address or domain pattern. The ID is the value returned in the ID field when the rule was created (see Create Inbound Rule) or found via List Inbound Rules. This operation cannot be undone — recreate the rule with Create Inbound Rule if it is removed by mistake.
- Idempotent
Inputs
trigger_idstringrequired- The ID of the inbound rule trigger to delete, as returned by Create Inbound Rule or found via List Inbound Rules.
postmark_delete_templatePermanently delete an email template or layout from the current Postmark server, identified by numeric ID or alias.DestructiveDelete Template
Permanently delete an email template or layout from the current Postmark server, identified by numeric ID or alias. This action cannot be undone; any Standard templates that reference a deleted Layout will need to be updated.
- Idempotent
Inputs
template_id_or_aliasstringrequired- Numeric ID or alias string of the template to permanently delete.
postmark_delete_webhookPermanently delete a webhook from the current Postmark server by its numeric ID.DestructiveDelete Webhook
Permanently delete a webhook from the current Postmark server by its numeric ID. Postmark will stop sending event notifications to this webhook's URL immediately. This action cannot be undone.
- Idempotent
Inputs
webhook_idstringrequired- The numeric ID of the webhook to delete, as returned by List Webhooks or Create Webhook.
No tools match.