オーディエンスに送信
1 つ以上のオーディエンス内の全員に 1 通のメッセージを、一人ずつ別のコピーとして、各連絡先に合わせてパーソナライズして送ります。各コピーの受信者はちょうど一人で cc も bcc もないため、他に誰に送られたかは誰にも見えず、各コピーは独自の `msg_` ID、イベント、トラッキング、Webhook を持つ普通のメールです。呼び出しはすぐに `202` を返し、送信はバックグラウンドで続くので、`GET /broadcasts/{id}` で追跡してください。
実際の呼び出しを、ご自身のキーで自分のワークスペースに対して実行します。
POST /broadcasts
1 つ以上のオーディエンス内の全員に 1 通のメッセージを、一人ずつ別のコピーとして、各連絡先に合わせてパーソナライズして送ります。各コピーの受信者はちょうど一人で cc も bcc もないため、他に誰に送られたかは誰にも見えず、各コピーは独自の msg_ ID、イベント、トラッキング、Webhook を持つ普通のメールです。呼び出しはすぐに 202 を返し、送信はバックグラウンドで続くので、GET /broadcasts/{id} で追跡してください。
例
emails:send と audiences:read が必要です。audienceIds には 1〜10 個の ID を入れます。本文は html と text のどちらかまたは両方、あるいは保存済みの template から取り、両方を使うことはできません。subject はテンプレートが用意しない限り必須です。
curl -X POST "$OE/broadcasts" -H "$AUTH" -H 'content-type: application/json' -d '{ "audienceIds": ["aud_4c1b8e2a7d9f05c36b4e8a71"], "from": "Acme <[email protected]>", "subject": "{{firstName|Hello}}, the September release is out", "html": "<p>Hi {{firstName|there}},</p><p>Here is what changed this month.</p>", "text": "Hi {{firstName|there}}, here is what changed this month. Unsubscribe: {{unsubscribeUrl}}", "tags": { "campaign": "release-2026-09" }, "scheduledAt": "PT2H"}'{ "object": "broadcast", "id": "brd_5a8c1e3f7b2d94a06c8e1f3b", "status": "scheduled", "mode": "live", "source": "api", "audienceIds": ["aud_4c1b8e2a7d9f05c36b4e8a71"], "from": "Acme <[email protected]>", "subject": "{{firstName|Hello}}, the September release is out", "counts": { "recipients": 412, "created": 0, "skipped": 0, "failedToQueue": 0, "queued": 0, "sending": 0, "sent": 0, "failed": 0, "cancelled": 0 }, "lastError": null, "scheduledAt": "2026-09-23T14:00:00.000Z", "startedAt": null, "completedAt": null, "cancelledAt": null, "createdAt": "2026-09-23T12:00:00.000Z", "updatedAt": "2026-09-23T12:00:00.000Z", "replayed": false}応答は queued、または scheduledAt 付きの scheduled です。これには ISO 8601 の日時か PT2H のような期間を指定でき、最大 365 日先までです。counts.recipients は今取った見積もりで、他のカウントは 0 から始まります。Location ヘッダーは一斉配信を指します。
Idempotency-Key ヘッダーを付ければ安全に再試行できます。同じキーなら最初の呼び出しが作った一斉配信を 200 と Idempotency-Replayed: true で返し、同じキーで本文が異なると 422 idempotency_key_reuse になります。キーなしで同じ本文を 2 回送ると、一斉配信が 2 回送られます。
一斉配信そのものが記録なので、コピーは「送信済み」フォルダに保存されません。GET /emails?broadcastId=brd_5a8c1e3f7b2d94a06c8e1f3b で一人につき 1 通ずつ一覧できます。
誰に届くか
少なくとも 1 つのオーディエンスに入っているすべての連絡先で、いくつのオーディエンスに入っていても 1 回だけ数えます。除外されるのは 2 種類の連絡先です。選んだオーディエンスのうち自分が入っているすべてで配信停止したものと、バウンスや苦情のため、あるいは誰かが追加したために抑止リストにアドレスがあるものです。呼び出し後、送信がその連絡先に届く前にオーディエンスに追加された連絡先には届きます。
送信はオーディエンスを 50 人ずつ進み、各コピーを POST /emails と同じ経路に渡すので、各コピーは他のメッセージと同じように再試行、追跡、報告されます。POST /broadcasts/preview は、この呼び出しの出発点となる人数を、何も送らずに返します。
何かを書き込む前に、送信全体がプランの月間送信数と照合されます。割り当てで賄えない一斉配信は 429 send_quota_exceeded で拒否され、何も残しません。コピー 1 通が 1 回の送信として数えられます。
差し込み項目
subject、html、text は一人ひとりについて埋められます。各項目はバーの後に代替値を取り、連絡先に値がないときに使われるので、名前なしで保存された連絡先では {{firstName|there}} が "there" になります。html では値がエスケープされ、波かっこ内の空白は許され、他の {{…}} は書かれたとおりに残ります。
| フィールド | 入る値 |
|---|---|
| `{{firstName}}` | 連絡先の名前の最初の語。 |
| `{{lastName}}` | 連絡先の名前の、最初の語より後の部分。 |
| `{{name}}` | 連絡先の名前全体。 |
| `{{email}}` | コピーの送り先アドレス。 |
| `{{unsubscribeUrl}}` | この人をこれらのオーディエンスから配信停止にするリンク。 |
本文の代わりに template を使うと、同じ 5 つの値がプロパティとして渡されますが、テンプレートが宣言しているプロパティに限られます。firstName を宣言しているテンプレートはそれを受け取り、宣言していないプロパティは送られないので、コピーが未知のプロパティで失敗することはありません。template.props に入れたものはすべてのコピーに同じように入ります。
配信停止
どのコピーにも List-Unsubscribe と List-Unsubscribe-Post: List-Unsubscribe=One-Click が付きます。これによってメールクライアントが独自の配信停止ボタンを表示でき、大手のメールボックス事業者が一括メールに求めているのもこれです。
{{unsubscribeUrl}} を自分で置いていない html または text の本文には、1 行のフッターが付きます: "You are receiving this because you are on this mailing list. Unsubscribe"。テンプレートはそのまま送られるので、テンプレートに {{unsubscribeUrl}} を入れてください。
リンクは配信停止ボタンのあるページを開くので、リンクを取得するスキャナーは誰も配信停止にしませんが、メールクライアントのワンクリック要求はすぐに配信停止にします。どちらの場合も、その人はこの一斉配信が送られたすべてのオーディエンスで配信停止として記録され、GET /audiences/{id}/contacts に unsubscribedAt として表れます。他のオーディエンス、連絡先、1 通ずつ送るメールには影響しません。
拒否
| ステータス | コード | 発生条件 |
|---|---|---|
| 403 | from_address_forbidden | キーは from として送信できません。 |
| 404 | audience_not_found | audienceIds の ID がこのワークスペースのどのオーディエンスも指していません。 |
| 409 | domain_not_sendable | POST /emails と同じく、from のドメインがまだメールに署名できません。 |
| 422 | no_recipients | オーディエンスが空か、全員が配信停止または抑止されています。 |
| 422 | invalid_parameter | 本文がない、template と一緒に html か text がある、テンプレートなしで subject がない、オーディエンスが 10 個または タグが 8 個を超える、scheduledAt が未来でないか 365 日より先である、のいずれかです。 |
| 422 | template_not_found | テンプレートを解決できません。他のテンプレートの拒否も template.* を示します。 |
| 422 | capability_unsupported | キーが特定のアドレスに制限されています。オーディエンスはワークスペース全体のものです。 |
| 429 | send_quota_exceeded | 今月、全員分のコピーをプランで賄えません。 |
添付ファイル、cc、bcc、翻訳、暗号化はありません。tags は最大 8 個で、各コピーにはサーバーが追加する broadcast_id も付きます。