# Email templates

13 transactional emails you can copy: the subject line, a table based HTML body that renders in Outlook, the plain-text alternative, every placeholder documented, and the send call in TypeScript, Python, and curl. Each page is also available as markdown at /templates/<slug>.md, with the full HTML in a fenced block.

Send with POST https://emails.sh/v1/emails, Authorization: Bearer esh_..., body {from, to, subject, html, text}. Before your domain is verified, send from onboarding@emails.sh.

## Authentication

- [Email verification](https://emails.sh/templates/email-verification.md): Prove the address is real before the account is worth anything. Sent immediately after the signup form is submitted, before the account can do anything that matters. One send per attempt, with a fresh token, and a resend that invalidates the previous one.
- [Password reset](https://emails.sh/templates/password-reset.md): One link, short lived, with enough context to spot a reset nobody asked for. Sent when somebody submits the forgot-password form for an address you have on file. Send the same response whether or not the account exists, so the form cannot be used to enumerate users.
- [Magic link sign-in](https://emails.sh/templates/magic-link.md): A sign-in link that says which device asked for it. Sent when somebody submits their address on the sign-in form. Rate limit per address and per IP, because this endpoint sends mail to anyone who types an address into it.

## Onboarding

- [Welcome](https://emails.sh/templates/welcome.md): One next step, not a tour of the product. Sent once, after the address is verified and the account exists. Sending it before verification means welcoming an address that may never confirm.
- [Team invite](https://emails.sh/templates/team-invite.md): Who invited them, to what, as what, and for how long the link lasts. Sent when a member with permission to invite adds an address. If the address already has an account, the same email still applies; the accept link skips signup.

## Billing

- [Receipt](https://emails.sh/templates/receipt.md): What was charged, to what card, with a line the reader can expense. Sent on a successful charge, driven by your payment provider webhook rather than by the checkout response, so a customer who closed the tab still gets it.
- [Invoice](https://emails.sh/templates/invoice.md): An amount, a due date, a way to pay, and the PDF attached. Sent when the invoice is issued, and again as a reminder on your own schedule. The reminder is the same template with a different subject line and a due date that has moved into the past.
- [Trial ending](https://emails.sh/templates/trial-ending.md): What happens on the date, what it costs, and how to stop it. Sent three days before the trial converts, on a schedule you run rather than in response to a user action. Send at most twice, and never after they have already subscribed.
- [Subscription receipt](https://emails.sh/templates/subscription-receipt.md): The renewal charge, the period it covers, and the next one. Sent on each successful renewal charge, from the payment provider webhook. A failed renewal is a different email, and it should not look like this one.

## Notifications

- [Comment notification](https://emails.sh/templates/comment-notification.md): The comment itself, in the email, with a way to turn these off. Sent when somebody comments on or mentions a person who has notifications on. Batch bursts: several comments in a minute should be one email, not five.
- [Weekly digest](https://emails.sh/templates/weekly-digest.md): One email a week, one number at the top, and a real unsubscribe. Sent on a schedule, to people who are opted in and have something to show. An empty week is a week you skip, not a week you send an empty digest.

## Commerce

- [Order shipped](https://emails.sh/templates/order-shipped.md): The tracking number, the carrier, and when it should arrive. Sent when the carrier accepts the parcel and a tracking number exists. Not when the label is printed, which is often days earlier and makes the tracking page look broken.

## Account

- [Account deleted](https://emails.sh/templates/account-deleted.md): Confirmation that it is gone, what is left, and for how long. Sent once, when the deletion has actually run rather than when it was requested. Send it to the address on the account even though that address no longer signs in anywhere.

Docs: https://emails.sh/docs.md
Quickstart: https://emails.sh/docs/quickstart