Postmark · Capability
Postmark API — Inbound
Postmark API — Inbound. 4 operations. Lead operation: Postmark Inbound message search. Self-contained Naftiko capability covering one Postmark business surface.
What You Can Do
GET
Get
— Postmark Inbound message search
/v1/messages/inbound
PUT
Put
— Postmark Bypass rules for a blocked inbound message
/v1/messages/inbound/{messageid}/bypass
GET
Get
— Postmark Inbound message details
/v1/messages/inbound/{messageid}/details
PUT
Put
— Postmark Retry a failed inbound message for processing
/v1/messages/inbound/{messageid}/retry
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
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Postmark API — Inbound
description: 'Postmark API — Inbound. 4 operations. Lead operation: Postmark Inbound message search. Self-contained Naftiko
capability covering one Postmark business surface.'
tags:
- Postmark
- Inbound
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
POSTMARK_API_KEY: POSTMARK_API_KEY
capability:
consumes:
- type: http
namespace: postmark-inbound
baseUri: http://{{baseurl}}
description: Postmark API — Inbound business capability. Self-contained, no shared references.
resources:
- name: messages-inbound
path: /messages/inbound
operations:
- name: get
method: GET
description: Postmark Inbound 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: 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: put
method: PUT
description: Postmark Bypass rules for a blocked inbound message
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: body
in: body
type: object
description: Request body (JSON).
required: false
- name: messages-inbound-messageid-details
path: /messages/inbound/{messageid}/details
operations:
- name: get
method: GET
description: Postmark Inbound 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-inbound-messageid-retry
path: /messages/inbound/{messageid}/retry
operations:
- name: put
method: PUT
description: Postmark Retry a failed inbound message for processing
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: body
in: body
type: object
description: Request body (JSON).
required: false
exposes:
- type: rest
namespace: postmark-inbound-rest
port: 8080
description: REST adapter for Postmark API — Inbound. 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: get
description: Postmark Inbound message search
call: postmark-inbound.get
with:
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: put
description: Postmark Bypass rules for a blocked inbound message
call: postmark-inbound.put
with:
messageid: rest.messageid
body: rest.body
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: get
description: Postmark Inbound message details
call: postmark-inbound.get
with:
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: put
description: Postmark Retry a failed inbound message for processing
call: postmark-inbound.put
with:
messageid: rest.messageid
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: postmark-inbound-mcp
port: 9090
transport: http
description: MCP adapter for Postmark API — Inbound. 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: postmark-inbound.get
with:
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: postmark-inbound.put
with:
messageid: tools.messageid
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: postmark-inbound-message-details
description: Postmark Inbound message details
hints:
readOnly: true
destructive: false
idempotent: true
call: postmark-inbound.get
with:
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: postmark-inbound.put
with:
messageid: tools.messageid
body: tools.body
outputParameters:
- type: object
mapping: $.