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

# Start Workflow Campaign API

> Start dialing a campaign's pending entries. Requires at least one pending entry; repeating the call is a no-op.

<Warning>
  If the pinned definition contains an agent node, starting the campaign places real calls to every pending entry.
</Warning>


## OpenAPI

````yaml POST /workflow-campaigns/{campaign_id}:start
openapi: 3.1.0
info:
  title: Bolna API
  description: >-
    Use and leverage Bolna Voice AI using APIs through HTTP requests from any
    language in your applications and workflows.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.bolna.ai
    description: Production server
security:
  - bearerAuth: []
paths:
  /workflow-campaigns/{campaign_id}:start:
    post:
      description: >-
        Starts dialing a batch campaign's pending entries. The campaign must be
        `draft` or `scheduled` and hold at least one pending entry. Idempotent —
        repeating the call is a no-op.
      parameters:
        - in: path
          name: campaign_id
          required: true
          schema:
            type: string
            format: uuid
          description: The unique `id` of the campaign
      requestBody:
        description: Empty JSON object.
        content:
          application/json:
            schema:
              type: object
        required: true
      responses:
        '200':
          description: Campaign started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowCampaignStatusResponse'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowError'
        '409':
          description: >-
            `invalid_state` — no pending entries, or the campaign already
            started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowError'
components:
  schemas:
    WorkflowCampaignStatusResponse:
      type: object
      required:
        - status
      properties:
        status:
          type: string
          enum:
            - draft
            - scheduled
            - running
            - paused
            - completed
            - aborted
          description: The campaign status after the action.
    WorkflowError:
      type: object
      description: >-
        Error envelope returned by every workflow endpoint. `detail.code` is a
        stable machine-readable code; extra keys (such as `current_revision` on
        `revision_conflict`, `execution_id` on `duplicate_run`, or `issues` on
        `invalid_definition`) ride alongside it.
      required:
        - detail
      properties:
        detail:
          type: object
          additionalProperties: true
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Machine-readable error code.
              example: revision_conflict
            message:
              type: string
              description: Human-readable explanation.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````