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

# Start Campaign

> Initiates a new campaign with the specified configuration.

## Campaign Start Process

This endpoint starts a previously uploaded campaign by initiating outbound calls to all contacts in the specified campaign list.

<Warning>
  Before starting a campaign, ensure you have:

  * Uploaded a contact list using the campaign upload endpoint
  * Configured your agent with the appropriate prompts and settings
  * Set up valid from\_numbers that are provisioned for your workspace
</Warning>

## Request Parameters

| Parameter      | Type   | Required | Description                                         |
| -------------- | ------ | -------- | --------------------------------------------------- |
| `agent_id`     | string | ✅        | ID of the agent that will handle all campaign calls |
| `list_id`      | string | ✅        | ID of the uploaded campaign contact list            |
| `from_numbers` | array  | ✅        | Phone numbers to use for outbound calls             |

## Important Notes

* **Credits Required**: Ensure your workspace has sufficient credits for all contacts in the campaign
* **International Calls**: For international numbers, only Twilio from\_numbers are supported
* **Campaign Status**: Once started, the campaign status changes to "scheduled" or "ongoing"
* **Duplicate Prevention**: Cannot start a campaign that's already in "scheduled" or "ongoing" status

## Error Responses

* **400**: Invalid agent\_id, campaign not found, insufficient credits, or campaign already started
* **401**: Invalid or missing API key
* **404**: Campaign or agent not found
* **402**: Insufficient credits to initiate campaign


## OpenAPI

````yaml post /campaign/start
openapi: 3.0.0
info:
  title: Revenueable AI API Documentation
  description: >-
    This is the documentation for the Revenueable AI APIs. The Revenueable AI
    API follows RESTful principles, making it intuitive and easy to integrate
    with your applications. All API requests should be made to the base URL. The
    API accepts and returns data in JSON format. Ensure your requests include
    the appropriate Content-Type header for POST and PATCH requests.
  version: 2.0.0
servers:
  - url: https://prod-api.revenueable.ai/ca/api/v0
security: []
tags:
  - name: workspace
    description: Endpoints for managing your workspace.
  - name: agent
    description: Endpoints for managing assistants (agents).
  - name: calling
    description: Endpoints for making and managing calls.
  - name: campaign
    description: Endpoints for managing campaigns.
  - name: analytics
    description: Endpoints for accessing call analytics and performance metrics.
  - name: termination
    description: Endpoints for terminating active calls using different methods.
  - name: knowledgebase
    description: Endpoints for managing knowledge bases.
paths:
  /campaign/start:
    post:
      tags:
        - campaign
      summary: Start Campaign
      description: Initiates a new campaign with the specified configuration.
      operationId: startCampaign
      parameters:
        - name: X-API-KEY
          in: header
          description: (Required) Your Revenueable AI API key.
          required: true
          schema:
            type: string
            example: 7251cb4b-3373-43a4-844c-b27a1d45e0c9
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - agent_id
                - list_id
                - from_numbers
              properties:
                agent_id:
                  type: string
                  description: (Required) ID of the agent that will handle the calls.
                  example: 830f767a-397e-4b39-82ff-235cd344e2f9
                list_id:
                  type: string
                  description: (Required) ID of the uploaded campaign contact list.
                  example: 123e4567-e89b-12d3-a456-426614174000
                from_numbers:
                  type: array
                  description: (Required) Array of phone numbers to use for outbound calls.
                  items:
                    type: string
                  example:
                    - '+1234567890'
                    - '+0987654321'
              example:
                agent_id: 830f767a-397e-4b39-82ff-235cd344e2f9
                list_id: 123e4567-e89b-12d3-a456-426614174000
                from_numbers:
                  - '+1234567890'
      responses:
        '200':
          description: Campaign started successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Success message indicating campaign registration
                    example: campaign registered successfully!
                  has_ongoing_calls:
                    type: boolean
                    description: Whether the workspace has other ongoing calls
                    example: false
                example:
                  status: campaign registered successfully!
                  has_ongoing_calls: false
        '400':
          description: Bad Request - Invalid input.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Invalid agent_id.
        '401':
          description: Unauthorized - Invalid or missing authentication.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Invalid credentials
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: An unexpected error occurred.

````