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.