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

# Send or schedule a broadcast

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

## Request

- Base URL: `https://smtpfa.st/api`
- URL: `https://smtpfa.st/api/v1/broadcasts/{id}/send`
- Auth: HTTP bearer

Snapshot eligible subscribed contacts, create one queued email per recipient, and send now or schedule within 30 days. With send_over_minutes the recipients go out evenly spread over that window instead of all at once; a canceled broadcast stops the sends that have not gone out yet.

## Path parameters

- `id` string, required

## Request body

- object
  - `scheduled_at` string, date-time
  - `send_over_minutes` integer: Not in Resend. Spread the send evenly over this many minutes from the send time (or scheduled_at): recipient i of N goes out at start + i * window / N. 0 sends to everyone at once. 15 to 4320 (72 hours). Useful on a new sending domain or during the first week's warm-up, where each hour of the window must fit the hourly cap; the daily cap still counts the whole send. Left out, the broadcast's saved send_over_minutes applies; given, it is saved on the broadcast. The window must end within 30 days.

## Response `200`

Broadcast queued or scheduled

- BroadcastSendResult
  - `object` string, required
  - `id` string, required
  - `name` string, required
  - `audience` string
  - `audience_meta` AudienceMeta: Details of the audience, such as the segment_id
  - `from` string, nullable
  - `reply_to` string, nullable
  - `subject` string, nullable
  - `preview_text` string, nullable
  - `html` string, nullable
  - `text` string, nullable
  - `markdown` string, nullable
  - `status` 'draft' | 'scheduled' | 'queued' | 'sending' | 'sent' | 'paused' | 'canceled' | 'failed', required
  - `scheduled_at` string, date-time, nullable
  - `queued_at` string, date-time, nullable
  - `sent_at` string, date-time, nullable
  - `canceled_at` string, date-time, nullable
  - `archived_at` string, date-time, nullable: When the broadcast was archived. Archived broadcasts are left out of the list unless archived=true or archived=all.
  - `paused_at` string, date-time, nullable: Set when the campaign was stopped mid-send by the deliverability guard
  - `pause_reason` string, nullable: Why the campaign was paused, for example the complaint rate that tripped the guard
  - `fanout_completed_at` string, date-time, nullable: When every recipient of the send had been created
  - `expected_recipients` integer, nullable: Eligible recipients counted when the send was accepted
  - `send_over_minutes` integer: Minutes the send is spread over from its start (scheduled_at, else queued_at); 0 means all at once
  - `track_opens` boolean
  - `track_clicks` boolean
  - `recipient_count` integer
  - `metrics` BroadcastMetrics
    - `total` integer
    - `skipped` integer
    - `queued` integer
    - `sending` integer
    - `handed_off` integer: Recipients whose email the provider accepted, whatever happened next. Shows how far a send spread over send_over_minutes has got.
    - `sent` integer
    - `delivered` integer
    - `opened` integer
    - `clicked` integer
    - `unsubscribed` integer
    - `bounced` integer
    - `complained` integer
    - `failed` integer
    - `canceled` integer
    - `delivery_rate` number
    - `open_rate` number
    - `click_rate` number
    - `unsubscribe_rate` number
    - `bounce_rate` number
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `recipients` integer, required: Contacts the send will reach
  - `skipped` integer, required: Contacts left out: unsubscribed, suppressed or invalid
  - `batch_id` string, required

## Other responses

- `400`: Bad request - check your payload
- `401`: Invalid or missing API key
- `403`: Forbidden - domain not verified or insufficient permissions
- `404`: Resource not found
- `429`: Rate limit exceeded - retry after the period indicated in the Retry-After header
- `500`: Internal server error

---

[API](https://skmtc.dev/smtpfa/apis/smtpfast-api.md) · [All operations](https://skmtc.dev/smtpfa/apis/smtpfast-api/llms.txt) · [OpenAPI document](https://skmtc.dev/smtpfa/apis/smtpfast-api/revisions/79dda742f53e?raw)
