---
title: "Send a broadcast now"
method: POST
path: "/v1/broadcasts/{broadcast_id}/send"
tags: ["Broadcasts"]
---

# Send a broadcast now

`POST /v1/broadcasts/{broadcast_id}/send`

## Request

- Base URL: `https://api.mailrith.com`
- URL: `https://api.mailrith.com/v1/broadcasts/{broadcast_id}/send`
- Auth: HTTP bearer

Immediately creates durable preparation for a broadcast draft or scheduled send. Mailrith calculates the exact Subscriber total and checks provider readiness in the background before delivery. A 202 response means the durable send was accepted, not that provider delivery is complete. Reuse the same idempotency key if the response is lost.

## Path parameters

- `broadcast_id` string, required

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `preflight_proof` string: Optional unchanged short-lived send_proof returned by a recent diagnostic preflight. A valid proof can seed its checked estimate. If it is omitted, expired, or no longer matches, Mailrith still creates the run immediately and calculates the exact total during durable preparation.

## Response `202`

Broadcast send started or is waiting for an earlier active Broadcast to finish

- object
  - `data` object, required
    - `status` 'running' | 'queued', required: Queued means Mailrith accepted the send and will start it automatically when a sending slot is available.
    - `run_id` string, required
    - `resource` Broadcast, required
      - `self` string, required: Stable relative Public API path for retrieving this resource.
      - `id` string, required
      - `subject` string, required
      - `preview_text` string, nullable, required
      - `body` string, required
      - `body_document` BroadcastEmailDocument, required
        - `type` 'doc' | 'paragraph' | 'heading' | 'text' | 'hardBreak' | 'bulletList' | 'orderedList' | 'listItem' | 'blockquote' | 'emailSection' | 'emailSectionColumn' | 'emailButton' | 'image' | 'horizontalRule', required
        - `attrs` object
          - `id` string
          - `level` 1 | 2 | 3
          - `textAlign` 'left' | 'center' | 'right' | 'justify'
          - `columns` 1 | 2 | 3
          - `width` 'default' | 'large' | 'full' | 'fit'
          - `backgroundColor` string
          - `blockquoteBorderColor` string
          - `linkColor` string
          - `layoutAlignment` 'left' | 'center'
          - `backgroundImageUrl` string
          - `margin` 'none' | 'normal' | 'large'
          - `padding` 'none' | 'normal' | 'large'
          - `borderColor` string
          - `borderWidth` 'none' | 'normal' | 'large'
          - `borderRadius` 'none' | 'normal' | 'small' | 'large' | 'full'
          - `verticalAlign` 'top' | 'middle' | 'bottom'
          - `href` string
          - `textColor` string
          - `size` 'small' | 'medium' | 'large'
          - `align` 'left' | 'center' | 'right'
          - `label` string
          - `src` string
          - `alt` string
          - `title` string
          - `caption` string
          - `source` 'unsplash'
          - `unsplash` object
            - `photoId` string
            - `photographerName` string, required
            - `photographerUsername` string
            - `photographerUrl` string
            - `unsplashUrl` string
          - `widthPercent` number
          - `crop` 'none' | 'square' | 'circle'
          - `fillColumn` boolean
        - `content` BroadcastEmailNode[]
          - `type` 'doc' | 'paragraph' | 'heading' | 'text' | 'hardBreak' | 'bulletList' | 'orderedList' | 'listItem' | 'blockquote' | 'emailSection' | 'emailSectionColumn' | 'emailButton' | 'image' | 'horizontalRule', required
          - `attrs` object
            - `id` string
            - `level` 1 | 2 | 3
            - `textAlign` 'left' | 'center' | 'right' | 'justify'
            - `columns` 1 | 2 | 3
            - `width` 'default' | 'large' | 'full' | 'fit'
            - `backgroundColor` string
            - `blockquoteBorderColor` string
            - `linkColor` string
            - `layoutAlignment` 'left' | 'center'
            - `backgroundImageUrl` string
            - `margin` 'none' | 'normal' | 'large'
            - `padding` 'none' | 'normal' | 'large'
            - `borderColor` string
            - `borderWidth` 'none' | 'normal' | 'large'
            - `borderRadius` 'none' | 'normal' | 'small' | 'large' | 'full'
            - `verticalAlign` 'top' | 'middle' | 'bottom'
            - `href` string
            - `textColor` string
            - `size` 'small' | 'medium' | 'large'
            - `align` 'left' | 'center' | 'right'
            - `label` string
            - `src` string
            - `alt` string
            - `title` string
            - `caption` string
            - `source` 'unsplash'
            - `unsplash` object
              - …
            - `widthPercent` number
            - `crop` 'none' | 'square' | 'circle'
            - `fillColumn` boolean
          - `content` BroadcastEmailNode[]
          - `text` string
          - `marks` BroadcastEmailMark[]
            - `type` 'bold' | 'italic' | 'strike' | 'underline' | 'link' | 'textStyle' | 'highlight', required
            - `attrs` object
              - …
        - `text` string
        - `marks` BroadcastEmailMark[]
          - `type` 'bold' | 'italic' | 'strike' | 'underline' | 'link' | 'textStyle' | 'highlight', required
          - `attrs` object
            - `href` string
            - `color` string
            - `fontSize` string
      - `status` 'draft' | 'scheduled' | 'running' | 'completed' | 'failed', required
      - `scheduled_at` string, date-time, nullable, required
      - `completed_at` string, date-time, nullable, required
      - `connection_id` string, nullable, required
      - `from_name` string, nullable, required
      - `from_email` string, nullable, required
      - `reply_to_email` string, nullable, required
      - `audience_definition` AudienceDefinition, required
        - `match` 'all' | 'any', required
        - `groups` AudienceConditionGroup[], required
          - `id` string, required
          - `match` 'all' | 'any', required
          - `conditions` AudienceCondition[], required
            - `id` string, required
            - `field` 'subscriber_status' | 'country' | 'segment' | 'tag' | 'sequence' | 'form' | 'custom_field' | 'email_opened' | 'email_unsubscribed' | 'magic_link_clicked', required
            - `operator` 'is' | 'is_not' | 'has_any_of' | 'has_none_of' | 'is_active_in_any_of' | 'is_not_active_in_any_of' | 'has_completed_any_of' | 'has_not_completed_any_of' | 'has_ever_been_in_any_of' | 'has_never_been_in_any_of' | 'contains' | 'does_not_contain' | 'is_empty' | 'is_not_empty' | 'before' | 'after' | 'on' | 'in_last_days' | 'greater_than' | 'less_than' | 'in_region' | 'not_in_region', required
            - `value` union
              - …
            - `customFieldId` string, nullable
      - `track_opens` boolean, required
      - `track_clicks` boolean, required
      - `utm_source` string, nullable, required
      - `utm_medium` string, nullable, required
      - `utm_campaign` string, nullable, required
      - `utm_term` string, nullable, required
      - `utm_content` string, nullable, required
      - `recipient_count` integer, required
      - `opened_count` integer, required
      - `clicked_count` integer, required
      - `unsubscribed_count` integer, required
      - `bounced_count` integer, required
      - `complained_count` integer, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required

## Other responses

- `400`: Request is invalid
- `404`: Resource not found
- `409`: Request conflicts with the current resource state

---

[API](https://skmtc.dev/mailrith/apis/mailrith-api.md) · [All operations](https://skmtc.dev/mailrith/apis/mailrith-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mailrith/apis/mailrith-api/revisions/41f09536f2da?raw)
