Skip to main content
Broadcasts let you send a single email campaign to a large list of recipients — think newsletters, product announcements, or promotional emails. Rather than sending individual messages one at a time, you submit the entire campaign in a single API call, and Helo handles delivery at scale.

When to use broadcasts vs. individual messages

Use broadcasts when you have a list of recipients who all receive a variation of the same template-driven email. Use the standard send endpoint when you need per-message control, transactional timing, or real-time responses.

The API

Submit a broadcast

Submits a broadcast for processing. Helo validates the request, stores the content, and begins sending as soon as your channel is available. Example request
command-line
Response
status is one of: For additional details about the API, see our API reference.

Broadcast lifecycle

One broadcast per channel at a time. If your channel already has a broadcast in Processing, additional broadcasts queue in Accepted and start automatically when the current one finishes. Broadcasts are processed in the order they were submitted.

Delivery rate

Helo processes broadcasts at an appropriate rate in order to maintain good deliverability. The more messages a given broadcast has, the more time it will take to complete. As a rough guide: These are processing times, not inbox delivery times. Actual inbox delivery depends on recipient mail servers.

Failures and suppressions

After a broadcast completes, two categories of undelivered recipients are available: Failures — permanent errors that prevented delivery, such as invalid addresses or domain issues. Retrieve them at GET /broadcasts/{id}/failures. Each failure includes the recipient list, message index, error code, and a description. Suppressions — recipients skipped because they appear on your suppression list (previous bounces, unsubscribes, or manual suppressions). Retrieve them at GET /broadcasts/{id}/suppressions. Transient errors (temporary network or service issues) are retried automatically and do not appear in the failures list unless they ultimately cannot be delivered.

Validation errors

If the API returns "status": "failed", the response includes an errorCode. See API overview for specific error codes.