Documentation Index
Fetch the complete documentation index at: https://docs.paubox.com/llms.txt
Use this file to discover all available pages before exploring further.
Why migrate
Postmark does not sign Business Associate Agreements (BAAs). HIPAA requires a signed BAA with any vendor that handles Protected Health Information (PHI) in transit — including transactional email providers. Paubox is purpose-built for HIPAA-compliant email and signs a BAA with every customer. The Postmark API uses familiar REST/JSON patterns, so the switch is straightforward for developers already comfortable with Postmark.What stays the same
- REST API over HTTPS with JSON request bodies
- API key authentication via a request header
- Domain authentication: SPF and DKIM records required
- SMTP as an alternative to the HTTP API
- Webhook-based event notifications for delivery status
Key differences
| Dimension | Postmark | Paubox Email API |
|---|---|---|
| Base URL | https://api.postmarkapp.com/email | https://api.paubox.net/v1/$PAUBOX_ENDPOINT/messages |
| Auth header | X-Postmark-Server-Token: $TOKEN | Authorization: Bearer $PAUBOX_API_KEY |
| Request body shape | From, To, Subject, HtmlBody flat keys | data.message object with headers and content keys |
| SMTP host | smtp.postmarkapp.com | smtp.paubox.com |
| SMTP username | Postmark server token (as username) | apikey (literal) |
| SMTP password | Postmark server token (as password) | Paubox API key |
| SMTP port | 587 or 2525 | 587 (also supports 465, 25) |
| Webhook events | Delivery, Open, Click, Bounce, SpamComplaint, SubscriptionChange | delivered, opened, temporary_failure, permanent_failure |
| Batch send | /email/batch endpoint, up to 500/request | /bulk_messages endpoint, recommended max 50 per request |
| TLS enforcement | Optional | Always-on, cannot be disabled |
| Message streams | Transactional + Broadcast streams | Single unified API — no stream concept |
Send a single email
Note:
$PAUBOX_ENDPOINT is the username shown on your Paubox Email API > Settings page — not your email address.SMTP configuration
Webhook event mapping
| Postmark event | Paubox event key | Notes |
|---|---|---|
Delivery | api_mail_log_delivered | |
Open | api_mail_log_opened | |
Bounce (hard) | api_mail_log_permanent_failure | |
Bounce (soft) | api_mail_log_temporary_failure | |
Click | — no equivalent | Remove handler or no-op; poll click data via Get message receipt |
SpamComplaint | — no equivalent | Remove handler |
SubscriptionChange | — no equivalent | Manage unsubscribes in the Paubox dashboard |
Note:Click tracking is available by polling
GET /message_receipt?sourceTrackingId=... — it is not delivered as a push webhook event.Migration checklist
Sign a BAA with Paubox
Required before go-live. Contact Paubox to initiate the Business Associate Agreement.
Create an account and verify your sending domain
Add your domain on the Paubox Email API > Settings page and complete the TXT record verification. See the Quickstart guide for step-by-step instructions.
Generate a Paubox API key
From the Settings page, generate an API key and note your customer endpoint (
https://api.paubox.net/v1/YOUR_USERNAME).Update base URL, auth header, and request body
Replace the Postmark endpoint and
X-Postmark-Server-Token header with the Paubox endpoint and Bearer token. Restructure the request body to use the data.message shape shown above.Remove MessageStream
Paubox has no stream concept. Remove the
"MessageStream" field from all requests.Update SMTP credentials
If you use the SMTP path, update
host to smtp.paubox.com, set username to the literal string apikey, and password to your Paubox API key.Remap or remove webhook handlers
Update your webhook endpoint using the event mapping table above. Remove handlers for
Click, SpamComplaint, and SubscriptionChange.Remove any code that disables TLS
Paubox enforces TLS on every message. Any
allowNonTLS: true or equivalent settings should be removed.Send a test message
Confirm delivery using the Get message receipt endpoint with the
sourceTrackingId returned from your test send.Swap DNS records
Replace Postmark SPF/DKIM records with the Paubox records shown in your Settings page.
Next steps
Quickstart guide
Full setup walkthrough from account creation to first send
Webhooks reference
Configure delivery event notifications
Batch send
Send up to 50 messages in a single request
SMTP API
Connect via SMTP instead of REST