---
title: "Create and Send Broadcasts via API"
slug: create-and-send-broadcasts-via-api
description: "Use the Broadcast API to create and send a broadcast with a single request."
created_at: "2026-02-12"
updated_at: "2026-02-12"
image: https://cdn.resend.com/posts/create-and-send-broadcasts-via-api.jpg
humans: ["alexandre-cisneiros"]
---

Previously, to create and send a Broadcast via the API, it required two separate requests: one to create the Broadcast and another to send it.

Starting today, you can **create and send a Broadcast with a single request**.

<YouTube videoId="gv2JZ6CGK98" />

## How it works

When making the call, you can now set the `send` parameter to `true` to create and send a Broadcast with a single request.

<CodeTabs codeHeight={455}>

```nodejs
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.broadcasts.create({
  segmentId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
  from: 'Acme <onboarding@resend.dev>',
  subject: 'hello world',
  html: 'Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}',
  --highlight-start
  send: true,
  --highlight-end
});
```

```php
$resend = Resend::client('re_xxxxxxxxx');

$resend->broadcasts->create([
  'segment_id' => '78261eea-8f8b-4381-83c6-79fa7120f1cf',
  'from' => 'Acme <onboarding@resend.dev>',
  'subject' => 'hello world',
  'html' => 'Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}',
  --highlight-start
  'send' => true,
  --highlight-end
]);
```

```python
import resend
from typing import List

resend.api_key = "re_xxxxxxxxx"

params: resend.Broadcasts.CreateParams = {
  "segment_id": "78261eea-8f8b-4381-83c6-79fa7120f1cf",
  "from": "Acme <onboarding@resend.dev>",
  "subject": "Hello, world!",
  "html": "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}",
  --highlight-start
  "send": True,
  --highlight-end
}
resend.Broadcasts.create(params)
```

```ruby
require "resend"

Resend.api_key = 're_xxxxxxxxx'

params = {
  "segment_id": "78261eea-8f8b-4381-83c6-79fa7120f1cf",
  "from": "Acme <onboarding@resend.dev>",
  "subject": "Hello, world!",
  "html": "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}",
  --highlight-start
  "send": true,
  --highlight-end
}
Resend::Broadcasts.create(params)
```

```go
client := resend.NewClient("re_xxxxxxxxx")

params := &resend.CreateBroadcastRequest{
  SegmentId: "78261eea-8f8b-4381-83c6-79fa7120f1cf",
  From:      "Acme <onboarding@resend.dev>",
  Subject:   "Hello, world!",
  Html:      "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}",
  --highlight-start
  Send:      true,
  --highlight-end
}
broadcast, _ := client.Broadcasts.Create(params)
```

```rust
use resend_rs::{types::CreateBroadcastOptions, Resend, Result};

#[tokio::main]
async fn main() -> Result<()> {
  let resend = Resend::new("re_xxxxxxxxx");

  let segment_id = "78261eea-8f8b-4381-83c6-79fa7120f1cf";
  let from = "Acme <onboarding@resend.dev>";
  let subject = "hello world";
  let html = "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}";

  let opts = CreateBroadcastOptions::new(segment_id, from, subject).with_html(html);

  let _broadcast = resend
    .broadcasts
    --highlight-start
    .create(opts.clone().with_send(true))
    --highlight-end
    .await?;

  Ok(())
}
```

```java
Resend resend = new Resend("re_xxxxxxxxx");

CreateBroadcastOptions params = CreateBroadcastOptions.builder()
    .segmentId("78261eea-8f8b-4381-83c6-79fa7120f1cf")
    .from("Acme <onboarding@resend.dev>")
    .subject("hello world")
    .html("Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}")
    --highlight-start
    .send(true)
    --highlight-end
    .build();
CreateBroadcastResponseSuccess data = resend.broadcasts().create(params);
```

```dotnet
{/* not yet supported */}
```

```curl
curl -X POST 'https://api.resend.com/broadcasts' \
 -H 'Authorization: Bearer re_xxxxxxxxx' \
 -H 'Content-Type: application/json' \
 -d $'
{
  "segment_id": "78261eea-8f8b-4381-83c6-79fa7120f1cf",
  "from": "Acme <onboarding@resend.dev>",
  "subject": "hello world",
  "html": "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}",
  --highlight-start
  "send": true
  --highlight-end
}'
```
</CodeTabs>

## Send and Schedule

If you create and send a Broadcast in a single call, you can also schedule the Broadcast for a future date. Use either natural language or a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.

<CodeTabs codeHeight={475}>

```nodejs
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

const { data, error } = await resend.broadcasts.create({
  segmentId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
  from: 'Acme <onboarding@resend.dev>',
  subject: 'hello world',
  html: 'Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}',
  send: true,
  --highlight-start
  scheduledAt: 'in 1 hour',
  --highlight-end
});
```

```php
$resend = Resend::client('re_xxxxxxxxx');

$resend->broadcasts->create([
  'segment_id' => '78261eea-8f8b-4381-83c6-79fa7120f1cf',
  'from' => 'Acme <onboarding@resend.dev>',
  'subject' => 'hello world',
  'html' => 'Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}',
  'send' => true,
  --highlight-start
  'scheduled_at' => 'in 1 hour',
  --highlight-end
]);
```

```python
import resend

resend.api_key = "re_xxxxxxxxx"

params: resend.Broadcasts.CreateParams = {
  "segment_id": "78261eea-8f8b-4381-83c6-79fa7120f1cf",
  "from": "Acme <onboarding@resend.dev>",
  "subject": "Hello, world!",
  "html": "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}",
  "send": True,
  --highlight-start
  "scheduled_at": "in 1 hour",
  --highlight-end
}
resend.Broadcasts.create(params)
```

```ruby
require "resend"

Resend.api_key = "re_xxxxxxxxx"

params = {
  "segment_id": "78261eea-8f8b-4381-83c6-79fa7120f1cf",
  "from": "Acme <onboarding@resend.dev>",
  "subject": "Hello, world!",
  "html": "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}",
  "send": true,
  --highlight-start
  "scheduled_at": "in 1 hour",
  --highlight-end
}
Resend::Broadcasts.create(params)
```

```go
client := resend.NewClient("re_xxxxxxxxx")

params := &resend.CreateBroadcastRequest{
  SegmentId:   "78261eea-8f8b-4381-83c6-79fa7120f1cf",
  From:        "Acme <onboarding@resend.dev>",
  Subject:     "Hello, world!",
  Html:        "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}",
  Send:        true,
  --highlight-start
  ScheduledAt: "in 1 hour",
  --highlight-end
}
broadcast, _ := client.Broadcasts.Create(params)
```

```rust
use resend_rs::{types::CreateBroadcastOptions, Resend, Result};

#[tokio::main]
async fn main() -> Result<()> {
  let resend = Resend::new("re_xxxxxxxxx");

  let segment_id = "78261eea-8f8b-4381-83c6-79fa7120f1cf";
  let from = "Acme <onboarding@resend.dev>";
  let subject = "hello world";
  let html = "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}";

  let opts = CreateBroadcastOptions::new(segment_id, from, subject).with_html(html);

  let _broadcast = resend
    .broadcasts
    --highlight-start
    .create(opts.with_send(true).with_scheduled_at("in 1 hour"))
    --highlight-end
    .await?;

  Ok(())
}
```

```java
Resend resend = new Resend("re_xxxxxxxxx");

CreateBroadcastOptions params = CreateBroadcastOptions.builder()
    .segmentId("78261eea-8f8b-4381-83c6-79fa7120f1cf")
    .from("Acme <onboarding@resend.dev>")
    .subject("hello world")
    .html("Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}")
    .send(true)
    --highlight-start
    .scheduledAt("in 1 hour")
    --highlight-end
    .build();
CreateBroadcastResponseSuccess data = resend.broadcasts().create(params);
```

```dotnet
{/* not yet supported */}
```

```curl
curl -X POST 'https://api.resend.com/broadcasts' \
 -H 'Authorization: Bearer re_xxxxxxxxx' \
 -H 'Content-Type: application/json' \
 -d $'
{
  "segment_id": "78261eea-8f8b-4381-83c6-79fa7120f1cf",
  "from": "Acme <onboarding@resend.dev>",
  "subject": "hello world",
  "html": "Hi {{{FIRST_NAME|there}}}, you can unsubscribe here: {{{RESEND_UNSUBSCRIBE_URL}}}",
  "send": true,
  --highlight-start
  "scheduled_at": "in 1 hour"
  --highlight-end
}'
```
</CodeTabs>

## Conclusion

We're excited to see how this functionality streamlines your Broadcast sending. For more information, check out the [API reference for creating Broadcasts](/docs/api-reference/broadcasts/create-broadcast).