Email Blasts
Send bulk emails to everyone on your waitlist.
Overview
Email blasts let you send a message to every person on your waitlist at once. Use them for product updates, launch announcements, or to re-engage your audience.
Send a Blast
API: POST /waitlists/{waitlist_id}/blasts
{
"subject": "We're launching next week!",
"html_body": "<h1>Big news!</h1><p>We're launching next Tuesday. Stay tuned.</p>",
"text_body": "Big news! We're launching next Tuesday. Stay tuned."
}
You must provide at least one of html_body or text_body.
Response:
{
"blast_id": "e5f6a7b8",
"recipient_count": 1247,
"failed_count": 3,
"status": "sent"
}
How It Works
- The system paginates through all signups on the waitlist, collecting up to 50,000 non-opted-out recipients
- Opted-out signups are skipped — anyone with
email_opt_out: true(i.e., anyone who clicked an unsubscribe link) is automatically excluded from the recipient list - Emails are sent in batches of 100 per request via the Resend batch API. If a batch fails, the system falls back to sending each email in that batch individually so that a single failure doesn’t block the entire blast
- Each recipient gets a personalized unsubscribe link in the email footer and
List-Unsubscribeheaders (RFC 8058) for one-click unsubscribe support in email clients - A blast record is saved in the database with success and failure counts
- Processing has a 60-second timeout, so very large lists may take the full duration to process
Blast Records
Each blast creates a tracking record stored in the database. The blast_id is a UUID (e.g., e5f6a7b8-c9d0-1234-abcd-ef5678901234).
Each record tracks:
| Field | Description |
|---|---|
blast_id |
Unique identifier (UUID, e.g., e5f6a7b8-c9d0-1234-abcd-ef5678901234) |
status |
Always "sent" — blasts are processed synchronously during the API request |
subject |
The email subject line |
recipient_count |
Number of emails successfully sent |
failed_count |
Number of emails that failed to send |
created_at |
Timestamp when the blast was created |
Variable Substitution
Unlike other email templates, blast emails do not support template variables (such as or). The email body is sent as-is to all recipients. If you need personalized content, use Email Templates instead.
Sender Address
The system determines which sender address to use. Emails are sent from one of:
- Your verified custom domain —
noreply@your-verified-domain.com(if you have one set up via Custom Domains) - The default sender:
noreply@makeemwait.com
The system checks for a verified custom domain first and falls back to the default sender if none is found.
View Blast History
API: GET /waitlists/{waitlist_id}/blasts
Response:
{
"blasts": [
{
"blast_id": "e5f6a7b8",
"subject": "We're launching next week!",
"sent_at": "2025-03-15T10:30:00.000Z",
"recipient_count": 1247,
"failed_count": 3,
"status": "sent"
}
]
}
Blasts are sorted by creation date, newest first.
Best Practices
- Test first — create a test waitlist with your own email and send a blast to it before sending to your full list
- Use a custom domain — emails from your own domain are less likely to end up in spam
- Include both HTML and text — some email clients prefer plain text
- Keep it short — blast emails with a clear, single call-to-action perform best
Audience Filtering
You can target specific segments of your waitlist using the optional audience field in the blast request:
| Audience | Who Receives It |
|---|---|
"all" (default) |
All signups, regardless of verification status |
"verified" |
Only signups that have verified their email |
"unverified" |
Only signups that have not verified their email |
"referred" |
Only signups that were referred by someone |
"not_referred" |
Only signups that were not referred |
{
"subject": "Exclusive early access!",
"html_body": "<p>You're in! Here's your early access link...</p>",
"audience": "verified"
}
"all"). Use the "verified" audience filter to restrict blasts to confirmed email addresses only.
Opted-out signups (those who clicked an unsubscribe link) are always excluded, regardless of the audience filter.
Related
- Email Templates — reusable templates with variable substitution for automated emails
- Custom Domains — send blasts from your own domain for better deliverability
- Managing Signups — view signups and manage opt-outs