Quickstart
Send your first email with one request and check what happened to it.
You need an active account, a verified sending domain and an API key from the dashboard. Every request goes to https://api.letr.dev with the key as a Bearer token.
No domain verified yet? Send to [email protected] from [email protected] with an API key that may send (sending_access or full_access): the email never leaves letr.dev, its events are real, and it does not count toward usage. Test recipients lists every outcome.
Send an email
The smallest valid request names a sender, a recipient, a subject and a body:
curl https://api.letr.dev/v1/emails \
-H "Authorization: Bearer $LETR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Acme <[email protected]>",
"to": "[email protected]",
"subject": "Hello from Acme",
"text": "It works."
}'
letr.dev stores the email and answers 202 Accepted with its id. Delivery happens in the background.
{ "id": "em_gk3lx0aqw2rz9vb7nc1ep4ty", "status": "queued" }
The from-address must use a verified domain of your account, otherwise the answer is 422 domain_not_verified. Errors lists every code.
Check the status
curl https://api.letr.dev/v1/emails/em_gk3lx0aqw2rz9vb7nc1ep4ty \
-H "Authorization: Bearer $LETR_API_KEY"
The answer carries the current status (scheduled, canceled, queued, sent, delivered, deferred, bounced, complained or failed) and every event with its type, recipient, SMTP detail and time. Instead of asking, let letr.dev tell you: a webhook receives each event as it happens.
Each arrow without a label is the event of the same name, for example email.sent. The status never moves back to an earlier stage, but it can skip one. A final status (delivered, bounced or failed) can still change to another final status or to complained: for one recipient through a late bounce report, for several recipients through the event letr.dev processed last.
Next
- Sending email: every field, display names, headers and retries without duplicates.
- Usage limits and safeguards: overage and your monthly ceiling, the daily limit and when an account pauses.
- API reference: every endpoint with its schemas.