---
title: "Cancel a scheduled broadcast"
method: POST
path: "/v1/broadcasts/{id}/cancel"
tags: ["Broadcasts"]
---

# Cancel a scheduled broadcast

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

## Request

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

Cancel a broadcast. A scheduled broadcast is stopped before anything is sent. A queued or sending broadcast stops where it is: emails already accepted are delivered, the rest are dropped and their credits refunded

## Path parameters

- `id` string, required

## Response `200`

Broadcast canceled

- Broadcast
  - `object` string
  - `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

## 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)
