Email marketing, made simple.
Newsletters and campaigns on the same rails as transactional. Pay for sends, not contacts.
Visual builder
Beautiful emails, no code required.
Design it. Recipients get that.
Priced per send
Never per contact.
Markdown or blocks
Write it, or drag it.
Welcome, {{first_name}}
Thanks for joining. Here's what's new this week.
Configurable
Everything you need in one place.
Personalization, Markdown, and scheduling — built right in.
Variables
{{first_name}} and custom fields, with fallbacks.
Markdown
Headings, lists, links. Write it like a doc.
Schedule
“In 1 hour.” Cancel anytime before send.
Fallbacks keep sends clean when a value is missing.
Campaigns API
Send a campaign from your app.
Same SDK as transactional. Create, validate, send — or schedule it.
Send or schedule
Now, or Friday at 10.
Validate first
Missing merge tags, caught before send.
Pause & resume
Stop a send without losing the rest.
import { Unitpost } from "unitpost";
const unitpost = new Unitpost(process.env.UNITPOST_API_KEY);
const { data: campaign } = await unitpost.email.campaigns.create({
name: "March newsletter",
subject: "What's new this month",
from: "news@acme.com",
template_id: "tmpl_1a2b3c",
segment_id: "seg_9x8y7z",
});
await unitpost.email.campaigns.send(campaign.id);Contacts
Bring your list and grow it.
CSV, API, or by hand.
Unlimited contacts
Pay for sends, not list size.
ada@example.com
Ada Lovelace
jaden@example.com
Jaden Smith
alan@example.com
Alan Turing
grace@example.com
Grace Hopper
mike@example.com
Mike Vasilev
Unsubscribe handling
Opt-outs, handled for you.
We add the link, host the page, skip opted-out contacts.
Opt-outs
Hosted preference center, out of the box.
Suppression
Bounces and complaints. Automatic.
You have unsubscribed
ada@example.com will no longer receive updates
Metrics
Analyze and track performance.
Delivered, opened, clicked, opted-out. Per broadcast.
Deliverability
Engagement
Opt-out
Versatile
One platform for all your email needs
However you engage your audience, Unitpost can handle it.
Newsletters
To a list or a segment. Opt-outs handled.
Product updates
Ship-day email. On-brand template.
Onboarding
Welcome series. Same deliverability.
Announcements
One send. Per-message analytics.
Guides
Helpful content, on a schedule.
Promos
Time-boxed. Targeted segment.
Events
Invite with tracked links.
Feedback
Ask a segment. See who engaged.
Questions
Common questions
Can I send marketing email and transactional email from the same domain?
Yes — one verified domain, one sending gate, one bill. A template's category decides what compliance adds: marketing sends get the workspace unsubscribe footer plus List-Unsubscribe headers, while transactional sends get neither. Suppression is category-aware, so a marketing opt-out never blocks a password reset, but hard bounces and spam complaints suppress an address for both.
How do I send an email campaign from the API?
POST /api/v1/email/campaigns with a name, template_id, segment_id, and a verified from address (scope campaigns:write) creates a draft. Call GET /api/v1/email/campaigns/{id}/validate for the pre-send report, then POST /api/v1/email/campaigns/{id}/send (scope campaigns:send). Pass scheduled_at to schedule instead of sending now; reschedule and cancel are separate endpoints. Only published templates are sendable.
Do I pay per contact or per email sent?
Per email sent. Every paid plan has no contact cap, so storing a bigger list never raises your bill — the meter follows send volume. The free plan is the one exception: it stores up to 10,000 contacts. This is the opposite of the per-contact pricing most marketing tools use, where an unengaged list costs you money every month.
Can recipients opt out of one kind of email without leaving my list?
Yes, that's what topics are for. A topic is a named subscription category like Product updates or Promotions. Scope a campaign to a topic_id and anyone who opted out of it is skipped at send, independent of segment membership and the global unsubscribe. Recipients manage the toggles themselves on the hosted preference page — no login required.
Is the unsubscribe link added automatically?
Yes, and it can't be switched off for marketing mail. Every send from a marketing-category template gets your workspace footer injected at render, plus List-Unsubscribe and List-Unsubscribe-Post headers for RFC 8058 one-click opt-out. There is no disable flag. You customize the footer once per workspace and the change propagates to every marketing send without editing templates.
What happens if some contacts are missing a personalization value?
The campaign's validate report catches it before anything sends. It resolves every live segment member and lists who is missing a required variable, with two ways out: exclude those contacts, or set a campaign-level fallback that backfills only the blanks and never overwrites a real per-contact value. A single transactional send fails with a 422 rather than delivering a literal merge tag.
Run your first campaign this week
Campaigns, segments, tracking. 5,000 emails a month free. No credit card.