Sending

Send a newsletter
to your whole list

Design the email once, send it from your own code, and see what was opened.

Monthly updatev3Published
Hi{{firstName}}Omar
Read the update
POST /emails/batch
130Sent42Opened9Clicked

Opens are a guide. Some mail apps block images, so the real number is higher.

How it works

Running in three steps.

  1. 01

    Build the email

    Start from a template in the gallery and edit every block visually.

  2. 02

    Publish a version

    The published version freezes, so later edits cannot change what is going out.

  3. 03

    Send it from code

    Post up to a hundred messages a call, naming the template and its values.

What it runs on

The parts doing the work.

Nothing here is a separate product. Each one is a piece of the mailbox you already have.

Templates

A body written once, versioned, and sent many times: from the composer, from your own code, or by an agent.

IntroInvoiceFollow-up
Hi Sarah, good to meet you at
See when mail you sent was opened

Whether a message you sent has been opened, when, how many times and which of its links were followed. On unless you turn it off, and plain about the readings it cannot get.

REST API

A documented HTTP API with issuable, scopable, revocable keys.

/threads?query=invoice
{ "threads": 12 }
Same mailbox, whether a person or a program is holding it.
Typed SDKs

A TypeScript client first, then the rest.

/threads?query=invoice
{ "threads": 12 }
Same mailbox, whether a person or a program is holding it.
Recipient suggestions

The people you already write to, offered as you type.

SR
AK
NM
JD
PL
+1,240
sarahreyes@acme.com
Webhooks

Tell your endpoint when mail arrives, instead of making you poll.

/threads?query=invoice
{ "threads": 12 }
Same mailbox, whether a person or a program is holding it.

Nearby

Other jobs for the same inbox.

Mail from your app

Send receipts, codes and resets from your own code, and hear back when they land.

templateorder-receipt
202msg_9f2c7a14
email.sentmsg_9f2c7a14
email.deliveredmsg_9f2c7a14
email.openedmsg_9f2c7a14
Watch what happens after send

See what happened to every send, and keep dead addresses out of the next one.

Delivered129
Bounced3
Blocked[email protected]Held back
Email inside your product

Send, read and organise mail from your own code with a typed client.

awaitopenemail.emails.send({
})
idmsg_3e91c7
queuedsentdelivered
email.openedemail.clicked

Your inbox,
on your own terms.

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

OpenEmail

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

© 2026 OpenEmail. All rights reserved.