curl --request POST \
--url https://api.helohq.com/send/broadcast \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": {
"email": "<string>",
"name": "<string>"
},
"template": {
"subject": "<string>",
"html": "<string>",
"text": "<string>",
"inlineStyles": true,
"data": {}
},
"messages": [
{
"to": [
{
"email": "<string>",
"name": "<string>"
}
],
"cc": [
{
"email": "<string>",
"name": "<string>"
}
],
"bcc": [
{
"email": "<string>",
"name": "<string>"
}
],
"tags": [
"<string>"
],
"headers": {},
"metadata": {},
"data": {}
}
],
"replyTo": [
{
"email": "<string>",
"name": "<string>"
}
],
"tracking": {
"opens": true,
"links": true
},
"attachments": [
{
"content": "aSDinaTvuI8gbWludGxpZnk=",
"fileName": "<string>",
"contentId": "<string>",
"contentType": "<string>"
}
],
"tags": [
"<string>"
],
"headers": {},
"metadata": {}
}
'using HeloEmail.Sdk;
using HeloEmail.Sdk.Sending;
var sendBroadcast = await helo.Sending.SendBroadcast(new SendBroadcastRequest
{
From = new MailAddress { Email = "test@example.com", Name = "test-name" },
Template = new SendBroadcastRequestTemplate
{
Subject = "test-subject",
Html = "test-html",
Text = "test-text",
InlineStyles = true,
},
Tags = ["test-tag"],
Messages = [
new SendBroadcastRequestMessage
{
To = [new MailAddress { Email = "test@example.com", Name = "test-name" }],
Tags = ["test-tag"],
},
],
}, channelId: "550e8400-e29b-41d4-a716-446655440000", idempotencyKey: "test-idempotencyKey");Helo.configure do |config|
config.api_key = ENV.fetch("HELO_API_KEY")
end
send_broadcast_request = Helo::SendBroadcastRequest.new(
from: Helo::MailAddress.new(email: "test-email", name: "test-name"),
reply_to: [Helo::MailAddress.new(email: "test-email", name: "test-name")],
template: {},
tracking: {},
attachments: [Helo::Attachment.new(content: "test-content", content_id: "test-contentId", content_type: "test-contentType", file_name: "test-fileName", disposition: Helo::AttachmentDisposition::ATTACHMENT)],
tags: ["example1", "example2"],
headers: {},
metadata: {},
messages: []
)
Helo::Sending.send_broadcast(send_broadcast_request, channel_id: "550e8400-e29b-41d4-a716-446655440000", idempotency_key: "example")import sdk_helo_email as helo
client = helo.Helo() # reads HELO_API_KEY from the environment
send_broadcast = client.sending.send_broadcast(
from_={"email": "test@example.com", "name": "test-name"},
template={
"subject": "test-subject",
"html": "test-html",
"text": "test-text",
"inlineStyles": True,
},
messages=[
{
"to": [{"email": "test@example.com", "name": "test-name"}],
"tags": ["test-tag"],
},
],
reply_to=[{"email": "test@example.com", "name": "test-name"}],
tracking={"opens": True, "links": True},
attachments=[
{
"content": "SGVsbG8gd29ybGQ=",
"contentId": "test-contentId",
"contentType": "test-contentType",
"fileName": "test-fileName",
"disposition": helo.AttachmentDisposition.ATTACHMENT,
},
],
tags=["test-tag"],
channel_id="550e8400-e29b-41d4-a716-446655440000",
idempotency_key="test-idempotency_key",
)package main
import (
"context"
"log"
"os"
"github.com/helo-email/helo-sdk-go"
)
func main() {
client := helo.NewHelo(os.Getenv("HELO_API_KEY"))
ctx := context.Background()
params := &helo.SendBroadcastRequest{
From: helo.MailAddress{Email: "test@example.com", Name: "test-name"},
Template: helo.SendBroadcastRequestTemplate{Subject: "test-subject", Html: "test-html", Text: "test-text", InlineStyles: true},
Tags: []string{"example1", "example2"},
Messages: []helo.SendBroadcastRequestMessage{{To: []helo.MailAddress{{Email: "test@example.com", Name: "test-name"}}, Tags: []string{"example1", "example2"}}},
}
opts := &helo.SendingSendBroadcastOptions{
ChannelID: "550e8400-e29b-41d4-a716-446655440000",
IdempotencyKey: "example",
}
result, err := client.Sending.SendBroadcast(ctx, params, opts)
if err != nil {
log.Fatal(err)
}
_ = result
}import Helo from "@helo-email/sdk";
const apiKey = process.env.HELO_API_KEY;
const helo = new Helo(apiKey);
const result = await helo.sending.sendBroadcast(
{
from: { email: "test@example.com", name: "test-name" },
replyTo: [{ email: "test@example.com", name: "test-name" }],
template: {
subject: "test-subject",
html: "test-html",
text: "test-text",
inlineStyles: true,
data: {},
},
tracking: { opens: true, links: true },
attachments: [
{
content: "test-content",
contentId: "test-contentId",
contentType: "test-contentType",
fileName: "test-fileName",
disposition: Helo.AttachmentDisposition.ATTACHMENT,
},
],
tags: ["example1", "example2"],
headers: {},
metadata: {},
messages: [
{
to: [{ email: "test@example.com", name: "test-name" }],
cc: [{ email: "test@example.com", name: "test-name" }],
bcc: [{ email: "test@example.com", name: "test-name" }],
tags: ["example1", "example2"],
headers: {},
metadata: {},
data: {},
},
],
},
{
channelId: "550e8400-e29b-41d4-a716-446655440000",
idempotencyKey: "example",
},
);{
"status": "<string>",
"broadcastId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"type": "<string>",
"title": "<string>",
"instance": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"requestId": "<string>",
"errors": {}
}{
"type": "<string>",
"title": "<string>",
"instance": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"requestId": "<string>",
"errors": {}
}{
"type": "<string>",
"title": "<string>",
"instance": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"requestId": "<string>",
"errors": {}
}Post sendbroadcast
curl --request POST \
--url https://api.helohq.com/send/broadcast \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": {
"email": "<string>",
"name": "<string>"
},
"template": {
"subject": "<string>",
"html": "<string>",
"text": "<string>",
"inlineStyles": true,
"data": {}
},
"messages": [
{
"to": [
{
"email": "<string>",
"name": "<string>"
}
],
"cc": [
{
"email": "<string>",
"name": "<string>"
}
],
"bcc": [
{
"email": "<string>",
"name": "<string>"
}
],
"tags": [
"<string>"
],
"headers": {},
"metadata": {},
"data": {}
}
],
"replyTo": [
{
"email": "<string>",
"name": "<string>"
}
],
"tracking": {
"opens": true,
"links": true
},
"attachments": [
{
"content": "aSDinaTvuI8gbWludGxpZnk=",
"fileName": "<string>",
"contentId": "<string>",
"contentType": "<string>"
}
],
"tags": [
"<string>"
],
"headers": {},
"metadata": {}
}
'using HeloEmail.Sdk;
using HeloEmail.Sdk.Sending;
var sendBroadcast = await helo.Sending.SendBroadcast(new SendBroadcastRequest
{
From = new MailAddress { Email = "test@example.com", Name = "test-name" },
Template = new SendBroadcastRequestTemplate
{
Subject = "test-subject",
Html = "test-html",
Text = "test-text",
InlineStyles = true,
},
Tags = ["test-tag"],
Messages = [
new SendBroadcastRequestMessage
{
To = [new MailAddress { Email = "test@example.com", Name = "test-name" }],
Tags = ["test-tag"],
},
],
}, channelId: "550e8400-e29b-41d4-a716-446655440000", idempotencyKey: "test-idempotencyKey");Helo.configure do |config|
config.api_key = ENV.fetch("HELO_API_KEY")
end
send_broadcast_request = Helo::SendBroadcastRequest.new(
from: Helo::MailAddress.new(email: "test-email", name: "test-name"),
reply_to: [Helo::MailAddress.new(email: "test-email", name: "test-name")],
template: {},
tracking: {},
attachments: [Helo::Attachment.new(content: "test-content", content_id: "test-contentId", content_type: "test-contentType", file_name: "test-fileName", disposition: Helo::AttachmentDisposition::ATTACHMENT)],
tags: ["example1", "example2"],
headers: {},
metadata: {},
messages: []
)
Helo::Sending.send_broadcast(send_broadcast_request, channel_id: "550e8400-e29b-41d4-a716-446655440000", idempotency_key: "example")import sdk_helo_email as helo
client = helo.Helo() # reads HELO_API_KEY from the environment
send_broadcast = client.sending.send_broadcast(
from_={"email": "test@example.com", "name": "test-name"},
template={
"subject": "test-subject",
"html": "test-html",
"text": "test-text",
"inlineStyles": True,
},
messages=[
{
"to": [{"email": "test@example.com", "name": "test-name"}],
"tags": ["test-tag"],
},
],
reply_to=[{"email": "test@example.com", "name": "test-name"}],
tracking={"opens": True, "links": True},
attachments=[
{
"content": "SGVsbG8gd29ybGQ=",
"contentId": "test-contentId",
"contentType": "test-contentType",
"fileName": "test-fileName",
"disposition": helo.AttachmentDisposition.ATTACHMENT,
},
],
tags=["test-tag"],
channel_id="550e8400-e29b-41d4-a716-446655440000",
idempotency_key="test-idempotency_key",
)package main
import (
"context"
"log"
"os"
"github.com/helo-email/helo-sdk-go"
)
func main() {
client := helo.NewHelo(os.Getenv("HELO_API_KEY"))
ctx := context.Background()
params := &helo.SendBroadcastRequest{
From: helo.MailAddress{Email: "test@example.com", Name: "test-name"},
Template: helo.SendBroadcastRequestTemplate{Subject: "test-subject", Html: "test-html", Text: "test-text", InlineStyles: true},
Tags: []string{"example1", "example2"},
Messages: []helo.SendBroadcastRequestMessage{{To: []helo.MailAddress{{Email: "test@example.com", Name: "test-name"}}, Tags: []string{"example1", "example2"}}},
}
opts := &helo.SendingSendBroadcastOptions{
ChannelID: "550e8400-e29b-41d4-a716-446655440000",
IdempotencyKey: "example",
}
result, err := client.Sending.SendBroadcast(ctx, params, opts)
if err != nil {
log.Fatal(err)
}
_ = result
}import Helo from "@helo-email/sdk";
const apiKey = process.env.HELO_API_KEY;
const helo = new Helo(apiKey);
const result = await helo.sending.sendBroadcast(
{
from: { email: "test@example.com", name: "test-name" },
replyTo: [{ email: "test@example.com", name: "test-name" }],
template: {
subject: "test-subject",
html: "test-html",
text: "test-text",
inlineStyles: true,
data: {},
},
tracking: { opens: true, links: true },
attachments: [
{
content: "test-content",
contentId: "test-contentId",
contentType: "test-contentType",
fileName: "test-fileName",
disposition: Helo.AttachmentDisposition.ATTACHMENT,
},
],
tags: ["example1", "example2"],
headers: {},
metadata: {},
messages: [
{
to: [{ email: "test@example.com", name: "test-name" }],
cc: [{ email: "test@example.com", name: "test-name" }],
bcc: [{ email: "test@example.com", name: "test-name" }],
tags: ["example1", "example2"],
headers: {},
metadata: {},
data: {},
},
],
},
{
channelId: "550e8400-e29b-41d4-a716-446655440000",
idempotencyKey: "example",
},
);{
"status": "<string>",
"broadcastId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"type": "<string>",
"title": "<string>",
"instance": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"requestId": "<string>",
"errors": {}
}{
"type": "<string>",
"title": "<string>",
"instance": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"requestId": "<string>",
"errors": {}
}{
"type": "<string>",
"title": "<string>",
"instance": "<string>",
"status": 123,
"code": "<string>",
"detail": "<string>",
"requestId": "<string>",
"errors": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Used to specify a channel ID for sending when using an account-level API credential.
A unique identifier used to prevent duplicate messages being sent when retrying failed requests.
256Body
Show child attributes
Show child attributes
Email template applied to every message in the broadcast. At least one of html or text is required.
Show child attributes
Show child attributes
One entry per outbound email. At least one message is required.
Show child attributes
Show child attributes
Reply-to addresses.
Show child attributes
Show child attributes
Override channel-level open and link tracking settings.
Show child attributes
Show child attributes
File attachments included with every message in the broadcast. Executable and potentially harmful file types are blocked.
Show child attributes
Show child attributes
Up to 5 tags for filtering and analytics. Allowed characters are letters, numbers, hyphens, and underscores. Max 100 characters per tag.
Custom email headers applied to every message. Total size of all headers combined must not exceed 5,000 characters.
Show child attributes
Show child attributes
Custom key/value metadata stored with the broadcast. Max 10 fields; keys max 50 characters, values max 100 characters.
Show child attributes
Show child attributes
Response
OK