Postmark Messages API

The Messages API from Postmark — 11 operation(s) for messages.

Operations 4

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /messages/outbound/clicks Search link click events · Postmark Clicks for a all messages #
Ask an LLM
“Which links in my emails are recipients clicking, and from where?”
“Can I filter link clicks by operating system or city?”
Tell an agent
List link clicks across all messages tagged {tag}.
Show {count} clicks from {city} on OS family {os_family}.
GET /messages/outbound/opens Search email open events · Postmark Opens for all messages #
Ask an LLM
“Who opened my emails, and from which email clients?”
“Can I filter open events by country or by mobile versus desktop?”
Tell an agent
List opens across all messages tagged {tag}.
Show {count} email opens from {country} on platform {platform}.
GET /messages/outbound/{messageid}/details Get details of a sent email · Postmark Outbound message details #
Ask an LLM
“What happened to one specific email I sent — was it delivered?”
“Can I see the body and delivery events of a single outbound message?”
Tell an agent
Show the details and delivery events for sent message {messageid}.
Get outbound message {messageid}.
GET /messages/outbound Search sent emails · Postmark Outbound message search #
Ask an LLM
“Did my password reset email actually go out to a particular customer?”
“Can I search outgoing messages by sender address and tag?”
Tell an agent
Search sent emails to {recipient} from {fromdate} to {todate}.
List the latest {count} outbound messages tagged {tag}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/postmark:postmark-messages-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

postmark-messages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Postmark Messages API
  description: 'Postmark helps deliver and track application email. In a nutshell, the

    service replaces SMTP (or Sendmail) with a far more reliable, scalable and

    care-free environment. In addition, you can track statistics such as

    number of emails sent or processed, opens, bounces and spam complaints.'
  version: 1.0.0
servers:
- url: http://{{baseurl}}
tags:
- name: Messages
paths:
  /messages/outbound/clicks:
    get:
      tags:
      - Messages
      summary: Postmark Clicks for a all messages
      parameters:
      - name: count
        in: query
        schema:
          type: string
        description: Number of bounces to return per request. Max 500.
        example: <integer>
      - name: offset
        in: query
        schema:
          type: string
        description: Number of bounces to skip.
        example: <integer>
      - name: recipient
        in: query
        schema:
          type: string
        description: Filter by the user who was receiving the email
        example: <string>
      - name: tag
        in: query
        schema:
          type: string
        description: Filter by tag
        example: <string>
      - name: client_name
        in: query
        schema:
          type: string
        description: Filter by client name, i.e. Outlook, Gmail
        example: <string>
      - name: client_company
        in: query
        schema:
          type: string
        description: Filter by company, i.e. Microsoft, Apple, Google
        example: <string>
      - name: client_family
        in: query
        schema:
          type: string
        description: Filter by client family, i.e. OS X, Chrome
        example: <string>
      - name: os_name
        in: query
        schema:
          type: string
        description: Filter by full OS name and specific version, i.e. OS X 10.9 Mavericks, Windows 7
        example: <string>
      - name: os_family
        in: query
        schema:
          type: string
        description: Filter by kind of OS used without specific version, i.e. OS X, Windows
        example: <string>
      - name: os_company
        in: query
        schema:
          type: string
        description: Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation
        example: <string>
      - name: platform
        in: query
        schema:
          type: string
        description: Filter by platform, i.e. webmail, desktop, mobile
        example: <string>
      - name: country
        in: query
        schema:
          type: string
        description: Filter by country messages were opened in, i.e. Denmark, Russia
        example: <string>
      - name: region
        in: query
        schema:
          type: string
        description: Filter by full name of region messages were opened in, i.e. Moscow, New York
        example: <string>
      - name: city
        in: query
        schema:
          type: string
        description: Filter by full name of region messages were opened in, i.e. Moscow, New York
        example: <string>
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      operationId: getMessagesOutboundClicks
      x-operation-id-source: derived
  /messages/outbound/opens:
    get:
      tags:
      - Messages
      summary: Postmark Opens for all messages
      parameters:
      - name: count
        in: query
        schema:
          type: string
        description: Number of bounces to return per request. Max 500.
        example: <integer>
      - name: offset
        in: query
        schema:
          type: string
        description: Number of bounces to skip.
        example: <integer>
      - name: recipient
        in: query
        schema:
          type: string
        description: Filter by the user who was receiving the email
        example: <string>
      - name: tag
        in: query
        schema:
          type: string
        description: Filter by tag
        example: <string>
      - name: client_name
        in: query
        schema:
          type: string
        description: Filter by client name, i.e. Outlook, Gmail
        example: <string>
      - name: client_company
        in: query
        schema:
          type: string
        description: Filter by company, i.e. Microsoft, Apple, Google
        example: <string>
      - name: client_family
        in: query
        schema:
          type: string
        description: Filter by client family, i.e. OS X, Chrome
        example: <string>
      - name: os_name
        in: query
        schema:
          type: string
        description: Filter by full OS name and specific version, i.e. OS X 10.9 Mavericks, Windows 7
        example: <string>
      - name: os_family
        in: query
        schema:
          type: string
        description: Filter by kind of OS used without specific version, i.e. OS X, Windows
        example: <string>
      - name: os_company
        in: query
        schema:
          type: string
        description: Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation
        example: <string>
      - name: platform
        in: query
        schema:
          type: string
        description: Filter by platform, i.e. webmail, desktop, mobile
        example: <string>
      - name: country
        in: query
        schema:
          type: string
        description: Filter by country messages were opened in, i.e. Denmark, Russia
        example: <string>
      - name: region
        in: query
        schema:
          type: string
        description: Filter by full name of region messages were opened in, i.e. Moscow, New York
        example: <string>
      - name: city
        in: query
        schema:
          type: string
        description: Filter by full name of region messages were opened in, i.e. Moscow, New York
        example: <string>
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      operationId: getMessagesOutboundOpens
      x-operation-id-source: derived
  /messages/outbound/{messageid}/details:
    get:
      tags:
      - Messages
      summary: Postmark Outbound message details
      parameters:
      - name: messageid
        in: path
        schema:
          type: string
        required: true
        description: The ID of the message which should bypass inbound rules.
        example: <string>
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      operationId: getMessagesOutboundByMessageidDetails
      x-operation-id-source: derived
  /messages/outbound:
    get:
      tags:
      - Messages
      summary: Postmark Outbound message search
      parameters:
      - name: count
        in: query
        schema:
          type: string
        description: Number of bounces to return per request. Max 500.
        example: <integer>
      - name: offset
        in: query
        schema:
          type: string
        description: Number of bounces to skip.
        example: <integer>
      - name: recipient
        in: query
        schema:
          type: string
        description: Filter by the user who was receiving the email
        example: <string>
      - name: fromemail
        in: query
        schema:
          type: string
        description: Filter by the sender email address
        example: <string>
      - name: tag
        in: query
        schema:
          type: string
        description: Filter by tag
        example: <string>
      - name: status
        in: query
        schema:
          type: string
        description: Filter by status (`blocked`, `processed`, `queued`, `failed`, `scheduled`)
        example: <string>
      - name: todate
        in: query
        schema:
          type: string
        description: Filter messages up to the date specified. e.g. `2014-02-01`
        example: <string>
      - name: fromdate
        in: query
        schema:
          type: string
        description: Filter messages starting from the date specified. e.g. `2014-02-01`
        example: <string>
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      operationId: getMessagesOutbound
      x-operation-id-source: derived