# Broadcasts

Broadcasts are your large-scale communications designed to engage a wide audience, targeting either all your subscribers or specific segments. These include your marketing campaigns and newsletters, aimed at delivering valuable content, updates, promotions, and news. 


## Available Endpoints


| Method                                                      | Endpoint                                                              | Name                                               |
|-------------------------------------------------------------|-----------------------------------------------------------------------|----------------------------------------------------|
|     |  | [Create Broadcasts](/broadcasts#create-broadcasts) |
|  |  | [Get Broadcasts](/broadcasts#get-broadcasts)       |

## The Broadcast Model


  
    The broadcast model contains a full set of keys that represent the email broadcast, the tags and segments it was addressed to, and the send rate and open rate across recipients.
  
  
    ### Properties

    
      - **name** (`string`): 
        The name of the broadcast campaign.
      
      - **subject** (`string`): 
        The subject of the email.
      
      - **content** (`string`): 
        The content of the email.
      
      - **type** (`string`): 
        The type of email. `plain` for Bento's css or `raw` to use your own.
      
      - **from** (`object`): 
        `key` `value` object of the sender, must be an author in your account.
      
      - **inclusive_tags** (`string`): 
        A comma separated list of tags to send to.
      
      - **exclusive_tags** (`string`): 
        A comma separated list of tags you do not want the email to go to.
      
      - **segment_id** (`string`): 
        The segment ID for the campaign.
      
      - **batch_size_per_hour** (`integer`): 
        The amount of emails to send per hour to ensure the highest delivery.
      
    
  


---

## Get Broadcasts {{ tag: 'GET', label: '/v1/fetch/broadcasts' }}


  
    Returns a list of broadcasts in your account.

    
> We currently don't support exporting your broadcast history directly in the app. However, this endpoint can be used to obtain a copy of all your broadcasts. This feature can be useful if you want to utilize this data in your own application, such as training language models on your writing style or creating a digest of previous content.


    
      - **site_uuid** (`string`): 
        Your site UUID.
      
      - **page** (`integer`): 
        Pagination number. If you have many broadcasts, you can paginate through them by adding the page parameter.
        For example, to get the second page of broadcasts add ?page=2 to the end of the url. Be
        sure to continue to add the site_uuid parameter to the end of the url.

        

      
      - **status** (`string`): 
        Optional status filter. Supported values are `sent`, `draft`, `sending`, `scheduled`, `paused`, and `canceled`.

        If omitted, Bento defaults to `sent`. `cancelled` is also accepted as an alias for `canceled`.
        Unsupported values also fall back to `sent`.
      
    

  
  
    
  


  
    ### Response

    Returns a collection of broadcasts and their details.

    
> The example response below shows a draft broadcast. Draft broadcasts only return `template.template_id`. Other
>       broadcast statuses return the full template payload, including `subject`, `to`, and `html`.


  
  
    
  


---

## Create Broadcasts {{ tag: 'POST', label: '/v1/batch/broadcasts' }}


  
    Create new broadcasts to be sent.

    ### Required Attributes

    
> Requires `broadcasts` that is an array of the broadcast object properties


    
      - **name** (`string`): 
        Name of the broadcast such as a campaign name.
      
      - **subject** (`string`): 
        Subject line of the broadcast email
      
      - **content** (`string`): 
        Broadcast body content, supports liquid tags.
      
      - **type** (`string`): 
        The type of email. `plain` for Bento's css or `raw` to use your own.
      
      - **from** (`object`): 
        `key` `value` object of the sender, must be an author in your account.
      
      - **inclusive_tags** (`string`): 
        A comma separated list of tags to send to.
      
      - **exclusive_tags** (`string`): 
        A comma separated list of tags you do not want the email to go to.
      
      - **segment_id** (`string`): 
        The segment ID for the campaign.
      
      - **batch_size_per_hour** (`integer`): 
        The amount of emails to send per hour to ensure the highest delivery.
      
      - **send_at** (`datetime`): 
        The date and time to send the broadcast at.

        Recommended format: `2024-04-23T18:30:00Z`

        **Required** when `approved` is `true`

      
      - **approved** (`boolean`): 

        Whether the broadcast has been approved by Bento and will be sent at the scheduled time.

        
> 🚨 **Important**
> We STRONGLY recommend you only add this key after you've done a few test requests and have sent those manually.


      
    

  
  
    
  

<br/><br/>

  
    ### Response

    Returns the count of broadcasts queued for processing.

  
  
    
  


<br/><br/>

  
    ### Content format examples

    Use `type` to decide the format of `content`.

    #### `type: raw` example: Product launch announcement

    Use a complete email HTML document with inline styles. This gives you full control over layout and rendering.

```html
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>New Feature Announcement</title>
  </head>
  <body style="margin:0;padding:0;background-color:#f3f4f6;">
    <table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="background-color:#f3f4f6;padding:24px 0;">
      <tr>
        <td align="center">
          <table role="presentation" width="620" cellspacing="0" cellpadding="0" border="0" style="width:620px;max-width:620px;background-color:#ffffff;border:1px solid #e5e7eb;border-radius:10px;">
            <tr>
              <td style="padding:14px 28px;background-color:#111827;border-radius:10px 10px 0 0;font-family:Arial,sans-serif;">
                <p style="margin:0;color:#e5e7eb;font-size:12px;letter-spacing:0.02em;text-transform:uppercase;">Bento Product Update</p>
              </td>
            </tr>
            <tr>
              <td style="padding:30px 28px 16px 28px;font-family:Arial,sans-serif;color:#111827;">
                <h1 style="margin:0 0 12px 0;font-size:26px;line-height:1.25;">Three new tools to improve campaign performance</h1>
                <p style="margin:0 0 16px 0;font-size:16px;line-height:1.55;color:#374151;">
                  Hi {{ visitor.first_name | default: "there" }}, this week we shipped improvements to reporting, segmentation, and API performance.
                </p>
                <p style="margin:0 0 22px 0;font-size:16px;line-height:1.55;color:#374151;">
                  Here are the highlights and how to use each update in your next send.
                </p>
                <a href="https://bentonow.com/changelog" style="display:inline-block;padding:12px 18px;background-color:#111827;color:#ffffff;text-decoration:none;border-radius:6px;font-size:14px;font-weight:600;">Read the full changelog</a>
              </td>
            </tr>
            <tr>
              <td style="padding:0 28px 24px 28px;font-family:Arial,sans-serif;">
                <table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="border-collapse:separate;border-spacing:0 12px;">
                  <tr>
                    <td style="padding:14px;border:1px solid #e5e7eb;border-radius:8px;">
                      <p style="margin:0 0 6px 0;font-size:14px;font-weight:700;color:#111827;">Faster segment loading</p>
                      <p style="margin:0;font-size:14px;line-height:1.5;color:#4b5563;">Build and preview large audience segments in less time before each campaign.</p>
                    </td>
                  </tr>
                  <tr>
                    <td style="padding:14px;border:1px solid #e5e7eb;border-radius:8px;">
                      <p style="margin:0 0 6px 0;font-size:14px;font-weight:700;color:#111827;">Improved campaign reporting</p>
                      <p style="margin:0;font-size:14px;line-height:1.5;color:#4b5563;">Compare opens, clicks, and conversions in one view to find winning messages faster.</p>
                    </td>
                  </tr>
                  <tr>
                    <td style="padding:14px;border:1px solid #e5e7eb;border-radius:8px;">
                      <p style="margin:0 0 6px 0;font-size:14px;font-weight:700;color:#111827;">Webhook retry logs</p>
                      <p style="margin:0;font-size:14px;line-height:1.5;color:#4b5563;">Debug failed deliveries with detailed retry events and response payloads.</p>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
            <tr>
              <td style="padding:0 28px 28px 28px;font-family:Arial,sans-serif;color:#6b7280;font-size:12px;line-height:1.6;">
                You are receiving this email because you subscribed to product updates from Bento.
                <br />
                Manage your preferences at https://app.bentonow.com/preferences.
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
  </body>
</html>
```

    #### `type: plain` example: Weekly newsletter

    Use simple markup for standard newsletters. Keep it lightweight with paragraphs, lists, and CTA links styled like buttons.

```html
<p>Hi {{ visitor.first_name | default: "there" }},</p>

<p>Thanks for being part of Bento. Here is your weekly update from the product team.</p>

<h2>What shipped this week</h2>

<ul>
  <li>Faster segment loading</li>
  <li>Improved campaign reporting</li>
  <li>New webhook retry logs</li>
</ul>


<h3>One quick win to try</h3>
<p>
  Create a segment for users who clicked any email in the last 14 days, then send your next feature
  announcement only to that group for higher engagement.
</p>

<p>
  <!-- This is a Bento button and compatible with the editor -->
  <button href="https://app.bentonow.com/broadcasts/new" target="_blank" rel="noopener noreferrer" data-bento-button="true" text="Create next broadcast" width="auto" style="background-color: #111827; color: #ffffff!important; border-radius: 8px; padding: 10px 16px; font-size: 14px; text-decoration: none!important; border: none; cursor: pointer!important; font-weight: 600; display: inline-block!important; width: auto!important;" class="shoji-bento-button" data-width="auto"><a href="https://app.bentonow.com/broadcasts/new" target="_blank" rel="noopener noreferrer" style="color: inherit!important; text-decoration: none!important;">Create next broadcast</a></button>
</p>

<p>
  <a href="https://bentonow.com/docs/broadcasts" style="display:inline-block;padding:10px 16px;background:#f3f4f6;color:#111827;text-decoration:none;border-radius:6px;border:1px solid #d1d5db;">
    Read docs
  </a>
</p>

<p>
  Need help planning your next campaign? Reply to this email and we can help with segmentation and send timing.
</p>

<hr />

<p style="font-size:12px;color:#6b7280;">
  You are receiving this email because you opted in for product updates.
  Update preferences in your account at any time.
</p>
```
  
  
    
> For `raw`, include full HTML and inline CSS. For `plain`, use lightweight content blocks.