Postmark · Capability
Postmark Server API — Messages API
Postmark Server API — Messages API. 11 operations. Lead operation: Postmark Inbound message search. Self-contained Naftiko capability covering one Postmark business surface.
What You Can Do
GET
Searchinboundmessages
— Postmark Inbound message search
/v1/messages/inbound
PUT
Bypassrulesforinboundmessage
— Postmark Bypass rules for a blocked inbound message
/v1/messages/inbound/{messageid}/bypass
GET
Getinboundmessagedetails
— Postmark Inbound message details
/v1/messages/inbound/{messageid}/details
PUT
Retryinboundmessageprocessing
— Postmark Retry a failed inbound message for processing
/v1/messages/inbound/{messageid}/retry
GET
Searchoutboundmessages
— Postmark Outbound message search
/v1/messages/outbound
GET
Searchclicksforoutboundmessages
— Postmark Clicks for a all messages
/v1/messages/outbound/clicks
GET
Getclicksforsingleoutboundmessage
— Postmark Retrieve Message Clicks
/v1/messages/outbound/clicks/{messageid}
GET
Searchopensforoutboundmessages
— Postmark Opens for all messages
/v1/messages/outbound/opens
GET
Getopensforsingleoutboundmessage
— Postmark Retrieve Message Opens
/v1/messages/outbound/opens/{messageid}
GET
Getoutboundmessagedetails
— Postmark Outbound message details
/v1/messages/outbound/{messageid}/details
GET
Getoutboundmessagedump
— Postmark Outbound message dump
/v1/messages/outbound/{messageid}/dump
MCP Tools
postmark-inbound-message-search
Postmark Inbound message search
read-only
idempotent
postmark-bypass-rules-blocked-inbound
Postmark Bypass rules for a blocked inbound message
idempotent
postmark-inbound-message-details
Postmark Inbound message details
read-only
idempotent
postmark-retry-failed-inbound-message
Postmark Retry a failed inbound message for processing
idempotent
postmark-outbound-message-search
Postmark Outbound message search
read-only
idempotent
postmark-clicks-all-messages
Postmark Clicks for a all messages
read-only
idempotent
postmark-retrieve-message-clicks
Postmark Retrieve Message Clicks
read-only
idempotent
postmark-opens-all-messages
Postmark Opens for all messages
read-only
idempotent
postmark-retrieve-message-opens
Postmark Retrieve Message Opens
read-only
idempotent
postmark-outbound-message-details
Postmark Outbound message details
read-only
idempotent
postmark-outbound-message-dump
Postmark Outbound message dump
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Postmark Server API — Messages API
description: 'Postmark Server API — Messages API. 11 operations. Lead operation: Postmark Inbound message search. Self-contained
Naftiko capability covering one Postmark business surface.'
tags:
- Postmark
- Messages API
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
POSTMARK_API_KEY: POSTMARK_API_KEY
capability:
consumes:
- type: http
namespace: server-messages-api
baseUri: https://api.postmarkapp.com
description: Postmark Server API — Messages API business capability. Self-contained, no shared references.
resources:
- name: messages-inbound
path: /messages/inbound
operations:
- name: searchinboundmessages
method: GET
description: Postmark Inbound message search
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: count
in: query
type: integer
description: Number of messages to return per request. Max 500.
required: true
- name: offset
in: query
type: integer
description: Number of messages to skip
required: true
- 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: subject
in: query
type: string
description: Filter by email subject
- name: mailboxhash
in: query
type: string
description: Filter by mailboxhash
- 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-inbound-messageid-bypass
path: /messages/inbound/{messageid}/bypass
operations:
- name: bypassrulesforinboundmessage
method: PUT
description: Postmark Bypass rules for a blocked inbound message
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: messageid
in: path
type: string
description: The ID of the message which should bypass inbound rules.
required: true
- name: messages-inbound-messageid-details
path: /messages/inbound/{messageid}/details
operations:
- name: getinboundmessagedetails
method: GET
description: Postmark Inbound message details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: messageid
in: path
type: string
description: The ID of the message for which to details will be retrieved.
required: true
- name: messages-inbound-messageid-retry
path: /messages/inbound/{messageid}/retry
operations:
- name: retryinboundmessageprocessing
method: PUT
description: Postmark Retry a failed inbound message for processing
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: messageid
in: path
type: string
description: The ID of the inbound message on which we should retry processing.
required: true
- name: messages-outbound
path: /messages/outbound
operations:
- name: searchoutboundmessages
method: GET
description: Postmark Outbound message search
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: count
in: query
type: integer
description: Number of messages to return per request. Max 500.
required: true
- name: offset
in: query
type: integer
description: Number of messages to skip
required: true
- 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 (`queued` or `sent`)
- 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: searchclicksforoutboundmessages
method: GET
description: Postmark Clicks for a all messages
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: count
in: query
type: integer
description: Number of message clicks to return per request. Max 500.
required: true
- name: offset
in: query
type: integer
description: Number of messages to skip
required: true
- name: recipient
in: query
type: string
description: Filter by To, Cc, Bcc
- 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: getclicksforsingleoutboundmessage
method: GET
description: Postmark Retrieve Message Clicks
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: messageid
in: path
type: string
description: The ID of the Outbound Message for which click statistics should be retrieved.
required: true
- name: count
in: query
type: integer
description: Number of message clicks to return per request. Max 500.
required: true
- name: offset
in: query
type: integer
description: Number of messages to skip.
required: true
- name: messages-outbound-opens
path: /messages/outbound/opens
operations:
- name: searchopensforoutboundmessages
method: GET
description: Postmark Opens for all messages
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: count
in: query
type: integer
description: Number of message opens to return per request. Max 500.
required: true
- name: offset
in: query
type: integer
description: Number of messages to skip
required: true
- name: recipient
in: query
type: string
description: Filter by To, Cc, Bcc
- 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: getopensforsingleoutboundmessage
method: GET
description: Postmark Retrieve Message Opens
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: messageid
in: path
type: string
description: The ID of the Outbound Message for which open statistics should be retrieved.
required: true
- name: count
in: query
type: integer
description: Number of message opens to return per request. Max 500.
required: true
- name: offset
in: query
type: integer
description: Number of messages to skip.
required: true
- name: messages-outbound-messageid-details
path: /messages/outbound/{messageid}/details
operations:
- name: getoutboundmessagedetails
method: GET
description: Postmark Outbound message details
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: messageid
in: path
type: string
description: The ID of the message for which to retrieve details.
required: true
- name: messages-outbound-messageid-dump
path: /messages/outbound/{messageid}/dump
operations:
- name: getoutboundmessagedump
method: GET
description: Postmark Outbound message dump
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: X-Postmark-Server-Token
in: header
type: string
description: The token associated with the Server on which this request will operate.
required: true
- name: messageid
in: path
type: string
description: The ID of the message for which to retrieve a dump.
required: true
exposes:
- type: rest
namespace: server-messages-api-rest
port: 8080
description: REST adapter for Postmark Server API — Messages API. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/messages/inbound
name: messages-inbound
description: REST surface for messages-inbound.
operations:
- method: GET
name: searchinboundmessages
description: Postmark Inbound message search
call: server-messages-api.searchinboundmessages
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
count: rest.count
offset: rest.offset
recipient: rest.recipient
fromemail: rest.fromemail
subject: rest.subject
mailboxhash: rest.mailboxhash
tag: rest.tag
status: rest.status
todate: rest.todate
fromdate: rest.fromdate
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/inbound/{messageid}/bypass
name: messages-inbound-messageid-bypass
description: REST surface for messages-inbound-messageid-bypass.
operations:
- method: PUT
name: bypassrulesforinboundmessage
description: Postmark Bypass rules for a blocked inbound message
call: server-messages-api.bypassrulesforinboundmessage
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
messageid: rest.messageid
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/inbound/{messageid}/details
name: messages-inbound-messageid-details
description: REST surface for messages-inbound-messageid-details.
operations:
- method: GET
name: getinboundmessagedetails
description: Postmark Inbound message details
call: server-messages-api.getinboundmessagedetails
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
messageid: rest.messageid
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/inbound/{messageid}/retry
name: messages-inbound-messageid-retry
description: REST surface for messages-inbound-messageid-retry.
operations:
- method: PUT
name: retryinboundmessageprocessing
description: Postmark Retry a failed inbound message for processing
call: server-messages-api.retryinboundmessageprocessing
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
messageid: rest.messageid
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/outbound
name: messages-outbound
description: REST surface for messages-outbound.
operations:
- method: GET
name: searchoutboundmessages
description: Postmark Outbound message search
call: server-messages-api.searchoutboundmessages
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
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: searchclicksforoutboundmessages
description: Postmark Clicks for a all messages
call: server-messages-api.searchclicksforoutboundmessages
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
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: getclicksforsingleoutboundmessage
description: Postmark Retrieve Message Clicks
call: server-messages-api.getclicksforsingleoutboundmessage
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
messageid: rest.messageid
count: rest.count
offset: rest.offset
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/outbound/opens
name: messages-outbound-opens
description: REST surface for messages-outbound-opens.
operations:
- method: GET
name: searchopensforoutboundmessages
description: Postmark Opens for all messages
call: server-messages-api.searchopensforoutboundmessages
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
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: getopensforsingleoutboundmessage
description: Postmark Retrieve Message Opens
call: server-messages-api.getopensforsingleoutboundmessage
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
messageid: rest.messageid
count: rest.count
offset: rest.offset
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: getoutboundmessagedetails
description: Postmark Outbound message details
call: server-messages-api.getoutboundmessagedetails
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
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: getoutboundmessagedump
description: Postmark Outbound message dump
call: server-messages-api.getoutboundmessagedump
with:
X-Postmark-Server-Token: rest.X-Postmark-Server-Token
messageid: rest.messageid
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: server-messages-api-mcp
port: 9090
transport: http
description: MCP adapter for Postmark Server API — Messages API. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: postmark-inbound-message-search
description: Postmark Inbound message search
hints:
readOnly: true
destructive: false
idempotent: true
call: server-messages-api.searchinboundmessages
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
count: tools.count
offset: tools.offset
recipient: tools.recipient
fromemail: tools.fromemail
subject: tools.subject
mailboxhash: tools.mailboxhash
tag: tools.tag
status: tools.status
todate: tools.todate
fromdate: tools.fromdate
outputParameters:
- type: object
mapping: $.
- name: postmark-bypass-rules-blocked-inbound
description: Postmark Bypass rules for a blocked inbound message
hints:
readOnly: false
destructive: false
idempotent: true
call: server-messages-api.bypassrulesforinboundmessage
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
messageid: tools.messageid
outputParameters:
- type: object
mapping: $.
- name: postmark-inbound-message-details
description: Postmark Inbound message details
hints:
readOnly: true
destructive: false
idempotent: true
call: server-messages-api.getinboundmessagedetails
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
messageid: tools.messageid
outputParameters:
- type: object
mapping: $.
- name: postmark-retry-failed-inbound-message
description: Postmark Retry a failed inbound message for processing
hints:
readOnly: false
destructive: false
idempotent: true
call: server-messages-api.retryinboundmessageprocessing
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
messageid: tools.messageid
outputParameters:
- type: object
mapping: $.
- name: postmark-outbound-message-search
description: Postmark Outbound message search
hints:
readOnly: true
destructive: false
idempotent: true
call: server-messages-api.searchoutboundmessages
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
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: server-messages-api.searchclicksforoutboundmessages
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
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: server-messages-api.getclicksforsingleoutboundmessage
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
messageid: tools.messageid
count: tools.count
offset: tools.offset
outputParameters:
- type: object
mapping: $.
- name: postmark-opens-all-messages
description: Postmark Opens for all messages
hints:
readOnly: true
destructive: false
idempotent: true
call: server-messages-api.searchopensforoutboundmessages
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
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: server-messages-api.getopensforsingleoutboundmessage
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
messageid: tools.messageid
count: tools.count
offset: tools.offset
outputParameters:
- type: object
mapping: $.
- name: postmark-outbound-message-details
description: Postmark Outbound message details
hints:
readOnly: true
destructive: false
idempotent: true
call: server-messages-api.getoutboundmessagedetails
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
messageid: tools.messageid
outputParameters:
- type: object
mapping: $.
- name: postmark-outbound-message-dump
description: Postmark Outbound message dump
hints:
readOnly: true
destructive: false
idempotent: true
call: server-messages-api.getoutboundmessagedump
with:
X-Postmark-Server-Token: tools.X-Postmark-Server-Token
messageid: tools.messageid
outputParameters:
- type: object
mapping: $.