Skip to main content
The POST /v1/inboxes/{id}/send endpoint accepts an optional Idempotency-Key header. If you retry with the same key, we return the original response without sending a duplicate email. The header is optional: without it, OpenMail generates a key and sends once. Pass your own key whenever your code retries on timeouts — a retry without one is a second email.

Usage

Rules

  • Optional, but pass one if you retry - Without a key, the API cannot tell a retry from a new send.
  • Unique per send - Generate a new UUID for each distinct send (e.g. uuidgen, crypto.randomUUID()).
  • Scoped to account - Keys are per-account, not global.
  • 24-hour expiry - Keys expire after 24 hours. Reusing an expired key creates a new send.
  • Same body - Retries must use the same request body. Changing the body with the same key returns an error.

Webhook idempotency

For webhooks, use event_id to deduplicate. We may deliver the same event more than once; your handler should be idempotent.