Postmark API — Outbound
Postmark API — Outbound. 20 operations. Lead operation: Postmark Outbound message search. Self-contained Naftiko capability covering one Postmark business surface.
What You Can Do
MCP Tools
postmark-outbound-message-search
Postmark Outbound message search
postmark-clicks-all-messages
Postmark Clicks for a all messages
postmark-retrieve-message-clicks
Postmark Retrieve Message Clicks
postmark-opens-all-messages
Postmark Opens for all messages
postmark-retrieve-message-opens
Postmark Retrieve Message Opens
postmark-outbound-message-details
Postmark Outbound message details
postmark-outbound-message-dump
Postmark Outbound message dump
postmark-get-outbound-overview
Postmark Get outbound overview
postmark-get-bounce-counts
Postmark Get bounce counts
postmark-get-click-counts
Postmark Get click counts
postmark-get-browser-usage-family
Postmark Get browser usage by family
postmark-get-clicks-body-location
Postmark Get clicks by body location
postmark-get-browser-plaform-usage
Postmark Get browser plaform usage
postmark-get-email-open-counts
Postmark Get email open counts
postmark-get-email-client-usage
Postmark Get email client usage
postmark-get-email-platform-usage
Postmark Get email platform usage
postmark-get-email-read-times
Postmark Get email read times
postmark-get-sent-counts
Postmark Get sent counts
postmark-get-spam-complaints
Postmark Get spam complaints
postmark-get-tracked-email-counts
Postmark Get tracked email counts
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Postmark API — Outbound
description: 'Postmark API — Outbound. 20 operations. Lead operation: Postmark Outbound message search. Self-contained Naftiko
capability covering one Postmark business surface.'
tags:
- Postmark
- Outbound
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
POSTMARK_API_KEY: POSTMARK_API_KEY
capability:
consumes:
- type: http
namespace: postmark-outbound
baseUri: http://{{baseurl}}
description: Postmark API — Outbound business capability. Self-contained, no shared references.
resources:
- name: messages-outbound
path: /messages/outbound
operations:
- name: get
method: GET
description: Postmark Outbound message search
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: count
in: query
type: string
description: Number of bounces to return per request. Max 500.
- name: offset
in: query
type: string
description: Number of bounces to skip.
- name: recipient
in: query
type: string
description: Filter by the user who was receiving the email
- name: fromemail
in: query
type: string
description: Filter by the sender email address
- name: tag
in: query
type: string
description: Filter by tag
- name: status
in: query
type: string
description: Filter by status (`blocked`, `processed`, `queued`, `failed`, `scheduled`)
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: messages-outbound-clicks
path: /messages/outbound/clicks
operations:
- name: get
method: GET
description: Postmark Clicks for a all messages
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: count
in: query
type: string
description: Number of bounces to return per request. Max 500.
- name: offset
in: query
type: string
description: Number of bounces to skip.
- name: recipient
in: query
type: string
description: Filter by the user who was receiving the email
- name: tag
in: query
type: string
description: Filter by tag
- name: client_name
in: query
type: string
description: Filter by client name, i.e. Outlook, Gmail
- name: client_company
in: query
type: string
description: Filter by company, i.e. Microsoft, Apple, Google
- name: client_family
in: query
type: string
description: Filter by client family, i.e. OS X, Chrome
- name: os_name
in: query
type: string
description: Filter by full OS name and specific version, i.e. OS X 10.9 Mavericks, Windows 7
- name: os_family
in: query
type: string
description: Filter by kind of OS used without specific version, i.e. OS X, Windows
- name: os_company
in: query
type: string
description: Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation
- name: platform
in: query
type: string
description: Filter by platform, i.e. webmail, desktop, mobile
- name: country
in: query
type: string
description: Filter by country messages were opened in, i.e. Denmark, Russia
- name: region
in: query
type: string
description: Filter by full name of region messages were opened in, i.e. Moscow, New York
- name: city
in: query
type: string
description: Filter by full name of region messages were opened in, i.e. Moscow, New York
- name: messages-outbound-clicks-messageid
path: /messages/outbound/clicks/{messageid}
operations:
- name: get
method: GET
description: Postmark Retrieve Message Clicks
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: count
in: query
type: string
description: Number of bounces to return per request. Max 500.
- name: offset
in: query
type: string
description: Number of bounces to skip.
- name: messageid
in: path
type: string
description: The ID of the message which should bypass inbound rules.
required: true
- name: messages-outbound-opens
path: /messages/outbound/opens
operations:
- name: get
method: GET
description: Postmark Opens for all messages
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: count
in: query
type: string
description: Number of bounces to return per request. Max 500.
- name: offset
in: query
type: string
description: Number of bounces to skip.
- name: recipient
in: query
type: string
description: Filter by the user who was receiving the email
- name: tag
in: query
type: string
description: Filter by tag
- name: client_name
in: query
type: string
description: Filter by client name, i.e. Outlook, Gmail
- name: client_company
in: query
type: string
description: Filter by company, i.e. Microsoft, Apple, Google
- name: client_family
in: query
type: string
description: Filter by client family, i.e. OS X, Chrome
- name: os_name
in: query
type: string
description: Filter by full OS name and specific version, i.e. OS X 10.9 Mavericks, Windows 7
- name: os_family
in: query
type: string
description: Filter by kind of OS used without specific version, i.e. OS X, Windows
- name: os_company
in: query
type: string
description: Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation
- name: platform
in: query
type: string
description: Filter by platform, i.e. webmail, desktop, mobile
- name: country
in: query
type: string
description: Filter by country messages were opened in, i.e. Denmark, Russia
- name: region
in: query
type: string
description: Filter by full name of region messages were opened in, i.e. Moscow, New York
- name: city
in: query
type: string
description: Filter by full name of region messages were opened in, i.e. Moscow, New York
- name: messages-outbound-opens-messageid
path: /messages/outbound/opens/{messageid}
operations:
- name: get
method: GET
description: Postmark Retrieve Message Opens
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: count
in: query
type: string
description: Number of bounces to return per request. Max 500.
- name: offset
in: query
type: string
description: Number of bounces to skip.
- name: messageid
in: path
type: string
description: The ID of the message which should bypass inbound rules.
required: true
- name: messages-outbound-messageid-details
path: /messages/outbound/{messageid}/details
operations:
- name: get
method: GET
description: Postmark Outbound message details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: messageid
in: path
type: string
description: The ID of the message which should bypass inbound rules.
required: true
- name: messages-outbound-messageid-dump
path: /messages/outbound/{messageid}/dump
operations:
- name: get
method: GET
description: Postmark Outbound message dump
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: messageid
in: path
type: string
description: The ID of the message which should bypass inbound rules.
required: true
- name: stats-outbound
path: /stats/outbound
operations:
- name: get
method: GET
description: Postmark Get outbound overview
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-bounces
path: /stats/outbound/bounces
operations:
- name: get
method: GET
description: Postmark Get bounce counts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-clicks
path: /stats/outbound/clicks
operations:
- name: get
method: GET
description: Postmark Get click counts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-clicks-browserfamilies
path: /stats/outbound/clicks/browserfamilies
operations:
- name: get
method: GET
description: Postmark Get browser usage by family
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-clicks-location
path: /stats/outbound/clicks/location
operations:
- name: get
method: GET
description: Postmark Get clicks by body location
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-clicks-platforms
path: /stats/outbound/clicks/platforms
operations:
- name: get
method: GET
description: Postmark Get browser plaform usage
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-opens
path: /stats/outbound/opens
operations:
- name: get
method: GET
description: Postmark Get email open counts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-opens-emailclients
path: /stats/outbound/opens/emailclients
operations:
- name: get
method: GET
description: Postmark Get email client usage
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-opens-platforms
path: /stats/outbound/opens/platforms
operations:
- name: get
method: GET
description: Postmark Get email platform usage
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-opens-readtimes
path: /stats/outbound/opens/readtimes
operations:
- name: get
method: GET
description: Postmark Get email read times
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-sends
path: /stats/outbound/sends
operations:
- name: get
method: GET
description: Postmark Get sent counts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-spam
path: /stats/outbound/spam
operations:
- name: get
method: GET
description: Postmark Get spam complaints
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
- name: stats-outbound-tracked
path: /stats/outbound/tracked
operations:
- name: get
method: GET
description: Postmark Get tracked email counts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag
in: query
type: string
description: Filter by tag
- name: fromdate
in: query
type: string
description: Filter messages starting from the date specified. e.g. `2014-02-01`
- name: todate
in: query
type: string
description: Filter messages up to the date specified. e.g. `2014-02-01`
exposes:
- type: rest
namespace: postmark-outbound-rest
port: 8080
description: REST adapter for Postmark API — Outbound. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/messages/outbound
name: messages-outbound
description: REST surface for messages-outbound.
operations:
- method: GET
name: get
description: Postmark Outbound message search
call: postmark-outbound.get
with:
count: rest.count
offset: rest.offset
recipient: rest.recipient
fromemail: rest.fromemail
tag: rest.tag
status: rest.status
todate: rest.todate
fromdate: rest.fromdate
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/outbound/clicks
name: messages-outbound-clicks
description: REST surface for messages-outbound-clicks.
operations:
- method: GET
name: get
description: Postmark Clicks for a all messages
call: postmark-outbound.get
with:
count: rest.count
offset: rest.offset
recipient: rest.recipient
tag: rest.tag
client_name: rest.client_name
client_company: rest.client_company
client_family: rest.client_family
os_name: rest.os_name
os_family: rest.os_family
os_company: rest.os_company
platform: rest.platform
country: rest.country
region: rest.region
city: rest.city
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/outbound/clicks/{messageid}
name: messages-outbound-clicks-messageid
description: REST surface for messages-outbound-clicks-messageid.
operations:
- method: GET
name: get
description: Postmark Retrieve Message Clicks
call: postmark-outbound.get
with:
count: rest.count
offset: rest.offset
messageid: rest.messageid
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/outbound/opens
name: messages-outbound-opens
description: REST surface for messages-outbound-opens.
operations:
- method: GET
name: get
description: Postmark Opens for all messages
call: postmark-outbound.get
with:
count: rest.count
offset: rest.offset
recipient: rest.recipient
tag: rest.tag
client_name: rest.client_name
client_company: rest.client_company
client_family: rest.client_family
os_name: rest.os_name
os_family: rest.os_family
os_company: rest.os_company
platform: rest.platform
country: rest.country
region: rest.region
city: rest.city
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/outbound/opens/{messageid}
name: messages-outbound-opens-messageid
description: REST surface for messages-outbound-opens-messageid.
operations:
- method: GET
name: get
description: Postmark Retrieve Message Opens
call: postmark-outbound.get
with:
count: rest.count
offset: rest.offset
messageid: rest.messageid
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/outbound/{messageid}/details
name: messages-outbound-messageid-details
description: REST surface for messages-outbound-messageid-details.
operations:
- method: GET
name: get
description: Postmark Outbound message details
call: postmark-outbound.get
with:
messageid: rest.messageid
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/outbound/{messageid}/dump
name: messages-outbound-messageid-dump
description: REST surface for messages-outbound-messageid-dump.
operations:
- method: GET
name: get
description: Postmark Outbound message dump
call: postmark-outbound.get
with:
messageid: rest.messageid
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound
name: stats-outbound
description: REST surface for stats-outbound.
operations:
- method: GET
name: get
description: Postmark Get outbound overview
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/bounces
name: stats-outbound-bounces
description: REST surface for stats-outbound-bounces.
operations:
- method: GET
name: get
description: Postmark Get bounce counts
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/clicks
name: stats-outbound-clicks
description: REST surface for stats-outbound-clicks.
operations:
- method: GET
name: get
description: Postmark Get click counts
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/clicks/browserfamilies
name: stats-outbound-clicks-browserfamilies
description: REST surface for stats-outbound-clicks-browserfamilies.
operations:
- method: GET
name: get
description: Postmark Get browser usage by family
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/clicks/location
name: stats-outbound-clicks-location
description: REST surface for stats-outbound-clicks-location.
operations:
- method: GET
name: get
description: Postmark Get clicks by body location
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/clicks/platforms
name: stats-outbound-clicks-platforms
description: REST surface for stats-outbound-clicks-platforms.
operations:
- method: GET
name: get
description: Postmark Get browser plaform usage
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/opens
name: stats-outbound-opens
description: REST surface for stats-outbound-opens.
operations:
- method: GET
name: get
description: Postmark Get email open counts
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/opens/emailclients
name: stats-outbound-opens-emailclients
description: REST surface for stats-outbound-opens-emailclients.
operations:
- method: GET
name: get
description: Postmark Get email client usage
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/opens/platforms
name: stats-outbound-opens-platforms
description: REST surface for stats-outbound-opens-platforms.
operations:
- method: GET
name: get
description: Postmark Get email platform usage
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/opens/readtimes
name: stats-outbound-opens-readtimes
description: REST surface for stats-outbound-opens-readtimes.
operations:
- method: GET
name: get
description: Postmark Get email read times
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/sends
name: stats-outbound-sends
description: REST surface for stats-outbound-sends.
operations:
- method: GET
name: get
description: Postmark Get sent counts
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/spam
name: stats-outbound-spam
description: REST surface for stats-outbound-spam.
operations:
- method: GET
name: get
description: Postmark Get spam complaints
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- path: /v1/stats/outbound/tracked
name: stats-outbound-tracked
description: REST surface for stats-outbound-tracked.
operations:
- method: GET
name: get
description: Postmark Get tracked email counts
call: postmark-outbound.get
with:
tag: rest.tag
fromdate: rest.fromdate
todate: rest.todate
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: postmark-outbound-mcp
port: 9090
transport: http
description: MCP adapter for Postmark API — Outbound. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: postmark-outbound-message-search
description: Postmark Outbound message search
hints:
readOnly: true
destructive: false
idempotent: true
call: postmark-outbound.get
with:
count: tools.count
offset: tools.offset
recipient: tools.recipient
fromemail: tools.fromemail
tag: tools.tag
status: tools.status
todate: tools.todate
fromdate: tools.fromdate
outputParameters:
- type: object
mapping: $.
- name: postmark-clicks-all-messages
description: Postmark Clicks for a all messages
hints:
readOnly: true
destructive: false
idempotent: true
call: postmark-outbound.get
with:
count: tools.count
offset: tools.offset
recipient: tools.recipient
tag: tools.tag
client_name: tools.client_name
client_company: tools.client_company
client_family: tools.client_family
os_name: tools.os_name
os_family: tools.os_family
os_company: tools.os_company
platform: tools.platform
country: tools.country
region: tools.region
city: tools.city
outputParameters:
- type: object
mapping: $.
- name: postmark-retrieve-message-clicks
description: Postmark Retrieve Message Clicks
hints:
readOnly: true
destructive: false
idempotent: true
call: postmark-outbound.get
with:
count: tools.count
offset: tools.offset
messageid: tools.messageid
outputParameters:
- type: object
mapping: $.
- name: postmark-opens-all-messages
description: Postmark Opens for all messages
hints:
readOnly: true
destructive: false
idempotent: true
call: postmark-outbound.get
with:
count: tools.count
offset: tools.offset
recipient: tools.recipient
tag: tools.tag
client_name: tools.client_name
client_company: tools.client_company
client_family: tools.client_family
os_name: tools.os_name
os_family: tools.os_family
os_company: tools.os_company
platform: tools.platform
country: tools.country
region: tools.region
city: tools.city
outputParameters:
- type: object
mapping: $.
- name: postmark-retrieve-message-opens
description: Postmark Retrieve Message Opens
hints:
readOnly: true
destructive: false
idempotent: true
call: postmark-outbound.get
with:
count: tools.count
offset: tools.offset
messageid: tools.messageid
outputParameters:
- type: object
mapping: $.
- name: postmark-outbound-message-details
description: Postmark Outbound message details
hints:
readOnly: true
destructive: false
idempotent: true
call: postmark-outbound.get
with:
messageid: tools.
# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/postmark/refs/heads/main/capabilities/postmark-outbound.yaml