> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kapso.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update broadcast status

> Update a broadcast status.

Set `status` to `stopped` to stop a broadcast that is currently sending. Pending recipients remain pending and no new sends are started.

Set `status` to `draft` to cancel a scheduled broadcast and clear its schedule.




## OpenAPI

````yaml /api/platform/v1/openapi-platform.yaml patch /whatsapp/broadcasts/{broadcast_id}
openapi: 3.1.0
info:
  title: Kapso Platform API
  version: 0.2.0
  description: >
    Build WhatsApp messaging into your product. Manage customers, connect phone
    numbers, send broadcasts, and handle conversations.
servers:
  - url: https://api.kapso.ai/platform/v1
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Customers
    description: Manage customer accounts
  - name: Setup Links
    description: WhatsApp onboarding via embedded signup
  - name: Phone Numbers
    description: Connect and manage WhatsApp numbers
  - name: Webhooks
    description: Subscribe to WhatsApp events
  - name: Display Names
    description: Update WhatsApp business display names
  - name: Broadcasts
    description: |
      Send template messages at scale

      **Alpha**: This API is in alpha and subject to change
  - name: Conversations
    description: Manage conversation state
  - name: Media
    description: Upload media files for WhatsApp messaging
  - name: Users
    description: Manage project team members
  - name: Inbox Embeds
    description: Create and manage embeddable inbox access links
  - name: Webhook Deliveries
    description: View webhook delivery attempts and their status
  - name: External API Logs
    description: View logs of external API calls made by the project
  - name: Log Search
    description: Search log events across API, Meta, workflow, and webhook sources
  - name: Events
    description: Emit and query project-scoped events
  - name: Provider Models
    description: List available AI provider models
  - name: WhatsApp Flows
    description: Build interactive WhatsApp Flows for surveys and forms
  - name: Contacts
    description: Manage WhatsApp contacts
  - name: Findings
    description: Detect recurring problems in conversations and investigate them with AI
paths:
  /whatsapp/broadcasts/{broadcast_id}:
    parameters:
      - name: broadcast_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
    patch:
      tags:
        - Broadcasts
      summary: Update broadcast status
      description: >
        Update a broadcast status.


        Set `status` to `stopped` to stop a broadcast that is currently sending.
        Pending recipients remain pending and no new sends are started.


        Set `status` to `draft` to cancel a scheduled broadcast and clear its
        schedule.
      operationId: updateWhatsappBroadcastStatus
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WhatsappBroadcastUpdateRequest'
            examples:
              stop:
                summary: Stop a sending broadcast
                value:
                  whatsapp_broadcast:
                    status: stopped
              return_to_draft:
                summary: Return a scheduled broadcast to draft
                value:
                  whatsapp_broadcast:
                    status: draft
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhatsappBroadcastResponse'
              examples:
                stopped:
                  value:
                    data:
                      id: 5f6a7b8c-9d0e-1f2a-3b4c-5d6e7f8a9b0c
                      name: Weekend Sale 2025
                      status: stopped
                      scheduled_at: null
                      started_at: '2025-07-15T10:00:00Z'
                      stopped_at: '2025-07-15T10:12:30Z'
                      completed_at: null
                      created_at: '2025-07-14T15:00:00Z'
                      updated_at: '2025-07-15T10:12:30Z'
                      phone_number_id: '1234567890'
                      whatsapp_template: null
                      total_recipients: 1000
                      sent_count: 650
                      failed_count: 50
                      delivered_count: 600
                      read_count: 320
                      responded_count: 45
                      pending_count: 300
                      response_rate: 6.9
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '422':
          $ref: '#/components/responses/ValidationError'
components:
  schemas:
    WhatsappBroadcastUpdateRequest:
      type: object
      required:
        - whatsapp_broadcast
      properties:
        whatsapp_broadcast:
          type: object
          required:
            - status
          properties:
            status:
              type: string
              enum:
                - draft
                - stopped
              description: >-
                Set to `stopped` to stop a sending broadcast, or `draft` to
                cancel a scheduled broadcast.
    WhatsappBroadcastResponse:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/WhatsappBroadcast'
    WhatsappBroadcast:
      type: object
      required:
        - id
        - name
        - status
        - created_at
        - updated_at
        - total_recipients
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          description: Campaign label
        status:
          type: string
          enum:
            - draft
            - scheduled
            - copying
            - sending
            - stopped
            - completed
            - failed
          description: >-
            `copying` means the broadcast was duplicated from another one and
            its recipients are still being copied. Recipients cannot be added or
            cleared and the broadcast cannot be sent or scheduled until it
            becomes `draft`.
        scheduled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When broadcast is scheduled to send
        started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When sending started
        stopped_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When sending was stopped
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When completed
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        sent_count:
          type: integer
          minimum: 0
          description: Messages sent
        failed_count:
          type: integer
          minimum: 0
          description: Failures
        delivered_count:
          type: integer
          minimum: 0
          description: Delivered
        read_count:
          type: integer
          minimum: 0
          description: Read
        pending_count:
          type: integer
          minimum: 0
          description: Pending
        suppressed_count:
          type: integer
          minimum: 0
          description: >-
            Recipients skipped because they stopped marketing messages on this
            number. Not sent, not charged, and excluded from sent_count and
            failed_count.
        responded_count:
          type: integer
          minimum: 0
          description: Responses
        response_rate:
          type: number
          format: float
          description: Response rate %
        total_recipients:
          type: integer
          minimum: 0
          description: Total recipients
        phone_number_id:
          type:
            - string
            - 'null'
          description: Phone number ID
        whatsapp_template:
          anyOf:
            - $ref: '#/components/schemas/WhatsappBroadcastTemplate'
            - type: 'null'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
    WhatsappBroadcastTemplate:
      type: object
      required:
        - id
        - name
        - language_code
        - category
        - status
      properties:
        id:
          type: string
          description: >-
            Meta template ID when available, otherwise internal UUID for legacy
            support
        meta_template_id:
          type:
            - string
            - 'null'
          description: Meta's external template identifier
        name:
          type: string
        language_code:
          type: string
        category:
          type: string
        status:
          type: string
        components:
          type: array
          description: Template component definitions (BODY, HEADER, BUTTON, etc.)
          items:
            type: object
            additionalProperties: true
  responses:
    UnauthorizedError:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFoundError:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ValidationError:
      description: Request validation failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````