Idempotency is so under rated, all APIs should support it in my opinion.<p>If you only need this for transactional email, you could use MailPace, we support idempotency out of the box: <a href="https://mailpace.com/features/idempotent-email-api" rel="nofollow">https://mailpace.com/features/idempotent-email-api</a>
Email providers don’t usually provide idempotent API endpoints because they have no way to enforce that the email will be sent exactly once downstream.<p>The best you can do with email is at least once (and you can’t even really do that because of spam), so you should just build that assumption into your app. If 1 out of 100,000 emails gets sent 2x no one is going to care (as long as you include information the user can use to dedupe manually).<p>Maybe adding an idempotent send endpoint reduces that from 1 /100,000 to 1/150,000 or whatever, but is that worth the extra complexity? Is dropping your duplicate email rate from some very small number to some smaller number going to make enough money to pay for the extra dev time, and the extra lifetime maintainability burden? Almost certainly not.