openapi: 3.0.0 info: title: Postmark 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: Activate - name: Alias - name: Batch - name: Bounceid - name: Bounces - name: Browser Families - name: Bypass - name: Dump - name: Email - name: Emailclients - name: Inbound - name: Locations - name: Message Identifier - name: Messages - name: Messages > Inbound > {Messageid} - name: Messages > Outbound > Clicks - name: Messages > Outbound > Opens - name: Messages > Outbound > {Messageid} - name: Outbound - name: Platforms - name: Readtimes - name: Retry - name: Sends - name: Servers - name: Spam - name: Statistics - name: Stats/Outbound - name: Stats/Outbound > Clicks - name: Stats/Outbound > Opens - name: Template - name: Templates - name: Triggerid - name: Triggers - name: Triggers > Inboundrules - name: Triggers > Tags - name: Validate paths: /bounces/{bounceid}: get: tags: - Bounceid summary: Postmark Get a single bounce parameters: - name: bounceid in: path schema: type: string required: true description: The ID of the bounce to retrieve. example: responses: '200': description: Successful response content: application/json: {} /bounces/{bounceid}/activate: put: tags: - Activate - Bounceid summary: Postmark Activate a bounce requestBody: content: {} parameters: - name: bounceid in: path schema: type: string required: true description: The ID of the bounce to retrieve. example: responses: '200': description: Successful response content: application/json: {} /bounces/{bounceid}/dump: get: tags: - Bounceid - Dump summary: Postmark Get bounce dump parameters: - name: bounceid in: path schema: type: string required: true description: The ID of the bounce to retrieve. example: responses: '200': description: Successful response content: application/json: {} /bounces: get: tags: - Bounces summary: Postmark Get bounces parameters: - name: count in: query schema: type: string description: Number of bounces to return per request. Max 500. example: - name: offset in: query schema: type: string description: Number of bounces to skip. example: - name: type in: query schema: type: string description: Filter by type of bounce example: - name: inactive in: query schema: type: string description: >- 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. example: - name: emailFilter in: query schema: type: string description: Filter by email address example: - name: messageID in: query schema: type: string description: Filter by messageID example: - name: tag in: query schema: type: string description: Filter by tag example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /bounces/tags: get: tags: [] summary: Postmark Get bounced tags responses: '200': description: Successful response content: application/json: {} /email: post: tags: - Email summary: Postmark Send a single email requestBody: content: {} responses: '200': description: Successful response content: application/json: {} /email/batch: post: tags: - Batch - Email summary: Postmark Send a batch of emails requestBody: content: {} responses: '200': description: Successful response content: application/json: {} /email/batchWithTemplates: post: tags: - Batch - Email - Templates summary: Postmark Send a batch of email using templates. requestBody: content: {} responses: '200': description: Successful response content: application/json: {} /email/withTemplate: post: tags: - Email - Template summary: Postmark Send an email using a Template requestBody: content: {} responses: '200': description: Successful response content: application/json: {} /messages/inbound/{messageid}/bypass: put: tags: - Bypass - Inbound - Messages summary: Postmark Bypass rules for a blocked inbound message requestBody: content: {} parameters: - name: messageid in: path schema: type: string required: true description: The ID of the message which should bypass inbound rules. example: responses: '200': description: Successful response content: application/json: {} /messages/inbound/{messageid}/details: get: tags: - Inbound - Messages - Messages > Inbound > {Messageid} summary: Postmark Inbound message details parameters: - name: messageid in: path schema: type: string required: true description: The ID of the message which should bypass inbound rules. example: responses: '200': description: Successful response content: application/json: {} /messages/inbound/{messageid}/retry: put: tags: - Inbound - Messages - Retry summary: Postmark Retry a failed inbound message for processing requestBody: content: {} parameters: - name: messageid in: path schema: type: string required: true description: The ID of the message which should bypass inbound rules. example: responses: '200': description: Successful response content: application/json: {} /messages/inbound: get: tags: - Inbound - Messages summary: Postmark Inbound message search parameters: - name: count in: query schema: type: string description: Number of bounces to return per request. Max 500. example: - name: offset in: query schema: type: string description: Number of bounces to skip. example: - name: recipient in: query schema: type: string description: Filter by the user who was receiving the email example: - name: fromemail in: query schema: type: string description: Filter by the sender email address example: - name: subject in: query schema: type: string description: Filter by email subject example: - name: mailboxhash in: query schema: type: string description: Filter by mailboxhash example: - name: tag in: query schema: type: string description: Filter by tag example: - name: status in: query schema: type: string description: >- Filter by status (`blocked`, `processed`, `queued`, `failed`, `scheduled`) example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /messages/outbound/clicks: get: tags: - Messages - Messages > Outbound > Clicks - Outbound 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: - name: offset in: query schema: type: string description: Number of bounces to skip. example: - name: recipient in: query schema: type: string description: Filter by the user who was receiving the email example: - name: tag in: query schema: type: string description: Filter by tag example: - name: client_name in: query schema: type: string description: Filter by client name, i.e. Outlook, Gmail example: - name: client_company in: query schema: type: string description: Filter by company, i.e. Microsoft, Apple, Google example: - name: client_family in: query schema: type: string description: Filter by client family, i.e. OS X, Chrome example: - 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: - name: os_family in: query schema: type: string description: >- Filter by kind of OS used without specific version, i.e. OS X, Windows example: - name: os_company in: query schema: type: string description: >- Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation example: - name: platform in: query schema: type: string description: Filter by platform, i.e. webmail, desktop, mobile example: - name: country in: query schema: type: string description: Filter by country messages were opened in, i.e. Denmark, Russia example: - name: region in: query schema: type: string description: >- Filter by full name of region messages were opened in, i.e. Moscow, New York example: - name: city in: query schema: type: string description: >- Filter by full name of region messages were opened in, i.e. Moscow, New York example: responses: '200': description: Successful response content: application/json: {} /messages/outbound/clicks/{messageid}: get: tags: - Message Identifier - Messages - Outbound summary: Postmark Retrieve Message Clicks parameters: - name: count in: query schema: type: string description: Number of bounces to return per request. Max 500. example: - name: offset in: query schema: type: string description: Number of bounces to skip. example: - name: messageid in: path schema: type: string required: true description: The ID of the message which should bypass inbound rules. example: responses: '200': description: Successful response content: application/json: {} /messages/outbound/opens: get: tags: - Messages - Messages > Outbound > Opens - Outbound 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: - name: offset in: query schema: type: string description: Number of bounces to skip. example: - name: recipient in: query schema: type: string description: Filter by the user who was receiving the email example: - name: tag in: query schema: type: string description: Filter by tag example: - name: client_name in: query schema: type: string description: Filter by client name, i.e. Outlook, Gmail example: - name: client_company in: query schema: type: string description: Filter by company, i.e. Microsoft, Apple, Google example: - name: client_family in: query schema: type: string description: Filter by client family, i.e. OS X, Chrome example: - 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: - name: os_family in: query schema: type: string description: >- Filter by kind of OS used without specific version, i.e. OS X, Windows example: - name: os_company in: query schema: type: string description: >- Filter by company which produced the OS, i.e. Apple Computer, Inc., Microsoft Corporation example: - name: platform in: query schema: type: string description: Filter by platform, i.e. webmail, desktop, mobile example: - name: country in: query schema: type: string description: Filter by country messages were opened in, i.e. Denmark, Russia example: - name: region in: query schema: type: string description: >- Filter by full name of region messages were opened in, i.e. Moscow, New York example: - name: city in: query schema: type: string description: >- Filter by full name of region messages were opened in, i.e. Moscow, New York example: responses: '200': description: Successful response content: application/json: {} /messages/outbound/opens/{messageid}: get: tags: - Message Identifier - Messages - Outbound summary: Postmark Retrieve Message Opens parameters: - name: count in: query schema: type: string description: Number of bounces to return per request. Max 500. example: - name: offset in: query schema: type: string description: Number of bounces to skip. example: - name: messageid in: path schema: type: string required: true description: The ID of the message which should bypass inbound rules. example: responses: '200': description: Successful response content: application/json: {} /messages/outbound/{messageid}/details: get: tags: - Messages - Messages > Outbound > {Messageid} - Outbound 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: responses: '200': description: Successful response content: application/json: {} /messages/outbound/{messageid}/dump: get: tags: - Dump - Messages - Outbound summary: Postmark Outbound message dump parameters: - name: messageid in: path schema: type: string required: true description: The ID of the message which should bypass inbound rules. example: responses: '200': description: Successful response content: application/json: {} /messages/outbound: get: tags: - Messages - Outbound summary: Postmark Outbound message search parameters: - name: count in: query schema: type: string description: Number of bounces to return per request. Max 500. example: - name: offset in: query schema: type: string description: Number of bounces to skip. example: - name: recipient in: query schema: type: string description: Filter by the user who was receiving the email example: - name: fromemail in: query schema: type: string description: Filter by the sender email address example: - name: tag in: query schema: type: string description: Filter by tag example: - name: status in: query schema: type: string description: >- Filter by status (`blocked`, `processed`, `queued`, `failed`, `scheduled`) example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/clicks: get: tags: - Outbound - Statistics - Stats/Outbound > Clicks summary: Postmark Get click counts parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/clicks/browserfamilies: get: tags: - Browser Families - Outbound - Statistics summary: Postmark Get browser usage by family parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/clicks/location: get: tags: - Locations - Outbound - Statistics summary: Postmark Get clicks by body location parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/clicks/platforms: get: tags: - Outbound - Platforms - Statistics summary: Postmark Get browser plaform usage parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/opens: get: tags: - Outbound - Statistics - Stats/Outbound > Opens summary: Postmark Get email open counts parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/opens/emailclients: get: tags: - Emailclients - Outbound - Statistics summary: Postmark Get email client usage parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/opens/platforms: get: tags: - Outbound - Platforms - Statistics summary: Postmark Get email platform usage parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/opens/readtimes: get: tags: - Outbound - Readtimes - Statistics summary: Postmark Get email read times parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound: get: tags: - Outbound - Statistics summary: Postmark Get outbound overview parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/bounces: get: tags: - Outbound - Statistics - Stats/Outbound summary: Postmark Get bounce counts parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/sends: get: tags: - Outbound - Sends - Statistics summary: Postmark Get sent counts parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/spam: get: tags: - Outbound - Spam - Statistics summary: Postmark Get spam complaints parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /stats/outbound/tracked: get: tags: - Outbound - Statistics - Stats/Outbound summary: Postmark Get tracked email counts parameters: - name: tag in: query schema: type: string description: Filter by tag example: - name: fromdate in: query schema: type: string description: Filter messages starting from the date specified. e.g. `2014-02-01` example: - name: todate in: query schema: type: string description: Filter messages up to the date specified. e.g. `2014-02-01` example: responses: '200': description: Successful response content: application/json: {} /templates: get: tags: - Templates summary: Postmark Get the Templates associated with this Server parameters: - name: count in: query schema: type: string description: Number of bounces to return per request. Max 500. example: - name: offset in: query schema: type: string description: Number of bounces to skip. example: responses: '200': description: Successful response content: application/json: {} /templates/validate: post: tags: - Templates - Validate summary: Postmark Test Template Content requestBody: content: {} responses: '200': description: Successful response content: application/json: {} /templates/{templateIdOrAlias}: delete: tags: - Alias - Template - Templates summary: Postmark Delete a Template parameters: - name: templateIdOrAlias in: path schema: type: string required: true description: >- The 'TemplateID' or 'Alias' value for the Template you wish to delete. example: responses: '200': description: Successful response content: application/json: {} /triggers/inboundrules: get: tags: - Triggers - Triggers > Inboundrules summary: Postmark List inbound rule triggers parameters: - name: count in: query schema: type: string description: Number of bounces to return per request. Max 500. example: - name: offset in: query schema: type: string description: Number of bounces to skip. example: responses: '200': description: Successful response content: application/json: {} /triggers/inboundrules/{triggerid}: delete: tags: - Triggerid - Triggers summary: Postmark Delete a single trigger parameters: - name: triggerid in: path schema: type: string required: true description: The ID of the Inbound Rule that should be deleted. example: responses: '200': description: Successful response content: application/json: {} /triggers/tags: get: tags: - Triggers summary: Postmark Search triggers parameters: - name: count in: query schema: type: string description: Number of bounces to return per request. Max 500. example: - name: offset in: query schema: type: string description: Number of bounces to skip. example: - name: match_name in: query schema: type: string description: Filter by delivery tag example: responses: '200': description: Successful response content: application/json: {} /triggers/tags/{triggerid}: delete: tags: - Triggers - Triggers > Tags summary: Postmark Delete a single trigger parameters: - name: triggerid in: path schema: type: string required: true description: The ID of the Inbound Rule that should be deleted. example: responses: '200': description: Successful response content: application/json: {} /deliverystats: get: tags: [] summary: Postmark Get delivery stats responses: '200': description: Successful response content: application/json: {} /server: get: tags: - Servers summary: Postmark Get Server Configuration responses: '200': description: Successful response content: application/json: {}