Postmark · Capability

Postmark API — Messages

Postmark API — Messages. 11 operations. Lead operation: Postmark Inbound message search. Self-contained Naftiko capability covering one Postmark business surface.

Run with Naftiko PostmarkMessages

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
GET
Get — Postmark Outbound message search
/v1/messages/outbound
GET
Get — Postmark Clicks for a all messages
/v1/messages/outbound/clicks
GET
Get — Postmark Retrieve Message Clicks
/v1/messages/outbound/clicks/{messageid}
GET
Get — Postmark Opens for all messages
/v1/messages/outbound/opens
GET
Get — Postmark Retrieve Message Opens
/v1/messages/outbound/opens/{messageid}
GET
Get — Postmark Outbound message details
/v1/messages/outbound/{messageid}/details
GET
Get — 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

postmark-messages.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Postmark API — Messages
  description: 'Postmark API — Messages. 11 operations. Lead operation: Postmark Inbound message search. Self-contained Naftiko
    capability covering one Postmark business surface.'
  tags:
  - Postmark
  - Messages
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    POSTMARK_API_KEY: POSTMARK_API_KEY
capability:
  consumes:
  - type: http
    namespace: postmark-messages
    baseUri: http://{{baseurl}}
    description: Postmark API — Messages 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
    - 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
  exposes:
  - type: rest
    namespace: postmark-messages-rest
    port: 8080
    description: REST adapter for Postmark API — Messages. 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-messages.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-messages.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-messages.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-messages.put
        with:
          messageid: rest.messageid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - 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-messages.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-messages.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-messages.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-messages.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-messages.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-messages.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-messages.get
        with:
          messageid: rest.messageid
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: postmark-messages-mcp
    port: 9090
    transport: http
    description: MCP adapter for Postmark API — Messages. 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-messages.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-messages.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-messages.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-messages.put
      with:
        messageid: tools.messageid
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: postmark-outbound-message-search
      description: Postmark Outbound message search
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: postmark-messages.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-messages.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-messages.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-messages.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-messages.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-messages.get
      with:
        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: postmark-messages.get
      with:
        messageid: tools.messageid
      outputParameters:
      - type: object
        mapping: $.