Email automation for developers

Launching soon

Build email workflows by API.

PostMX is an email automation API for inbox creation, webhook delivery, polling, and full message retrieval.

Use it for OTP flows, testing, support workflows, and inbound automation with a simple versioned API and bearer auth.

  • Inboxes on demand
  • Polling or webhooks
  • Full email content
  • Versioned /v1 API

Product overview

Developer-first email automation infrastructure for OTP, testing, and inbound workflows.

PostMX gives you a small, public API for creating inboxes, receiving messages, and fetching the full message body when your app needs it. It is built for teams that want email workflows they can automate without mailbox complexity.

Key benefits

A focused surface area for dependable automation.

Create inboxes instantly

Provision a new inbox in one request with predictable JSON input and output.

Flexible inbox lifecycle

Use short-lived inboxes for OTPs or reusable inboxes for recurring workflows.

Poll or push

Read messages from the API or receive them through webhooks.

Traceable and safe

Request IDs, idempotency keys, and scoped API keys keep integrations easy to debug.

Public API

Simple, versioned, and JSON-based.

Endpoints

  • POST /v1/inboxes
  • GET /v1/inboxes/:id/messages
  • GET /v1/messages/:id
  • POST /v1/webhooks

Protocol notes

  • Use a bearer API key in the Authorization header.
  • Every response includes an x-request-id for tracing.
  • Write routes support idempotency keys.
  • Access is scope-based, so keys can stay least-privilege.
  • Responses are JSON, and the public surface stays on /v1.

API examples

Short snippets, kept close to the real request shape.

Auth header

Authorization: Bearer pmx_live_...

Create inbox

curl -X POST https://api.postmx.co/v1/inboxes \
  -H "Authorization: Bearer pmx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Signup OTP",
    "lifecycle_mode": "temporary",
    "ttl_minutes": 15
  }'

List inbox messages

curl "https://api.postmx.co/v1/inboxes/inb_123/messages?limit=50" \
  -H "Authorization: Bearer pmx_live_..."

Create webhook

curl -X POST https://api.postmx.co/v1/webhooks \
  -H "Authorization: Bearer pmx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Inbox Webhook",
    "target_url": "https://example.com/postmx/webhooks",
    "inbox_id": "inb_123"
  }'

Plans and limits

Public tier limits only. No pricing shown.

Limit Free Pro
Active inboxes 3 25
Received messages / month 250 10,000
API requests / minute 60 300
API requests / day 2,000 25,000
API requests / week 10,000 100,000
API requests / month 25,000 400,000

Reliability

Small details that matter in production.

Idempotent writes

Prevent duplicate creates with idempotency keys on write routes.

Request IDs

Trace each request across logs and support tickets with a unique request ID.

Per-key limits

Rate limiting is applied at the key level so usage stays predictable.

Signed webhooks

The webhook signing secret is returned once at creation and used to verify deliveries.

Scope examples: inboxes:write, messages:read, webhooks:write.

Developer notes

Representative errors stay explicit and easy to handle.

Expect clear responses such as 401 unauthorized, 403 insufficient_scope, 429 rate_limited, 404 inbox_not_found, 409 idempotency_conflict, and 500/503 transient_failure.

Start building

Create inboxes, receive messages, and wire inbound email workflows in minutes.