Transactional and
marketing email built for SaaS
Your team builds every email in one editor.
You send transactional by API and marketing by campaign. One platform, one bill.
- EU-hosted
- GDPR & CCPA compliant
- No credit card required
Build every email in one editor
Drag, drop and send, in the editor 40,000+ companies already use.
Run campaigns from the same account
Segment your contacts and send, right next to your product email.
Connect once, then move on
Plug in by REST API, SMTP or SDK. We've run the infrastructure for 12 years.
See how every send did
Track what was delivered, opened and clicked, all in one place.
Keep your data in the EU
Send from EU-hosted infrastructure, compliant with GDPR and CCPA.
40,000+
companies use our email editor
12,000+
organizations run campaigns with us
12 years
running email infrastructure
Make all your emails
accessible to everyone
Your devs connect sending once. After that, your team owns the emails.
Dev integrate.
use Illuminate\Support\Facades\Mail;
Mail::lettr()
->to($user->email)
->sendTemplate('welcome', substitutionData: [
'first_name' => $user->first_name,
]);import { Lettr } from 'lettr';
const client = new Lettr(process.env.LETTR_API_KEY!);
await client.emails.send({
from: 'hello@yourdomain.com',
to: [user.email],
subject: 'Welcome to Acme',
templateId: 'welcome',
substitutionData: { first_name: user.firstName },
});import os
import lettr
client = lettr.Lettr(os.environ["LETTR_API_KEY"])
client.emails.send(
from_email="hello@yourdomain.com",
to=[user.email],
subject="Welcome to Acme",
template_id="welcome",
substitution_data={"first_name": user.first_name},
)use Lettr\Lettr;
$lettr = Lettr::client(getenv('LETTR_API_KEY'));
$lettr->emails()->send(
$lettr->emails()->create()
->from('hello@yourdomain.com', 'Acme')
->to([$user->email])
->subject('Welcome to Acme')
->templateId('welcome')
->substitutionData(['first_name' => $user->firstName])
);curl -X POST https://app.lettr.com/api/emails \
-H "Authorization: Bearer $LETTR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "hello@yourdomain.com",
"to": ["clara@example.com"],
"template_slug": "welcome",
"substitution_data": { "first_name": "Clara" }
}'Hook it up once,
then get back to your product.
-
Send with one API call, or point your existing app at our SMTP. Either way, you're live in minutes.
-
Skip the hand-rolled HTTP calls. Drop in the SDK for your language and send in a few lines.
-
Know the moment an email is delivered, opened or clicked, and react in your app. Every call is signed, so you can trust it.
Teams create.
{{store_name}}
One quick step, then you're all set.
Your trial is live!
Hi {{first_name}}, thanks for signing up. You have 14 days to explore everything.
Change copy, swap images, hit send. No developer needed.
-
Update a header or footer once and every email follows. No more hunting through templates.
-
One template, every language. Fix a typo once, not in five copies.
-
Names, plans, dates: drop them in and each email fills itself in.
One platform.
Separate sending lanes.
A big campaign never holds up a password reset.
Transactional.
The emails your app triggers, sent the moment something happens.
-
Set up a welcome series once and it goes out as people sign up.
-
Resets and login alerts jump the queue, even mid-campaign.
-
Remind people before a trial ends and nudge them to upgrade.
Marketing.
Campaigns for your whole audience, sent from the same account.
-
Group contacts into lists and segments so every send hits the right people.
-
Send as many campaigns as you want. No caps.
-
See what was delivered, opened and clicked across every email, in one place.
Brand all your emails, with a click of a button.
Set your brand once. Every email, marketing or transactional, picks it up.
Version history
Every edit is saved.
Roll back in one click.
See who changed what and when. Restore any earlier version if a change didn't work out.
Version history
12 versions
Built for Laravel.
Compatible with most.
Laravel gets a first-party package. Everything else works with our SDKs, REST API or SMTP.
Simple, usage-based pricing.
Start free. Transactional is billed per email, Marketing per contact.
Transactional.
Per emailPay per email3,000 emails every month, free.
Scale up from $15/mo.
- Email API & SMTP
- No daily limit on paid plans
- Real-time webhooks
Marketing.
Per contactPay per contactUp to 500 contacts, free.
Scale up from $10/mo.
- Unlimited campaigns
- Drag-and-drop editor
- Lists & segments
Get your
domain ready
to send.
Add three DNS records. Lettr checks them.
Add your domainsprout.app
Ready to send