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

# Update broadcast

> Update a broadcast that has not been sent yet (draft or scheduled status only)



## OpenAPI

````yaml /openapi.json put /v1/broadcasts/{id}
openapi: 3.0.3
info:
  title: Emailr API
  version: 1.0.0
servers:
  - url: https://api.emailr.dev
    description: Production
security: []
tags:
  - name: emails
    description: Email sending and management
  - name: contacts
    description: Contact management
  - name: templates
    description: Email template management
  - name: domains
    description: Domain verification and management
  - name: webhooks
    description: Webhook configuration
  - name: broadcasts
    description: Broadcast campaign management
  - name: segments
    description: Contact segmentation
paths:
  /v1/broadcasts/{id}:
    put:
      tags:
        - broadcasts
      summary: Update broadcast
      description: >-
        Update a broadcast that has not been sent yet (draft or scheduled status
        only)
      operationId: updateBroadcast
      parameters:
        - schema:
            type: string
            format: uuid
            example: 123e4567-e89b-12d3-a456-426614174000
          required: true
          name: id
          in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBroadcastRequest'
      responses:
        '200':
          description: Broadcast updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Broadcast'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Broadcast not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    UpdateBroadcastRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        subject:
          type: string
          minLength: 1
        from_email:
          type: string
          format: email
        from_name:
          type: string
        reply_to:
          type: string
          nullable: true
          format: email
        preview_text:
          type: string
          nullable: true
          maxLength: 500
        template_id:
          type: string
          nullable: true
          format: uuid
        segment_id:
          type: string
          nullable: true
          format: uuid
        topic_id:
          type: string
          nullable: true
          format: uuid
        scheduled_at:
          type: string
          nullable: true
          format: date-time
        inbox_id:
          type: string
          nullable: true
          format: uuid
          description: >-
            Optional inbox ID. When provided, the inbox's name, from address,
            and reply-to address are used as defaults unless explicit values are
            given. Set to null to remove inbox association. Mutually exclusive
            with inbox_ids.
          example: 123e4567-e89b-12d3-a456-426614174000
        inbox_ids:
          type: array
          nullable: true
          items:
            type: string
            format: uuid
          description: >-
            Optional array of inbox IDs for inbox rotation. Each inbox's sender
            identity is used for its portion of emails. Set to null or empty to
            disable rotation. Mutually exclusive with inbox_id.
        sending_speed:
          type: string
          nullable: true
          enum:
            - auto
            - warmup
            - very_slow
            - slow
            - normal
            - instant
          description: Controls how fast emails are sent.
        sequence_exit_conditions:
          type: object
          nullable: true
          properties:
            exit_if_in_segment_ids:
              type: array
              items:
                type: string
                format: uuid
            exit_if_not_in_segment_ids:
              type: array
              items:
                type: string
                format: uuid
          description: >-
            Configurable exit rules for the sequence dispatcher. Recipients
            matching any rule are removed from the sequence before the next
            follow-up.
        sequence_mode:
          type: string
          enum:
            - sales
            - marketing
          description: >-
            How follow-ups are sent. sales (default) = threaded replies.
            marketing = fresh standalone emails per step.
        tags:
          type: array
          items:
            type: string
          description: Tags for categorization. Lowercase, max 50 chars each, max 20 tags.
          example:
            - newsletter
            - vip
    Broadcast:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        organization_id:
          type: string
          format: uuid
        name:
          type: string
        subject:
          type: string
        from_email:
          type: string
          format: email
        from_name:
          type: string
          nullable: true
        reply_to:
          type: string
          nullable: true
        preview_text:
          type: string
          nullable: true
        template_id:
          type: string
          nullable: true
          format: uuid
        segment_id:
          type: string
          nullable: true
          format: uuid
        topic_id:
          type: string
          nullable: true
          format: uuid
          description: Topic ID for categorizing the broadcast
          example: 123e4567-e89b-12d3-a456-426614174000
        inbox_id:
          type: string
          nullable: true
          format: uuid
          description: Associated inbox ID for sender identity defaults
          example: 123e4567-e89b-12d3-a456-426614174000
        inbox_ids:
          type: array
          nullable: true
          items:
            type: string
          description: Inbox IDs used for inbox rotation
        sending_speed:
          type: string
          nullable: true
          description: Sending speed setting for the broadcast
          example: auto
        status:
          type: string
          example: draft
        total_recipients:
          type: number
          nullable: true
        sent_count:
          type: number
          nullable: true
        delivered_count:
          type: number
          nullable: true
        opened_count:
          type: number
          nullable: true
        clicked_count:
          type: number
          nullable: true
        bounced_count:
          type: number
          nullable: true
        scheduled_at:
          type: string
          nullable: true
          format: date-time
        started_at:
          type: string
          nullable: true
          format: date-time
        completed_at:
          type: string
          nullable: true
          format: date-time
        tags:
          type: array
          items:
            type: string
          description: Tags for categorization.
          example:
            - newsletter
            - vip
        sequence_exit_conditions:
          type: object
          nullable: true
          additionalProperties: {}
          description: >-
            Configurable exit rules evaluated by the sequence dispatcher before
            each follow-up. Supported keys: exit_if_in_segment_ids (string[]),
            exit_if_not_in_segment_ids (string[]).
        sequence_mode:
          type: string
          enum:
            - sales
            - marketing
          description: >-
            Whether follow-ups are sent as threaded replies (sales) or fresh
            standalone emails (marketing).
          example: sales
        created_by:
          type: string
          nullable: true
          format: uuid
        created_at:
          type: string
          format: date-time
      required:
        - id
        - organization_id
        - name
        - subject
        - from_email
        - from_name
        - reply_to
        - preview_text
        - template_id
        - segment_id
        - topic_id
        - inbox_id
        - inbox_ids
        - sending_speed
        - status
        - total_recipients
        - sent_count
        - delivered_count
        - opened_count
        - clicked_count
        - bounced_count
        - scheduled_at
        - started_at
        - completed_at
        - tags
        - sequence_mode
        - created_by
        - created_at
    Error:
      type: object
      properties:
        error:
          type: string
          example: An error occurred
        code:
          type: string
          example: VALIDATION_ERROR
        details: {}
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: API key authentication. Use your API key as the bearer token.

````