Your AI Agent sends the messages.

Email and SMS infrastructure, run by your agent. Describe a workflow, approve it once, and it builds the automation and sends on its own — every step logged, every channel on one bill.

Agent workflows

The jobs that used to take a sprint.

Start with an event or just ask. Approve once — it runs on every channel.

Channels

Email, SMS, and automations.

One wallet, one audience, one set of primitives — more channels soon.

On the roadmap

  • WhatsApp
  • Push
  • Slack
  • Live chat
  • Telegram

Email

Transactional and marketing, one domain.

Receipts and resets next to campaigns — same contacts, same suppression, one bill.

  • Transactional

    Receipts, resets, alerts. Idempotent, tracked per message.

  • Marketing

    Campaigns priced per send. The unsubscribe footer is automatic.

  • Templates

    Design visually or in code — the same document either way.

SMS

Your agent sends the text.

Two-way SMS on the same contacts and the same balance as email.

  • 176 countries

    Toll-free, 10DLC, and Sender IDs, registered in our wizard.

  • Consent enforced

    STOP, quiet hours, and per-handle consent are checked at send.

  • One balance

    A text spends the same sending balance as an email.

Agents

Same actions, whoever is driving.

Dashboard, API, MCP, or Unit. One product underneath.

Chase failed payments — email, then text.

Invoice failedEmailSMS

Built. Waiting for your approval.

Ask UnitDescribe the job in plain words. Unit builds the automation with real product tools and asks before anything sends.Learn more
  • Cursor
  • Claude Code
  • Codex
  • email.send
  • sms.send
  • domains.verify
MCP serverCursor, Claude, and any MCP client get the same actions as the dashboard: send, verify a domain, build a segment.Learn more
Install the skill
npx skills add unitpostcom/skills --skill unitpost
Install the CLI
npm install -g unitpost-cli
Agent Skills and the CLIOne command installs the Unitpost skill into every coding agent on your machine. The CLI runs any operation from a shell.Learn more
  • Node.js
  • Python
  • Ruby
  • PHP
  • Laravel
  • Go
  • Java
  • Rust
  • .NET
  • REST API
SDKs and RESTNine SDKs, REST, and SMTP. The same call shape for an email or a text, with keys scoped to what a service may do.Learn more

Control

Approve once. Watch it run.

  • Nothing sends until you say so

    Every workflow starts with your approval.

  • Every step logged

    Trigger, wait, send — and what came back.

  • Pause or cancel any run

    From the dashboard, the API, or your agent.

Turn on Failed payment?

Email now, SMS after two days unless paid.

ApproveCancel
Run · con_8f2kPause
  • Invoice failedTrigger · 09:41
  • Send emailDelivered · 09:41
  • Wait 2 daysUntil Thursday
  • Send SMSScheduled

Infrastructure

One system underneath.

Delivery, consent, retries, and logs are handled below the API — the same way for email and SMS.

Delivered

DKIM keys rotate without downtime, domain records are re-checked every minute, and bounces and complaints suppress the address before you can send to it again.

Consent enforced

Unsubscribe, STOP, quiet hours, and per-channel consent are checked at send time by the platform, not by your code.

Retried and logged

Webhooks are signed and retried seven times over nineteen hours. Every automation run keeps a step-by-step log you can pause or replay.

60 s
Domain records re-checked
7×
Webhook retries, over 19 h
24 h
Idempotency window
176
Countries for SMS
9
SDKs, plus REST and SMTP

API and SDKs

One call to send.

A template id and variables. Nine SDKs, REST, and SMTP.

Send an emailwelcome
import { Unitpost } from "unitpost";

const unitpost = new Unitpost(process.env.UNITPOST_API_KEY);

await unitpost.email.send({
  from: "you@acme.com",
  to: "mike@example.com",
  template: {
    id: "tmpl_...",
    variables: {
      product_name: "Acme",
      get_started_url: "https://acme.com/start",
    },
  },
});

Brand Kit

On-brand AI, in a few clicks.

Paste your site. Voice, colors, and logos land in Brand Kit.

  • Built for AI generation

    Ask Unit and MCP agents read this when they draft.

  • Import → review → save

    Preview colors and logos. Edit before you save.

Import brandWebsite

Website URL

https://acme.com
Import Brand

Colors

  • #0a0a0aPrimaryAccent
  • #276ef1Accent
  • #f5f5f4Background

Pricing

One flat price, everything included

Every feature on every paid plan. Pay for sends, never contacts. Free starts at 5,000 emails / mo.

Build your plan

Tell us what you send each month. We'll recommend the cheapest plan that covers it.
Emails20k / mo
SMSNone
Rates

Free

For side projects

$0/ mo
5k emails
Start for free
5kemails / mo
200emails / day
10kcontacts
5domains
  • Full API, SMTP relay & SDKs
  • Visual + React code templates
  • Campaigns, segments & tracking
  • Topics & inbound email
  • SoonAutomations
Recommended

Starter

For production apps

$10/ mo
20k emails
Start for free
10domains
3team seats
5webhooks
10API keys
  • Everything in Free, plus:
  • SMS on every paid plan
  • Unlimited contacts
  • No daily sending cap
  • SoonAutomations
  • No Unitpost branding

Growth

For scaling teams

$200/ mo
250k emails
Start for free
100domains
10team seats
25webhooks
50API keys
  • Everything in Starter, plus:
  • Higher domains, seats & webhooks
  • Priority deliverability
  • SoonDedicated IP
  • SoonSub-account management

Enterprise

Sending 1M+ or need custom terms? Let's talk.

Custom ratesCustom limitsDedicated supportAnnual invoicing & ACH

Migration Assistant

Already sending elsewhere? Switch in ~4 minutes.

Paste one read-only API key. Preview first. Nothing writes until you accept.

  • Resend
  • SendGrid
  • Mailgun
  • Postmark
  • Brevo
  • Loops

Unitpost

Start sending for free

$0/ mo

  • 5,000 emails / mo — no credit card
  • Your domain with DKIM, SPF & DMARC
  • REST API, SMTP & official SDKs
  • Visual editor + code templates
  • Open & click tracking + signed webhooks
  • 10,000 contacts · automatic suppression