X-Postmark-Server-Token header. The account token covers a different set of account-level routes, which this plugin does not wrap, so one server token is all it needs.
What to know before you send:
- A send cannot be recalled.
email.sendandemail.sendBatchdeliver real mail. A server in Sandbox mode accepts sends without delivering them, but that is a server setting rather than a request flag. - A 200 batch is not a success.
email.sendBatchanswers HTTP 200 with one result per message, and each carries its ownErrorCode.0means sent, and anything else means that message failed while the others may have gone out. - The sender must be verified.
Fromneeds a confirmed Sender Signature or a verified domain, or the send is rejected with code 300. - A body is required. Supply
TextBody,HtmlBody, or both; the plugin rejects a message with neither before it is sent. - Attachments are base64. Give each one a
Name, aContentand aContentType, and setContentIDto reference it ascid:from the HTML. - Paging is by offset. List routes take
CountandOffset(100 and 0 when left out) and returnTotalCount; page while the offset is below it. Note that the bounces route spells its parameters in lowercase, which this plugin maps for you. - Stats are limited. The overview accepts a window no older than a year, and the stats API needs the plan that includes it.
- Retries. A 429 is retried three times by Corsair’s request layer, which waits for a
Retry-Afterwhen Postmark sends one. A 5xx or a dropped connection is retried only on reads; a send is never replayed. - Webhooks. Postmark posts delivery, bounce and inbound events to a URL you register, but this plugin does not handle inbound deliveries.
- 19 typed API operations
Setup
1
Install
2
Add the plugin
corsair.ts
multiTenancy: true, scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.3
Choose authentication
- API Key (Recommended)
Store the Postmark API key before the first call: More: API Key
pnpm corsair setup --plugin=postmark --tenant=acme api_key=<your-key> (leave out --tenant without multiTenancy), or pass it as key in the plugin options. With Hub, each tenant enters their own key on the connect page. See API key auth.4
Connect a tenant
Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.
Example API calls
Read this server’s settingsWhat’s next
API reference
Every
postmark.api.* operation with input and output types.Connect / OAuth
createLink, Hub delivery, and tenant connect flows.
Use with agents
Expose this plugin’s operations as MCP tools.