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

# Create a redial campaign

> Create a new campaign from selected unsuccessful outcomes.

Requires a Labs `super_user` OAuth bearer token plus Editor, Admin, or Owner. The source campaign must be completed and can be redialed at most once. Choose at least one of voicemail, no answer, or busy.

The new campaign starts in `created` state and preserves the selected contacts’ original context. It does not start dialing until explicitly started. Ineligible source state, previous redial, or no matching contacts returns `400`; an unknown campaign returns `404`.


## OpenAPI

````yaml POST /api/v1/campaign/{campaign_id}/redial
openapi: 3.1.0
info:
  title: Bandwidth Agent Builder API
  version: v1
  description: >-
    Manage agents, place calls, and retrieve conversation results in your
    workspace.
servers:
  - url: https://agents.labs.bandwidth.com
    description: Workspace API
security: []
paths:
  /api/v1/campaign/{campaign_id}/redial:
    post:
      tags:
        - campaigns
      summary: Create a redial campaign
      description: >-
        **Authorization:** Requires a Labs OAuth bearer token with the
        `super_user` role and an Editor, Admin, or Owner role in the selected
        workspace. API keys are not accepted.


        Create a new campaign from selected unsuccessful outcomes.
      operationId: redial_campaign_api_v1_campaign__campaign_id__redial_post
      parameters:
        - in: path
          name: campaign_id
          required: true
          schema:
            title: Campaign Id
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RedialCampaignRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignResponse'
          description: Successful Response
        '401':
          description: Missing, invalid, or expired credential.
        '403':
          description: >-
            The account lacks access to the workspace, resource, or required
            role.
        '404':
          description: Not found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
        - LabsAuth: []
components:
  schemas:
    RedialCampaignRequest:
      properties:
        name:
          anyOf:
            - maxLength: 255
              minLength: 1
              type: string
            - type: 'null'
          title: Name
        retry_config:
          anyOf:
            - $ref: '#/components/schemas/RetryConfigRequest'
            - type: 'null'
        retry_on_busy:
          default: true
          title: Retry On Busy
          type: boolean
        retry_on_no_answer:
          default: true
          title: Retry On No Answer
          type: boolean
        retry_on_voicemail:
          default: true
          title: Retry On Voicemail
          type: boolean
      title: RedialCampaignRequest
      type: object
    CampaignResponse:
      properties:
        circuit_breaker:
          anyOf:
            - $ref: '#/components/schemas/CircuitBreakerConfigResponse'
            - type: 'null'
        completed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Completed At
        created_at:
          format: date-time
          title: Created At
          type: string
        executed_count:
          default: 0
          title: Executed Count
          type: integer
        failed_rows:
          title: Failed Rows
          type: integer
        id:
          title: Id
          type: integer
        logs:
          items:
            $ref: '#/components/schemas/CampaignLogEntryResponse'
          title: Logs
          type: array
        max_concurrency:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Concurrency
        name:
          title: Name
          type: string
        parent_campaign_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Parent Campaign Id
        processed_rows:
          title: Processed Rows
          type: integer
        redialed_campaign_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Redialed Campaign Id
        retry_config:
          $ref: '#/components/schemas/RetryConfigResponse'
        schedule_config:
          anyOf:
            - $ref: '#/components/schemas/ScheduleConfigResponse'
            - type: 'null'
        source_id:
          title: Source Id
          type: string
        source_type:
          title: Source Type
          type: string
        started_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Started At
        state:
          title: State
          type: string
        telephony_configuration_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Telephony Configuration Id
        telephony_configuration_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Telephony Configuration Name
        total_queued_count:
          default: 0
          title: Total Queued Count
          type: integer
        total_rows:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Rows
        workflow_id:
          title: Workflow Id
          type: integer
        workflow_name:
          title: Workflow Name
          type: string
      required:
        - id
        - name
        - workflow_id
        - workflow_name
        - state
        - source_type
        - source_id
        - total_rows
        - processed_rows
        - failed_rows
        - created_at
        - started_at
        - completed_at
        - retry_config
      title: CampaignResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    RetryConfigRequest:
      properties:
        enabled:
          default: true
          title: Enabled
          type: boolean
        max_retries:
          default: 2
          maximum: 10
          minimum: 0
          title: Max Retries
          type: integer
        retry_delay_seconds:
          default: 120
          maximum: 3600
          minimum: 30
          title: Retry Delay Seconds
          type: integer
        retry_on_busy:
          default: true
          title: Retry On Busy
          type: boolean
        retry_on_no_answer:
          default: true
          title: Retry On No Answer
          type: boolean
        retry_on_voicemail:
          default: true
          title: Retry On Voicemail
          type: boolean
      title: RetryConfigRequest
      type: object
    CircuitBreakerConfigResponse:
      properties:
        enabled:
          default: false
          title: Enabled
          type: boolean
        failure_threshold:
          default: 0.5
          title: Failure Threshold
          type: number
        min_calls_in_window:
          default: 5
          title: Min Calls In Window
          type: integer
        window_seconds:
          default: 120
          title: Window Seconds
          type: integer
      title: CircuitBreakerConfigResponse
      type: object
    CampaignLogEntryResponse:
      properties:
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
        event:
          title: Event
          type: string
        level:
          title: Level
          type: string
        message:
          title: Message
          type: string
        ts:
          title: Ts
          type: string
      required:
        - ts
        - level
        - event
        - message
      title: CampaignLogEntryResponse
      type: object
    RetryConfigResponse:
      properties:
        enabled:
          title: Enabled
          type: boolean
        max_retries:
          title: Max Retries
          type: integer
        retry_delay_seconds:
          title: Retry Delay Seconds
          type: integer
        retry_on_busy:
          title: Retry On Busy
          type: boolean
        retry_on_no_answer:
          title: Retry On No Answer
          type: boolean
        retry_on_voicemail:
          title: Retry On Voicemail
          type: boolean
      required:
        - enabled
        - max_retries
        - retry_delay_seconds
        - retry_on_busy
        - retry_on_no_answer
        - retry_on_voicemail
      title: RetryConfigResponse
      type: object
    ScheduleConfigResponse:
      properties:
        enabled:
          title: Enabled
          type: boolean
        slots:
          items:
            $ref: '#/components/schemas/TimeSlotResponse'
          title: Slots
          type: array
        timezone:
          title: Timezone
          type: string
      required:
        - enabled
        - timezone
        - slots
      title: ScheduleConfigResponse
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    TimeSlotResponse:
      properties:
        day_of_week:
          title: Day Of Week
          type: integer
        end_time:
          title: End Time
          type: string
        start_time:
          title: Start Time
          type: string
      required:
        - day_of_week
        - start_time
        - end_time
      title: TimeSlotResponse
      type: object
  securitySchemes:
    LabsAuth:
      description: >-
        Bandwidth Labs OAuth access token. Uses the user's selected workspace;
        the workspace header is not required. Do not also send an API key.
        Bearer-only operations may additionally require the Labs `super_user`
        role.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.