Postmark Stats API

The Stats API API from Postmark — 12 operation(s) for stats api.

Operations 12

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 /stats/outbound Get an overview of outbound email stats · Postmark Get outbound overview #
Ask an LLM
“How is my outbound email performing overall this month?”
“Can I get a single summary of sends, bounces, spam and opens for a tag?”
Tell an agent
Give me the outbound stats overview from {fromdate} to {todate}.
Summarize all outbound performance for tag {tag}.
GET /stats/outbound/sends Count emails sent per day · Postmark Get sent counts #
Ask an LLM
“How many emails did I send each day last week?”
“What's my daily send volume for a particular tag?”
Tell an agent
Show daily sent counts since {fromdate}.
Count the emails sent with tag {tag} up to {todate}.
GET /stats/outbound/bounces Count bounces per day by type · Postmark Get bounce counts #
Ask an LLM
“How many hard and soft bounces did I get each day?”
“Is my bounce volume trending up over a date range?”
Tell an agent
Show daily bounce counts from {fromdate} to {todate}.
Chart bounce totals for messages tagged {tag}.
GET /stats/outbound/spam Count spam complaints per day · Postmark Get spam complaints #
Ask an LLM
“How many recipients marked my emails as spam?”
“Are spam complaints rising for one of my email campaigns?”
Tell an agent
Show spam complaint counts since {fromdate}.
Count spam complaints on email tagged {tag}.
GET /stats/outbound/tracked Count emails sent with tracking enabled · Postmark Get tracked email counts #
Ask an LLM
“How many of my emails went out with open or link tracking turned on?”
“What share of a tag's messages were tracked?”
Tell an agent
Show the tracked email counts from {fromdate} to {todate}.
Count tracked emails with tag {tag}.
GET /stats/outbound/opens Count email opens per day · Postmark Get email open counts #
Ask an LLM
“How many opens and unique opens did my emails get each day?”
“What's the open trend for a specific tag over time?”
Tell an agent
Show daily open counts since {fromdate}.
Count total and unique opens for tag {tag} up to {todate}.
GET /stats/outbound/opens/platforms Break down opens by device platform · Postmark Get email platform usage #
Ask an LLM
“Are my emails opened more on mobile, desktop or webmail?”
“What platform split do opens show for one tag?”
Tell an agent
Break down email opens by mobile, desktop and webmail since {fromdate}.
Show the open platform mix for tag {tag}.
GET /stats/outbound/opens/emailclients Break down opens by email client · Postmark Get email client usage #
Ask an LLM
“Which email clients do my recipients open messages in?”
“Should I test templates in a particular mail app, based on what my readers use?”
Tell an agent
Show which email clients opened messages between {fromdate} and {todate}.
Rank email clients by opens for tag {tag}.
GET /stats/outbound/clicks Count link clicks per day · Postmark Get click counts #
Ask an LLM
“How many link clicks did my emails get each day?”
“What's the daily click volume on messages with one tag?”
Tell an agent
Show daily click counts since {fromdate}.
Count total and unique clicks for tag {tag} through {todate}.
GET /stats/outbound/clicks/browserfamilies Break down link clicks by browser · Postmark Get browser usage by family #
Ask an LLM
“Which browsers do recipients use when they click my email links?”
“What browser family split do clicks show for a tag?”
Tell an agent
Break down email link clicks by browser family since {fromdate}.
Show the browser mix of clicks for tag {tag}.
GET /stats/outbound/clicks/platforms Break down link clicks by device platform · Postmark Get browser plaform usage #
Ask an LLM
“Do people click my email links more from phones or desktops?”
“What platform split do link clicks show over a date range?”
Tell an agent
Break down link clicks by mobile versus desktop from {fromdate} to {todate}.
Show the click platform mix for tag {tag}.
GET /stats/outbound/clicks/location Compare clicks in HTML versus text parts · Postmark Get clicks by body location #
Ask an LLM
“Are recipients clicking links in the HTML part or the plain text part of my emails?”
“Which body location gets more clicks for a given tag?”
Tell an agent
Show clicks by HTML versus text body location since {fromdate}.
Compare where in the email body links were clicked for tag {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-stats-api-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-stats-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Postmark Server Stats API
  description: 'Postmark makes sending and receiving email

    incredibly easy.'
  version: 1.0.0
servers:
- url: https://api.postmarkapp.com/
tags:
- name: Stats API
paths:
  /stats/outbound:
    get:
      operationId: getOutboundOverviewStatistics
      tags:
      - Stats API
      summary: Postmark Get outbound overview
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        in: query
        description: Filter by tag
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        in: query
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutboundOverviewStatsResponse'
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/sends:
    get:
      operationId: getSentCounts
      tags:
      - Stats API
      summary: Postmark Get sent counts
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        in: query
        schema:
          type: string
          format: date
      - name: todate
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        in: query
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SentCountsResponse'
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/bounces:
    get:
      operationId: getBounceCounts
      tags:
      - Stats API
      summary: Postmark Get bounce counts
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        in: query
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                properties:
                  HardBounce:
                    type: integer
                  SMTPApiError:
                    type: integer
                  SoftBounce:
                    type: integer
                  Transient:
                    type: integer
                  Days:
                    type: array
                    items:
                      properties:
                        Date:
                          type: string
                        HardBounce:
                          type: integer
                        SoftBounce:
                          type: integer
                        SMTPApiError:
                          type: integer
                        Transient:
                          type: integer
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/spam:
    get:
      operationId: getSpamComplaints
      tags:
      - Stats API
      summary: Postmark Get spam complaints
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        in: query
        description: Filter by tag
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        in: query
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                properties:
                  SpamComplaint:
                    type: integer
                  Days:
                    type: array
                    items:
                      properties:
                        Date:
                          type: string
                        SpamComplaint:
                          type: integer
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/tracked:
    get:
      operationId: getTrackedEmailCounts
      tags:
      - Stats API
      summary: Postmark Get tracked email counts
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        in: query
        description: Filter by tag
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                properties:
                  Tracked:
                    type: integer
                  Days:
                    type: array
                    items:
                      properties:
                        Date:
                          type: string
                        Tracked:
                          type: integer
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/opens:
    get:
      operationId: getOutboundOpenCounts
      tags:
      - Stats API
      summary: Postmark Get email open counts
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        in: query
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                properties:
                  Opens:
                    type: integer
                  Unique:
                    type: integer
                  Days:
                    type: array
                    items:
                      properties:
                        Date:
                          type: string
                        Opens:
                          type: integer
                        Unique:
                          type: integer
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/opens/platforms:
    get:
      operationId: getOutboundOpenCountsByPlatform
      tags:
      - Stats API
      summary: Postmark Get email platform usage
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        in: query
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                properties:
                  Desktop:
                    type: integer
                  WebMail:
                    type: integer
                  Mobile:
                    type: integer
                  Unknown:
                    type: integer
                  Days:
                    type: array
                    items:
                      properties:
                        Date:
                          type: string
                        Desktop:
                          type: integer
                        WebMail:
                          type: integer
                        Mobile:
                          type: integer
                        Unknown:
                          type: integer
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/opens/emailclients:
    get:
      operationId: getOutboundOpenCountsByEmailClient
      tags:
      - Stats API
      summary: Postmark Get email client usage
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        in: query
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                properties:
                  Desktop:
                    type: integer
                  WebMail:
                    type: integer
                  Mobile:
                    type: integer
                  Unknown:
                    type: integer
                  Days:
                    type: array
                    items:
                      $ref: '#/components/schemas/DynamicResponse'
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/clicks:
    get:
      operationId: getOutboundClickCounts
      tags:
      - Stats API
      summary: Postmark Get click counts
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        in: query
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicResponse'
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/clicks/browserfamilies:
    get:
      operationId: getOutboundClickCountsByBrowserFamily
      tags:
      - Stats API
      summary: Postmark Get browser usage by family
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        in: query
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: object
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/clicks/platforms:
    get:
      operationId: getOutboundClickCountsByPlatform
      tags:
      - Stats API
      summary: Postmark Get browser plaform usage
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        in: query
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicResponse'
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
  /stats/outbound/clicks/location:
    get:
      operationId: getOutboundClickCountsByLocation
      tags:
      - Stats API
      summary: Postmark Get clicks by body location
      parameters:
      - name: X-Postmark-Server-Token
        required: true
        description: The token associated with the Server on which this request will operate.
        in: header
        schema:
          type: string
      - name: tag
        description: Filter by tag
        in: query
        schema:
          type: string
      - name: fromdate
        in: query
        description: Filter stats starting from the date specified. e.g. `2014-01-01`
        schema:
          type: string
          format: date
      - name: todate
        description: Filter stats up to the date specified. e.g. `2014-02-01`
        in: query
        schema:
          type: string
          format: date
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicResponse'
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
components:
  schemas:
    DynamicResponse:
      description: The properties of this object will vary based request parameters.
    OutboundOverviewStatsResponse:
      description: ''
      properties:
        Sent:
          type: integer
        Bounced:
          type: integer
        SMTPAPIErrors:
          type: integer
        BounceRate:
          type: integer
        SpamComplaints:
          type: integer
        SpamComplaintsRate:
          type: integer
        Opens:
          type: integer
        UniqueOpens:
          type: integer
        Tracked:
          type: integer
        WithOpenTracking:
          type: integer
        WithLinkTracking:
          type: integer
        TotalClicks:
          type: integer
        UniqueLinksClicked:
          type: integer
        TotalTrackedLinksSent:
          type: integer
        WithClientRecorded:
          type: integer
        WithPlatformRecorded:
          type: integer
    SentCountsResponse:
      description: The result of a get sent counts operation.
      properties:
        Sent:
          type: integer
        Days:
          type: array
          items:
            properties:
              Date:
                type: string
              Sent:
                type: integer