Broadcast

Email all your users
with the same API

Contacts, segments, topics, and versioned templates. Send now or later, with an unsubscribe link on every message.

Start sending free

Free plan available. No credit card required.

How it works

Five steps from contact list to delivery events

01

Add contacts

Create contacts through the API and store custom properties on them.

02

Choose who receives it

Add contacts to a segment, and pick a topic to skip contacts who unsubscribed from it.

03

Publish a template version

Write the content once, with the unsubscribe link, and publish the version.

04

Send now or later

Create the broadcast and send it now, or schedule it for later.

05

Follow delivery

Read the broadcast status, list its recipients, and receive email events on your webhooks.

Code example

A broadcast email API in a few calls

Add a contact, target a segment and a topic, and schedule the send with the TypeScript SDK.

send-broadcast.tstypescript
import { Nuntly } from '@nuntly/sdk';
const nuntly = new Nuntly({ apiKey: process.env.NUNTLY_API_KEY });
// Add a user to your contacts and to a segment
const segmentId = 'seg_01kabp7r2mfq8w3n5tdx6hyc4e';
const contact = await nuntly.contacts.create({ email: 'ada@example.com' });
await nuntly.contacts.segments.addContactSegmentMembership(contact.id, segmentId);
// Send the published template to the segment, skipping topic opt-outs
const broadcast = await nuntly.broadcasts.create({
from: 'updates@yourapp.com',
templateId: 'tpl_01kabn9v5kd2g7hq0rz3wme8tb',
segmentId,
topicId: 'tpc_01kabpa1xc6t9ys4nfj2qd7mkv',
});
// Schedule it one hour from now
await nuntly.broadcasts.send.send(broadcast.id, {
scheduledAt: new Date(Date.now() + 60 * 60 * 1000).toISOString(),
});

Ready to email your users?

Verify your domain and send your first broadcast.

Get started free
Features

From contacts to delivery events

Contacts, segments, topics, templates, and broadcasts are REST resources.

Contacts and properties

Store the email addresses of your users with custom properties such as a plan or a signup source. Create, update, and delete them through the API.

Segments

Named lists of contacts that you maintain yourself. Target a broadcast to one segment, or leave it out to reach every contact.

Topics

Every contact is subscribed to every topic by default. Record that a contact left one topic, such as product updates, and the contact keeps receiving the others.

Versioned templates

A template holds versions of your content. Publish a version to make it the active one. A broadcast freezes its version once it is queued.

Personalization

Use contact properties, which change per recipient, and declared variables, which take one value per broadcast. A missing variable value blocks the send.

Send now or later

Send a broadcast immediately, or schedule it between 5 minutes and 30 days ahead. Edit a scheduled broadcast or return it to draft until it fires.

One-click unsubscribe

Every message carries an unsubscribe link and the RFC 8058 one-click unsubscribe headers. The link stops every later broadcast to that address. Broadcasts also skip addresses on your suppression list.

Recipients and events

List the recipients of a broadcast with the outcome of each send. Delivery, bounce, and complaint events carry the broadcastId on your existing webhooks.

FAQ

Frequently asked questions

Common questions about this topic.

Explore more

Get started

Ship emails,
Not infrastructure

Trusted by Echo Analytics, DiliTrust, Ogury, and 100+ developer teams.

Free plan available. No credit card required.