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.

Run with Naftiko PostmarkInbound

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

postmark-inbound.yaml Raw ↑
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: $.