Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Quickstart: curl

curl https://api.postrun.dev/emails \ -H "Authorization: Bearer $POSTRUN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "Acme <hello@yourdomain.com>", "to": "someone@example.com", "subject": "Your receipt", "html": "<p>Thanks for your order.</p>" }'
{ "id": "1042", "status": "queued" }

Then watch it arrive in the dashboard, where every message carries its full delivery timeline.

Every endpoint works this way: plain JSON over HTTPS, one header of authentication, and the reference is complete.

Retry safely

curl https://api.postrun.dev/emails \ -H "Authorization: Bearer $POSTRUN_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: order-4821" \ -d '{ "from": "Acme <hello@yourdomain.com>", "to": "someone@example.com", "subject": "Your receipt", "html": "<p>Thanks.</p>" }'

Read the log

curl "https://api.postrun.dev/emails?status=bounced&limit=25" \ -H "Authorization: Bearer $POSTRUN_API_KEY"

Reading needs a full-access key; a sending key answers 403 key_not_permitted.