One API call, thousands of recipients. Define your message once, personalize with variables, and let Postmark handle delivery, throttling, and tracking.
No credit card required. Contact support to enable the Bulk API in your account.
Sending the same email to a lot of people used to mean hammering the /email endpoint over and over (or stuffing duplicate content into every message in a /batch call). Either way, you end up with bloated payloads, slower uploads, and code you'd rather not maintain.
With the Bulk API, you define your message content once and pass a list of recipients. Postmark compiles the individual messages on our end. One request, thousands of emails, dramatically less data over the wire.
The result? Dramatically smaller payloads, faster uploads, and cleaner code.
Using the /email/batch endpoint
Using the /email/bulk endpoint
Define your message once and add your recipient list with personalization variables. Your API calls get smaller, your uploads get faster, and your code stays clean.
Max payload: 50 MBInbox providers can get picky when you send too much email too fast. Postmark automatically throttles your sends at the optimal rate, so your messages land in the inbox.
No rate limiting to buildMake each email feel personal with recipient-specific content. Use {{FirstName}} or any custom variables to customize subject lines, greetings, or any part of your message.
Works with hosted templatesMonitor your bulk sends as they happen. See the percentage of how many messages have been sent with a simple API request.
Poll /email/bulk/{id}Submit one request with your message content and a list of recipients. Postmark handles the heavy lifting from there.
Set your subject, HTML body, text body, and attachments at the request level. This content stays the same across all recipients.
Include an array of recipients, each with their own template variables for customization. You can include Cc and Bcc recipients, as well as attachments.
We compile individual messages on our end and send them at the optimal rate for deliverability. You get status updates along the way.
# Send bulk email with a single API call curl "https://api.postmarkapp.com/email/bulk" \ -X POST \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "X-Postmark-Server-Token: server token" \ -d '{ "From": "updates@yourapp.com", "Subject": "New feature: {{FeatureName}}", "HtmlBody": "<html><body>Hi {{FirstName}}, check out our new feature!</body></html>", "MessageStream": "broadcast", "Messages": [ { "To": "user1@example.com", "TemplateModel": { "FirstName": "Alex", "FeatureName": "Dark Mode" } }, { "To": "user2@example.com", "TemplateModel": { "FirstName": "Jordan", "FeatureName": "Dark Mode" } } ] }'
Been a Postmark customer for a very long time. Stability and deliverability is so good I sometimes go months without thinking about it. It just works.
All bulk email sends through our dedicated Broadcast infrastructure. Separate IPs, separate reputation from your transactional messages. No extra cost, no mixing traffic, and better deliverability for both.
Let your users know about new features, improvements, or changes to your platform. Personalize each message so it feels relevant to every recipient.
Send weekly updates, content roundups, or curated recommendations to your subscriber base, all through a single API call.
When you need to reach everyone at once, the Bulk API makes it easy to send important compliance communications reliably.
For platforms that send on behalf of others, bulk sending simplifies high-volume notification workflows without sacrificing deliverability.
Both let you send multiple messages in one request. The difference is what you're sending.
| Feature | Bulk API | Batch API |
|---|---|---|
| Best for | β Same message to many recipients | Different messages to different recipients |
| Message content | β Define once, personalize with variables | Define separately for each recipient |
| Attachments | β Defined once, sent to all | Must include with each message |
| Payload size | β Significantly smaller | Larger (content duplicated per recipient) |
| Max payload | β 50 MB (including attachments) | 500 messages per request |
| Send speed optimization | β Automatic throttling | You manage rate limiting |
The Bulk API is available on all Postmark plans. To enable it for your account, reach out to our support team at support@postmarkapp.com. We'll usually have you up and running within a few hours.
You can include as many recipients as you need, as long as your total payload (including attachments) stays under 50 MB.
Not yet. Right now, the Bulk API works with Broadcast Streams only. If you have a use case for transactional bulk sending, we'd love to hear about it. Let us know β
Nope. Postmark automatically optimizes your sending speed to help ensure deliverability. You submit your messages, and we handle the pacing.
The Batch API is designed for sending different messages to different recipients in a single request. The Bulk API is designed for sending the same message to many recipients with personalization. The Bulk API results in much smaller payloads because you only define your content once.
No additional fees. Every message sent through the Bulk API counts toward your monthly email limit, just like any other message.
Use the /email/bulk/{bulk-request-id} endpoint to check progress. You'll see the total message count, percentage completed, and current status (Accepted, Processing, or Completed).
Join thousands of businesses that trust Postmark to deliver their most important messages.
No credit card required. Contact support to enable the Bulk API in your account.
Ignacio
Ask us anything! Weβre eager to help you with any problem or question you haveβ¦
Contact us