@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Postmark API
@base https://api.postmarkapp.com/
@version 1.0.0
@common_fields {X-Postmark-Server-Token: any}
@endpoints 43
@hint download_for_search
@toc email(4), deliverystats(1), bounces(4), messages(11), templates(6), stats(12), triggers(3), server(2)

@group email
@endpoint POST /email
@optional {body: any}
@returns(200)
@errors {422, 500}

@endpoint POST /email/batch
@optional {body: [any]}
@returns(200)
@errors {422, 500}

@endgroup

@group deliverystats
@endpoint GET /deliverystats
@returns(200)
@errors {422, 500}

@endgroup

@group bounces
@endpoint GET /bounces
@required {count: any, offset: any}
@optional {type: any, inactive: any, emailFilter: any, messageID: any, tag: any, todate: any, fromdate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /bounces/{bounceid}
@required {bounceid: any}
@returns(200)
@errors {422, 500}

@endpoint GET /bounces/{bounceid}/dump
@required {bounceid: any}
@returns(200)
@errors {422, 500}

@endpoint PUT /bounces/{bounceid}/activate
@required {bounceid: any}
@returns(200)
@errors {422, 500}

@endgroup

@group messages
@endpoint GET /messages/outbound
@required {count: any, offset: any}
@optional {recipient: any, fromemail: any, tag: any, status: any, todate: any, fromdate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /messages/outbound/{messageid}/details
@required {messageid: any}
@returns(200)
@errors {422, 500}

@endpoint GET /messages/outbound/{messageid}/dump
@required {messageid: any}
@returns(200)
@errors {422, 500}

@endpoint GET /messages/inbound
@required {count: any, offset: any}
@optional {recipient: any, fromemail: any, subject: any, mailboxhash: any, tag: any, status: any, todate: any, fromdate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /messages/inbound/{messageid}/details
@required {messageid: any}
@returns(200)
@errors {422, 500}

@endpoint PUT /messages/inbound/{messageid}/bypass
@required {messageid: any}
@returns(200)
@errors {422, 500}

@endpoint PUT /messages/inbound/{messageid}/retry
@required {messageid: any}
@returns(200)
@errors {422, 500}

@endpoint GET /messages/outbound/opens
@required {count: any, offset: any}
@optional {recipient: any, tag: any, client_name: any, client_company: any, client_family: any, os_name: any, os_family: any, os_company: any, platform: any, country: any, region: any, city: any}
@returns(200)
@errors {422, 500}

@endpoint GET /messages/outbound/opens/{messageid}
@required {messageid: any, count: any, offset: any}
@returns(200)
@errors {422, 500}

@endpoint GET /messages/outbound/clicks
@required {count: any, offset: any}
@optional {recipient: any, tag: any, client_name: any, client_company: any, client_family: any, os_name: any, os_family: any, os_company: any, platform: any, country: any, region: any, city: any}
@returns(200)
@errors {422, 500}

@endpoint GET /messages/outbound/clicks/{messageid}
@required {messageid: any, count: any, offset: any}
@returns(200)
@errors {422, 500}

@endgroup

@group email
@endpoint POST /email/withTemplate
@required {body: any}
@returns(200)
@errors {422, 500}

@endpoint POST /email/batchWithTemplates
@required {body: any}
@returns(200)
@errors {422, 500}

@endgroup

@group templates
@endpoint GET /templates
@required {Count: any, Offset: any}
@returns(200)
@errors {422, 500}

@endpoint POST /templates
@required {body: any}
@returns(200)
@errors {422, 500}

@endpoint GET /templates/{templateIdOrAlias}
@required {templateIdOrAlias: any}
@returns(200)
@errors {422, 500}

@endpoint PUT /templates/{templateIdOrAlias}
@required {templateIdOrAlias: any, body: any}
@returns(200)
@errors {422, 500}

@endpoint DELETE /templates/{templateIdOrAlias}
@required {templateIdOrAlias: any}
@returns(200)
@errors {422, 500}

@endpoint POST /templates/validate
@optional {body: any}
@returns(200)
@errors {422, 500}

@endgroup

@group stats
@endpoint GET /stats/outbound
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/sends
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/bounces
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/spam
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/tracked
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/opens
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/opens/platforms
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/opens/emailclients
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/clicks
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/clicks/browserfamilies
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/clicks/platforms
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endpoint GET /stats/outbound/clicks/location
@optional {tag: any, fromdate: any, todate: any}
@returns(200)
@errors {422, 500}

@endgroup

@group triggers
@endpoint POST /triggers/inboundrules
@optional {body: any}
@returns(200)
@errors {422, 500}

@endpoint GET /triggers/inboundrules
@required {count: any, offset: any}
@returns(200)
@errors {422, 500}

@endpoint DELETE /triggers/inboundrules/{triggerid}
@required {triggerid: any}
@returns(200)
@errors {422, 500}

@endgroup

@group server
@endpoint GET /server
@returns(200)
@errors {422, 500}

@endpoint PUT /server
@optional {body: any}
@returns(200)
@errors {422, 500}

@endgroup

@end
