Postmark

Email delivery service for web applications

postmarkapp.com/developer ↗
Version
1.0.0
OpenAPI
3.0.0
Endpoints
43
Schemas
75
Updated
3 days ago
Email email transactional
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

api.postmarkapp.com

Authentication

apiKey

Endpoints

Bounces api 5 endpoints

GET /bounces
operationId: BouncesApi_listBounces

Parameters

Name In Required Type Description
count query required integer Number of bounces to return per request. Max 500.
offset query required integer Number of bounces to skip.
type query optional string Filter by type of bounce
inactive query optional boolean Filter by emails that were deactivated by Postmark due to the bounce. Set to true or false. If this isn't specified it will return both active and inactive.
emailFilter query optional string Filter by email address
messageID query optional string Filter by messageID
tag query optional string Filter by tag
todate query optional string Filter messages up to the date specified. e.g. `2014-02-01`
fromdate query optional string Filter messages starting from the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /bounces
GET /bounces/{bounceid}
operationId: BouncesApi_getBounce

Parameters

Name In Required Type Description
bounceid path required integer The ID of the bounce to retrieve.

Responses

200 OK
422
500
GET /bounces/{bounceid}
PUT /bounces/{bounceid}/activate
operationId: BouncesApi_activateBounce

Parameters

Name In Required Type Description
bounceid path required integer The ID of the Bounce to activate.

Responses

200 OK
422
500
PUT /bounces/{bounceid}/activate
GET /bounces/{bounceid}/dump
operationId: BouncesApi_getDump

Parameters

Name In Required Type Description
bounceid path required integer The ID for the bounce dump to retrieve.

Responses

200 OK
422
500
GET /bounces/{bounceid}/dump
GET /deliverystats
operationId: BouncesApi_getDeliveryStats

Responses

200 OK
422
500
GET /deliverystats

Inbound rules api 3 endpoints

GET /triggers/inboundrules
operationId: InboundRulesApi_listTriggers

Parameters

Name In Required Type Description
count query required integer Number of records to return per request.
offset query required integer Number of records to skip.

Responses

200 OK
422
500
GET /triggers/inboundrules
POST /triggers/inboundrules
operationId: InboundRulesApi_createTrigger

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateInboundRuleRequest"
      }
    }
  }
}

Responses

200 OK
422
500
POST /triggers/inboundrules
DELETE /triggers/inboundrules/{triggerid}
operationId: InboundRulesApi_deleteSingleTrigger

Parameters

Name In Required Type Description
triggerid path required integer The ID of the Inbound Rule that should be deleted.

Responses

200 OK
422
500
DELETE /triggers/inboundrules/{triggerid}

Messages api 11 endpoints

GET /messages/inbound
operationId: MessagesApi_searchInboundMessages

Parameters

Name In Required Type Description
count query required integer Number of messages to return per request. Max 500.
offset query required integer Number of messages to skip
recipient query optional string Filter by the user who was receiving the email
fromemail query optional string Filter by the sender email address
subject query optional string Filter by email subject
mailboxhash query optional string Filter by mailboxhash
tag query optional string Filter by tag
status query optional string Filter by status (`blocked`, `processed`, `queued`, `failed`, `scheduled`)
todate query optional string Filter messages up to the date specified. e.g. `2014-02-01`
fromdate query optional string Filter messages starting from the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /messages/inbound
PUT /messages/inbound/{messageid}/bypass
operationId: MessagesApi_updateBypassRulesForInboundMessage

Parameters

Name In Required Type Description
messageid path required string The ID of the message which should bypass inbound rules.

Responses

200 OK
422
500
PUT /messages/inbound/{messageid}/bypass
GET /messages/inbound/{messageid}/details
operationId: MessagesApi_getInboundMessageDetails

Parameters

Name In Required Type Description
messageid path required string The ID of the message for which to details will be retrieved.

Responses

200 OK
422
500
GET /messages/inbound/{messageid}/details
PUT /messages/inbound/{messageid}/retry
operationId: MessagesApi_retryInboundMessage

Parameters

Name In Required Type Description
messageid path required string The ID of the inbound message on which we should retry processing.

Responses

200 OK
422
500
PUT /messages/inbound/{messageid}/retry
GET /messages/outbound
operationId: MessagesApi_searchOutboundMessages

Parameters

Name In Required Type Description
count query required integer Number of messages to return per request. Max 500.
offset query required integer Number of messages to skip
recipient query optional string Filter by the user who was receiving the email
fromemail query optional string Filter by the sender email address
tag query optional string Filter by tag
status query optional string Filter by status (`queued` or `sent`)
todate query optional string Filter messages up to the date specified. e.g. `2014-02-01`
fromdate query optional string Filter messages starting from the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /messages/outbound
GET /messages/outbound/clicks
operationId: MessagesApi_getAllClicks

Parameters

Name In Required Type Description
count query required integer Number of message clicks to return per request. Max 500.
offset query required integer Number of messages to skip
recipient query optional string Filter by To, Cc, Bcc
tag query optional string Filter by tag
client_name query optional string Filter by client name, i.e. Outlook, Gmail
client_company query optional string Filter by company, i.e. Microsoft, Apple, Google
client_family query optional string Filter by client family, i.e. OS X, Chrome
os_name query optional string Filter by full OS name and specific version, i.e. OS X 10.9 Mavericks, Windows 7
os_family query optional string Filter by kind of OS used without specific version, i.e. OS X, Windows
os_company query optional string Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation
platform query optional string Filter by platform, i.e. webmail, desktop, mobile
country query optional string Filter by country messages were opened in, i.e. Denmark, Russia
region query optional string Filter by full name of region messages were opened in, i.e. Moscow, New York
city query optional string Filter by full name of region messages were opened in, i.e. Moscow, New York

Responses

200 OK
422
500
GET /messages/outbound/clicks
GET /messages/outbound/clicks/{messageid}
operationId: MessagesApi_getMessageClicks

Parameters

Name In Required Type Description
messageid path required string The ID of the Outbound Message for which click statistics should be retrieved.
count query required integer Number of message clicks to return per request. Max 500.
offset query required integer Number of messages to skip.

Responses

200 OK
422
500
GET /messages/outbound/clicks/{messageid}
GET /messages/outbound/opens
operationId: MessagesApi_listOpensForOutbound

Parameters

Name In Required Type Description
count query required integer Number of message opens to return per request. Max 500.
offset query required integer Number of messages to skip
recipient query optional string Filter by To, Cc, Bcc
tag query optional string Filter by tag
client_name query optional string Filter by client name, i.e. Outlook, Gmail
client_company query optional string Filter by company, i.e. Microsoft, Apple, Google
client_family query optional string Filter by client family, i.e. OS X, Chrome
os_name query optional string Filter by full OS name and specific version, i.e. OS X 10.9 Mavericks, Windows 7
os_family query optional string Filter by kind of OS used without specific version, i.e. OS X, Windows
os_company query optional string Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation
platform query optional string Filter by platform, i.e. webmail, desktop, mobile
country query optional string Filter by country messages were opened in, i.e. Denmark, Russia
region query optional string Filter by full name of region messages were opened in, i.e. Moscow, New York
city query optional string Filter by full name of region messages were opened in, i.e. Moscow, New York

Responses

200 OK
422
500
GET /messages/outbound/opens
GET /messages/outbound/opens/{messageid}
operationId: MessagesApi_getMessageOpens

Parameters

Name In Required Type Description
messageid path required string The ID of the Outbound Message for which open statistics should be retrieved.
count query required integer Number of message opens to return per request. Max 500.
offset query required integer Number of messages to skip.

Responses

200 OK
422
500
GET /messages/outbound/opens/{messageid}
GET /messages/outbound/{messageid}/details
operationId: MessagesApi_getOutboundMessageDetails

Parameters

Name In Required Type Description
messageid path required string The ID of the message for which to retrieve details.

Responses

200 OK
422
500
GET /messages/outbound/{messageid}/details
GET /messages/outbound/{messageid}/dump
operationId: MessagesApi_getMessageDump

Parameters

Name In Required Type Description
messageid path required string The ID of the message for which to retrieve a dump.

Responses

200 OK
422
500
GET /messages/outbound/{messageid}/dump

Sending api 4 endpoints

POST /email
operationId: SendingApi_sendSingleEmail

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SendEmailRequest"
      }
    }
  }
}

Responses

200 OK
422
500
POST /email
POST /email/batch
operationId: SendingApi_sendBatchEmails

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SendEmailBatchRequest"
      }
    }
  }
}

Responses

200 OK
422
500
POST /email/batch
POST /email/batchWithTemplates
operationId: SendingApi_sendBatchWithTemplates

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SendEmailTemplatedBatchRequest"
      }
    }
  },
  "required": true
}

Responses

200 OK
422
500
POST /email/batchWithTemplates
POST /email/withTemplate
operationId: SendingApi_sendEmailTemplate

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EmailWithTemplateRequest"
      }
    }
  },
  "required": true
}

Responses

200 OK
422
500
POST /email/withTemplate

Server configuration api 2 endpoints

GET /server
operationId: ServerConfigurationApi_getConfiguration

Responses

200 OK
422
500
GET /server
PUT /server
operationId: ServerConfigurationApi_updateConfiguration

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EditServerConfigurationRequest"
      }
    }
  },
  "description": "The settings that should be modified for the current server."
}

Responses

200 OK
422
500
PUT /server

Stats api 12 endpoints

GET /stats/outbound
operationId: StatsApi_getOutboundOverview

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound
GET /stats/outbound/bounces
operationId: StatsApi_getBounceCounts

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/bounces
GET /stats/outbound/clicks
operationId: StatsApi_getOutboundClickCounts

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/clicks
GET /stats/outbound/clicks/browserfamilies
operationId: StatsApi_getOutboundClicksBrowserFamilies

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/clicks/browserfamilies
GET /stats/outbound/clicks/location
operationId: StatsApi_getOutboundClicksLocation

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/clicks/location
GET /stats/outbound/clicks/platforms
operationId: StatsApi_getBrowserPlatformUsage

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/clicks/platforms
GET /stats/outbound/opens
operationId: StatsApi_getEmailOpenCounts

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/opens
GET /stats/outbound/opens/emailclients
operationId: StatsApi_getEmailClientUsage

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/opens/emailclients
GET /stats/outbound/opens/platforms
operationId: StatsApi_getEmailPlatformUsage

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/opens/platforms
GET /stats/outbound/sends
operationId: StatsApi_getSentCounts

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/sends
GET /stats/outbound/spam
operationId: StatsApi_getSpamComplaints

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats up to the date specified. e.g. `2014-02-01`

Responses

200 OK
422
500
GET /stats/outbound/spam
GET /stats/outbound/tracked
operationId: StatsApi_getTrackedEmailCounts

Parameters

Name In Required Type Description
tag query optional string Filter by tag
fromdate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`
todate query optional string Filter stats starting from the date specified. e.g. `2014-01-01`

Responses

200 OK
422
500
GET /stats/outbound/tracked

Templates api 6 endpoints

GET /templates
operationId: TemplatesApi_listTemplates

Parameters

Name In Required Type Description
Count query required number The number of Templates to return
Offset query required number The number of Templates to "skip" before returning results.

Responses

200 OK
422
500
GET /templates
POST /templates
operationId: TemplatesApi_createTemplate

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateTemplateRequest"
      }
    }
  },
  "required": true
}

Responses

200 OK
422
500
POST /templates
POST /templates/validate
operationId: TemplatesApi_validateTemplateContent

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TemplateValidationRequest"
      }
    }
  }
}

Responses

200 OK
422
500
POST /templates/validate
DELETE /templates/{templateIdOrAlias}
operationId: TemplatesApi_deleteTemplate

Parameters

Name In Required Type Description
templateIdOrAlias path required string The 'TemplateID' or 'Alias' value for the Template you wish to delete.

Responses

200 OK
422
500
DELETE /templates/{templateIdOrAlias}
GET /templates/{templateIdOrAlias}
operationId: TemplatesApi_getTemplateById

Parameters

Name In Required Type Description
templateIdOrAlias path required string The 'TemplateID' or 'Alias' value for the Template you wish to retrieve.

Responses

200 OK
422
500
GET /templates/{templateIdOrAlias}
PUT /templates/{templateIdOrAlias}
operationId: TemplatesApi_updateTemplate

Parameters

Name In Required Type Description
templateIdOrAlias path required string The 'TemplateID' or 'Alias' value for the Template you wish to update.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EditTemplateRequest"
      }
    }
  },
  "required": true
}

Responses

200 OK
422
500
PUT /templates/{templateIdOrAlias}

Schemas

object Attachment
{
  "properties": {
    "Name": {
      "type": "string"
    },
    "Content": {
      "type": "string"
    },
    "ContentID": {
      "type": "string"
    },
    "ContentType": {
      "type": "string"
    }
  },
  "description": "An attachment for an email message."
}
array AttachmentCollection
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Attachment"
  }
}
object BounceActivationResponse
{
  "properties": {
    "Bounce": {
      "$ref": "#/components/schemas/BounceInfoResponse"
    },
    "Message": {
      "type": "string"
    }
  }
}
object BounceCountElement
{
  "properties": {
    "Name": {
      "type": "string"
    },
    "Type": {
      "type": "string"
    },
    "Count": {
      "type": "integer"
    }
  }
}
object BounceDumpResponse
{
  "properties": {
    "Body": {
      "type": "string",
      "description": "Raw source of bounce. If no dump is available this will return an empty string."
    }
  }
}
object BounceInfoResponse
{
  "properties": {
    "ID": {
      "type": "string"
    },
    "Tag": {
      "type": "string"
    },
    "Name": {
      "type": "string"
    },
    "Type": {
      "type": "string"
    },
    "Email": {
      "type": "string",
      "format": "email"
    },
    "Content": {
      "type": "string"
    },
    "Details": {
      "type": "string"
    },
    "Subject": {
      "type": "string"
    },
    "Inactive": {
      "type": "boolean"
    },
    "TypeCode": {
      "type": "integer"
    },
    "BouncedAt": {
      "type": "string",
      "format": "date-time"
    },
    "MessageID": {
      "type": "string"
    },
    "CanActivate": {
      "type": "boolean"
    },
    "Description": {
      "type": "string"
    },
    "DumpAvailable": {
      "type": "boolean"
    }
  }
}
object BounceSearchResponse
{
  "properties": {
    "Bounces": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BounceInfoResponse"
      }
    },
    "TotalCount": {
      "type": "integer"
    }
  },
  "description": ""
}
object BouncesApiActivateBounceResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object BouncesApiGetBounceResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object BouncesApiGetDumpResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object CreateInboundRuleRequest
{
  "properties": {
    "Rule": {
      "type": "string",
      "format": "email"
    }
  },
  "description": ""
}
object CreateTemplateRequest
{
  "required": [
    "Name",
    "Subject"
  ],
  "properties": {
    "Name": {
      "type": "string",
      "description": "The friendly display name for the template."
    },
    "Alias": {
      "type": "string",
      "description": "The optional string identifier for referring to this Template (numbers, letters, and '.', '-', '_' characters, starts with a letter)."
    },
    "Subject": {
      "type": "string",
      "description": "The Subject template definition for this Template."
    },
    "HtmlBody": {
      "type": "string",
      "description": "The HTML template definition for this Template."
    },
    "TextBody": {
      "type": "string",
      "description": "The Text template definition for this Template."
    }
  },
  "description": "The contents required for creating a new template."
}
object DeliveryStatsResponse
{
  "properties": {
    "Bounces": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BounceCountElement"
      }
    },
    "InactiveMails": {
      "type": "integer"
    }
  },
  "description": ""
}
object DynamicResponse
{
  "description": "The properties of this object will vary based request parameters."
}
object EditServerConfigurationRequest
{
  "properties": {
    "Name": {
      "type": "string"
    },
    "Color": {
      "enum": [
        "purple",
        "blue",
        "turqoise",
        "green",
        "red",
        "yellow",
        "grey"
      ],
      "type": "string"
    },
    "TrackLinks": {
      "enum": [
        "None",
        "HtmlAndText",
        "HtmlOnly",
        "TextOnly"
      ],
      "type": "string"
    },
    "TrackOpens": {
      "type": "boolean"
    },
    "OpenHookUrl": {
      "type": "string"
    },
    "ClickHookUrl": {
      "type": "string",
      "description": "Webhook url allowing real-time notification when tracked links are clicked."
    },
    "BounceHookUrl": {
      "type": "string"
    },
    "InboundDomain": {
      "type": "string"
    },
    "InboundHookUrl": {
      "type": "string"
    },
    "DeliveryHookUrl": {
      "type": "string"
    },
    "RawEmailEnabled": {
      "type": "boolean"
    },
    "SmtpApiActivated": {
      "type": "boolean"
    },
    "PostFirstOpenOnly": {
      "type": "boolean"
    },
    "InboundSpamThreshold": {
      "type": "integer"
    }
  }
}
object EditTemplateRequest
{
  "required": [
    "TemplateId"
  ],
  "properties": {
    "Name": {
      "type": "string",
      "description": "The friendly display name for the template."
    },
    "Alias": {
      "type": "string",
      "description": "The optional string identifier for referring to this Template (numbers, letters, and '.', '-', '_' characters, starts with a letter)."
    },
    "Subject": {
      "type": "string",
      "description": "The Subject template definition for this Template."
    },
    "HtmlBody": {
      "type": "string",
      "description": "The HTML template definition for this Template."
    },
    "TextBody": {
      "type": "string",
      "description": "The Text template definition for this Template."
    }
  },
  "description": "The contents required for creating a new template."
}
object EmailNameAddressPair
{
  "properties": {
    "Name": {
      "type": "string"
    },
    "Email": {
      "type": "string"
    }
  },
  "description": ""
}
object EmailWithTemplateRequest
{
  "required": [
    "TemplateId",
    "TemplateAlias",
    "TemplateModel",
    "To",
    "From"
  ],
  "properties": {
    "Cc": {
      "type": "string",
      "format": "email"
    },
    "To": {
      "type": "string",
      "format": "email"
    },
    "Bcc": {
      "type": "string",
      "format": "email"
    },
    "Tag": {
      "type": "string"
    },
    "From": {
      "type": "string",
      "format": "email"
    },
    "Headers": {
      "$ref": "#/components/schemas/HeaderCollection"
    },
    "ReplyTo": {
      "type": "string"
    },
    "InlineCss": {
      "type": "boolean",
      "default": true
    },
    "TemplateId": {
      "type": "integer",
      "description": "Required if 'TemplateAlias' is not specified."
    },
    "TrackLinks": {
      "enum": [
        "None",
        "HtmlAndText",
        "HtmlOnly",
        "TextOnly"
      ],
      "type": "string",
      "description": "Replace links in content to enable \"click tracking\" stats. Default is 'null', which uses the server's LinkTracking setting'."
    },
    "TrackOpens": {
      "type": "boolean",
      "description": "Activate open tracking for this email."
    },
    "Attachments": {
      "$ref": "#/components/schemas/AttachmentCollection"
    },
    "TemplateAlias": {
      "type": "string",
      "description": "Required if 'TemplateId' is not specified."
    },
    "TemplateModel": {
      "type": "object"
    }
  }
}
object ExtendedMessageClickEventInformation
{
  "properties": {
    "OS": {
      "properties": {
        "Name": {
          "type": "string"
        },
        "Family": {
          "type": "string"
        },
        "Company": {
          "type": "string"
        }
      }
    },
    "Geo": {
      "properties": {
        "IP": {
          "type": "string"
        },
        "Zip": {
          "type": "string"
        },
        "City": {
          "type": "string"
        },
        "Coords": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "Country": {
          "type": "string"
        },
        "RegionISOCode": {
          "type": "string"
        },
        "CountryISOCode": {
          "type": "string"
        }
      }
    },
    "Tag": {
      "type": "string"
    },
    "Client": {
      "properties": {
        "Name": {
          "type": "string"
        },
        "Family": {
          "type": "string"
        },
        "Company": {
          "type": "string"
        }
      },
      "description": ""
    },
    "Platform": {
      "type": "string"
    },
    "MessageID": {
      "type": "string"
    },
    "Recipient": {
      "type": "string",
      "format": "email"
    },
    "UserAgent": {
      "type": "string"
    },
    "ReceivedAt": {
      "type": "string",
      "format": "date-time"
    },
    "OriginalLink": {
      "type": "string"
    },
    "ClickLocation": {
      "type": "string"
    }
  },
  "description": ""
}
object ExtendedMessageOpenEventInformation
{
  "properties": {
    "OS": {
      "properties": {
        "Name": {
          "type": "string"
        },
        "Family": {
          "type": "string"
        },
        "Company": {
          "type": "string"
        }
      }
    },
    "Geo": {
      "properties": {
        "IP": {
          "type": "string"
        },
        "Zip": {
          "type": "string"
        },
        "City": {
          "type": "string"
        },
        "Coords": {
          "type": "string"
        },
        "Region": {
          "type": "string"
        },
        "Country": {
          "type": "string"
        },
        "RegionISOCode": {
          "type": "string"
        },
        "CountryISOCode": {
          "type": "string"
        }
      }
    },
    "Tag": {
      "type": "string"
    },
    "Client": {
      "properties": {
        "Name": {
          "type": "string"
        },
        "Family": {
          "type": "string"
        },
        "Company": {
          "type": "string"
        }
      },
      "description": ""
    },
    "Platform": {
      "type": "string"
    },
    "FirstOpen": {
      "type": "boolean"
    },
    "MessageID": {
      "type": "string"
    },
    "Recipient": {
      "type": "string",
      "format": "email"
    },
    "UserAgent": {
      "type": "string"
    },
    "ReceivedAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "description": ""
}
array HeaderCollection
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/MessageHeader"
  }
}
object InboundMessageDetail
{
  "properties": {
    "Cc": {
      "type": "string"
    },
    "To": {
      "type": "string"
    },
    "Tag": {
      "type": "string"
    },
    "Date": {
      "type": "string"
    },
    "From": {
      "type": "string"
    },
    "CcFull": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "Status": {
      "type": "string"
    },
    "ToFull": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "ReplyTo": {
      "type": "string"
    },
    "Subject": {
      "type": "string"
    },
    "FromFull": {
      "properties": {
        "Name": {
          "type": "string"
        },
        "Email": {
          "type": "string"
        }
      },
      "description": ""
    },
    "FromName": {
      "type": "string"
    },
    "MessageID": {
      "type": "string"
    },
    "Attachments": {
      "$ref": "#/components/schemas/AttachmentCollection"
    },
    "MailboxHash": {
      "type": "string"
    },
    "OriginalRecipient": {
      "type": "string"
    }
  },
  "description": ""
}
object InboundMessageFullDetailsResponse
{
  "properties": {
    "Cc": {
      "type": "string"
    },
    "To": {
      "type": "string"
    },
    "Tag": {
      "type": "string"
    },
    "Date": {
      "type": "string"
    },
    "From": {
      "type": "string"
    },
    "CcFull": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "Status": {
      "type": "string"
    },
    "ToFull": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "Headers": {
      "$ref": "#/components/schemas/HeaderCollection"
    },
    "ReplyTo": {
      "type": "string"
    },
    "Subject": {
      "type": "string"
    },
    "FromFull": {
      "properties": {
        "Name": {
          "type": "string"
        },
        "Email": {
          "type": "string"
        }
      },
      "description": ""
    },
    "FromName": {
      "type": "string"
    },
    "HtmlBody": {
      "type": "string"
    },
    "TextBody": {
      "type": "string"
    },
    "MessageID": {
      "type": "string"
    },
    "Attachments": {
      "$ref": "#/components/schemas/AttachmentCollection"
    },
    "MailboxHash": {
      "type": "string"
    },
    "BlockedReason": {
      "type": "string"
    },
    "OriginalRecipient": {
      "type": "string"
    }
  }
}
object InboundRulesApiCreateTriggerResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object InboundRulesApiListTriggersResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object InboundSearchResponse
{
  "properties": {
    "TotalCount": {
      "type": "integer"
    },
    "InboundMessages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/InboundMessageDetail"
      }
    }
  },
  "description": ""
}
object MessageClickSearchResponse
{
  "properties": {
    "Clicks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExtendedMessageClickEventInformation"
      }
    },
    "TotalCount": {
      "type": "integer"
    }
  }
}
object MessageEventDetails
{
  "properties": {
    "Type": {
      "type": "string"
    },
    "Details": {
      "properties": {
        "Summary": {
          "type": "string"
        },
        "BounceID": {
          "type": "string"
        },
        "DestinationIP": {
          "type": "string"
        },
        "DeliveryMessage": {
          "type": "string"
        },
        "DestinationServer": {
          "type": "string"
        }
      }
    },
    "Recipient": {
      "type": "string"
    },
    "ReceivedAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "description": ""
}
object MessageHeader
{
  "properties": {
    "Name": {
      "type": "string",
      "description": "The header's name."
    },
    "Value": {
      "type": "string",
      "description": "The header's value."
    }
  },
  "description": "A single header for an email message."
}
object MessageOpenSearchResponse
{
  "properties": {
    "Opens": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExtendedMessageOpenEventInformation"
      }
    },
    "TotalCount": {
      "type": "integer"
    }
  }
}
object MessagesApiGetAllClicksResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object MessagesApiGetInboundMessageDetailsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object MessagesApiGetMessageClicksResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object MessagesApiGetMessageDumpResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object MessagesApiGetMessageOpensResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object MessagesApiGetOutboundMessageDetailsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object MessagesApiListOpensForOutboundResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object OutboundMessageDetail
{
  "properties": {
    "Cc": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "To": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "Bcc": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "Tag": {
      "type": "string"
    },
    "From": {
      "type": "string"
    },
    "Status": {
      "type": "string"
    },
    "Subject": {
      "type": "string"
    },
    "MessageID": {
      "type": "string"
    },
    "ReceivedAt": {
      "type": "string",
      "format": "date-time"
    },
    "Recipients": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "TrackLinks": {
      "enum": [
        "None",
        "HtmlAndText",
        "HtmlOnly",
        "TextOnly"
      ],
      "type": "string"
    },
    "TrackOpens": {
      "type": "boolean"
    },
    "Attachments": {
      "$ref": "#/components/schemas/AttachmentCollection"
    }
  },
  "description": ""
}
object OutboundMessageDetailsResponse
{
  "properties": {
    "Cc": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "To": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "Bcc": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailNameAddressPair"
      }
    },
    "Tag": {
      "type": "string"
    },
    "Body": {
      "type": "string"
    },
    "From": {
      "type": "string"
    },
    "Status": {
      "type": "string"
    },
    "Subject": {
      "type": "string"
    },
    "HtmlBody": {
      "type": "string"
    },
    "TextBody": {
      "type": "string"
    },
    "MessageID": {
      "type": "string"
    },
    "ReceivedAt": {
      "type": "string",
      "format": "date-time"
    },
    "Recipients": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "TrackLinks": {
      "enum": [
        "None",
        "HtmlAndText",
        "HtmlOnly",
        "TextOnly"
      ],
      "type": "string"
    },
    "TrackOpens": {
      "type": "boolean"
    },
    "Attachments": {
      "$ref": "#/components/schemas/AttachmentCollection"
    },
    "MessageEvents": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MessageEventDetails"
      }
    }
  }
}
object OutboundMessageDumpResponse
{
  "properties": {
    "Body": {
      "type": "string",
      "description": "Raw source of message. If no dump is available this will return an empty string."
    }
  }
}
object OutboundOverviewStatsResponse
{
  "properties": {
    "Sent": {
      "type": "integer"
    },
    "Opens": {
      "type": "integer"
    },
    "Bounced": {
      "type": "integer"
    },
    "Tracked": {
      "type": "integer"
    },
    "BounceRate": {
      "type": "integer"
    },
    "TotalClicks": {
      "type": "integer"
    },
    "UniqueOpens": {
      "type": "integer"
    },
    "SMTPAPIErrors": {
      "type": "integer"
    },
    "SpamComplaints": {
      "type": "integer"
    },
    "WithLinkTracking": {
      "type": "integer"
    },
    "WithOpenTracking": {
      "type": "integer"
    },
    "SpamComplaintsRate": {
      "type": "integer"
    },
    "UniqueLinksClicked": {
      "type": "integer"
    },
    "WithClientRecorded": {
      "type": "integer"
    },
    "WithPlatformRecorded": {
      "type": "integer"
    },
    "TotalTrackedLinksSent": {
      "type": "integer"
    }
  },
  "description": ""
}
object OutboundSearchResponse
{
  "properties": {
    "Messages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OutboundMessageDetail"
      }
    },
    "TotalCount": {
      "type": "integer"
    }
  },
  "description": ""
}
array SendEmailBatchRequest
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/SendEmailRequest"
  }
}
array SendEmailBatchResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/SendEmailResponse"
  }
}
object SendEmailRequest
{
  "properties": {
    "Cc": {
      "type": "string",
      "description": "Recipient email address. Multiple addresses are comma seperated. Max 50."
    },
    "To": {
      "type": "string",
      "description": "Recipient email address. Multiple addresses are comma seperated. Max 50."
    },
    "Bcc": {
      "type": "string",
      "description": "Bcc recipient email address. Multiple addresses are comma seperated. Max 50."
    },
    "Tag": {
      "type": "string",
      "description": "Email tag that allows you to categorize outgoing emails and get detailed statistics."
    },
    "From": {
      "type": "string",
      "description": "The sender email address. Must have a registered and confirmed Sender Signature."
    },
    "Headers": {
      "$ref": "#/components/schemas/HeaderCollection"
    },
    "ReplyTo": {
      "type": "string",
      "description": "Reply To override email address. Defaults to the Reply To set in the sender signature."
    },
    "Subject": {
      "type": "string",
      "description": "Email Subject"
    },
    "HtmlBody": {
      "type": "string",
      "description": "If no TextBody specified HTML email message"
    },
    "TextBody": {
      "type": "string",
      "description": "If no HtmlBody specified Plain text email message"
    },
    "TrackLinks": {
      "enum": [
        "None",
        "HtmlAndText",
        "HtmlOnly",
        "TextOnly"
      ],
      "type": "string",
      "description": "Replace links in content to enable \"click tracking\" stats. Default is 'null', which uses the server's LinkTracking setting'."
    },
    "TrackOpens": {
      "type": "boolean",
      "description": "Activate open tracking for this email."
    },
    "Attachments": {
      "$ref": "#/components/schemas/AttachmentCollection"
    }
  }
}
object SendEmailResponse
{
  "properties": {
    "To": {
      "type": "string"
    },
    "Message": {
      "type": "string"
    },
    "ErrorCode": {
      "type": "integer"
    },
    "MessageID": {
      "type": "string"
    },
    "SubmittedAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "description": "The standard response when a postmark message is sent"
}
object SendEmailTemplatedBatchRequest
{
  "properties": {
    "Messages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailWithTemplateRequest"
      }
    }
  }
}
object SentCountsResponse
{
  "properties": {
    "Days": {
      "type": "array",
      "items": {
        "properties": {
          "Date": {
            "type": "string"
          },
          "Sent": {
            "type": "integer"
          }
        }
      }
    },
    "Sent": {
      "type": "integer"
    }
  },
  "description": "The result of a get sent counts operation."
}
object ServerConfigurationApiGetConfigurationResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object ServerConfigurationApiUpdateConfigurationResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object ServerConfigurationResponse
{
  "properties": {
    "ID": {
      "type": "integer"
    },
    "Name": {
      "type": "string"
    },
    "Color": {
      "enum": [
        "purple",
        "blue",
        "turqoise",
        "green",
        "red",
        "yellow",
        "grey"
      ],
      "type": "string"
    },
    "ApiTokens": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ServerLink": {
      "type": "string"
    },
    "TrackLinks": {
      "enum": [
        "None",
        "HtmlAndText",
        "HtmlOnly",
        "TextOnly"
      ],
      "type": "string"
    },
    "TrackOpens": {
      "type": "boolean"
    },
    "InboundHash": {
      "type": "string"
    },
    "OpenHookUrl": {
      "type": "string"
    },
    "ClickHookUrl": {
      "type": "string"
    },
    "BounceHookUrl": {
      "type": "string"
    },
    "InboundDomain": {
      "type": "string"
    },
    "InboundAddress": {
      "type": "string",
      "format": "email"
    },
    "InboundHookUrl": {
      "type": "string"
    },
    "DeliveryHookUrl": {
      "type": "string"
    },
    "RawEmailEnabled": {
      "type": "boolean"
    },
    "SmtpApiActivated": {
      "type": "boolean"
    },
    "PostFirstOpenOnly": {
      "type": "boolean"
    },
    "InboundSpamThreshold": {
      "type": "integer"
    }
  }
}
object StandardPostmarkResponse
{
  "properties": {
    "Message": {
      "type": "string"
    },
    "ErrorCode": {
      "type": "integer"
    }
  },
  "description": "A Postmark API error."
}
object StatsApiGetBounceCountsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetBrowserPlatformUsageResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetEmailClientUsageResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetEmailOpenCountsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetEmailPlatformUsageResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetOutboundClickCountsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetOutboundClicksBrowserFamiliesResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetOutboundClicksLocationResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetSpamComplaintsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object StatsApiGetTrackedEmailCountsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object TemplateDetailResponse
{
  "properties": {
    "Name": {
      "type": "string",
      "description": "The display name for the template."
    },
    "Alias": {
      "type": "string",
      "description": "The user-supplied alias for this template."
    },
    "Active": {
      "type": "boolean",
      "description": "Indicates that this template may be used for sending email."
    },
    "Subject": {
      "type": "string",
      "description": "The content to use for the Subject when this template is used to send email."
    },
    "HtmlBody": {
      "type": "string",
      "description": "The content to use for the HtmlBody when this template is used to send email."
    },
    "TextBody": {
      "type": "string",
      "description": "The content to use for the TextBody when this template is used to send email."
    },
    "TemplateID": {
      "type": "integer",
      "description": "The ID associated with the template."
    },
    "AssociatedServerId": {
      "type": "integer",
      "description": "The ID of the Server with which this template is associated."
    }
  }
}
object TemplateListingResponse
{
  "properties": {
    "TotalCount": {
      "type": "number",
      "description": "The total number of Templates API associated with this server."
    },
    "Templates API": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TemplateRecordResponse"
      },
      "description": "Basic information for each Template returned from the query."
    }
  }
}
object TemplateRecordResponse
{
  "properties": {
    "Name": {
      "type": "string",
      "description": "The display name for this template."
    },
    "Alias": {
      "type": "string",
      "description": "The user-supplied alias for this template."
    },
    "Active": {
      "type": "boolean",
      "description": "True if this template is currently available for use."
    },
    "TemplateId": {
      "type": "number",
      "format": "int",
      "description": "The associated ID for this template."
    }
  }
}
object TemplateValidationError
{
  "properties": {
    "Line": {
      "type": "integer"
    },
    "Message": {
      "type": "string"
    },
    "CharacterPosition": {
      "type": "integer"
    }
  }
}
object TemplateValidationRequest
{
  "properties": {
    "Subject": {
      "type": "string",
      "description": "The subject content to validate. Must be specified if HtmlBody or\nTextBody are not. See our template language documentation for more\ninformation on the syntax for this field.\n"
    },
    "HtmlBody": {
      "type": "string",
      "description": "The html body content to validate. Must be specified if Subject or\nTextBody are not. See our template language documentation for more\ninformation on the syntax for this field.\n"
    },
    "TextBody": {
      "type": "string",
      "description": "The text body content to validate. Must be specified if HtmlBody or\nSubject are not. See our template language documentation for more\ninformation on the syntax for this field.\n"
    },
    "TestRenderModel": {
      "type": "object",
      "description": "The model to be used when rendering test content."
    },
    "InlineCssForHtmlTestRender": {
      "type": "boolean",
      "default": true,
      "description": "When HtmlBody is specified, the test render will have style blocks\ninlined as style attributes on matching html elements. You may disable\nthe css inlining behavior by passing false for this parameter.\n"
    }
  }
}
object TemplateValidationResponse
{
  "properties": {
    "Subject": {
      "$ref": "#/components/schemas/TemplateValidationResult"
    },
    "HtmlBody": {
      "$ref": "#/components/schemas/TemplateValidationResult"
    },
    "TextBody": {
      "$ref": "#/components/schemas/TemplateValidationResult"
    },
    "AllContentIsValid": {
      "type": "boolean"
    },
    "SuggestedTemplateModel": {
      "type": "object"
    }
  }
}
object TemplateValidationResult
{
  "properties": {
    "ContentIsValid": {
      "type": "boolean"
    },
    "RenderedContent": {
      "type": "string"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TemplateValidationError"
      }
    }
  }
}
object TemplatesApiCreateTemplateResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object TemplatesApiDeleteTemplateResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object TemplatesApiGetTemplateByIdResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object TemplatesApiListTemplatesResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object TemplatesApiUpdateTemplateResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object TemplatesApiValidateTemplateContentResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}