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

> ## Agent Instructions
> To search or read these docs, connect the Ringg docs MCP server at https://docs.ringg.ai/mcp (no key needed; tools search_ringg_ai and query_docs_filesystem_ringg_ai) instead of browsing pages one by one. Setup for each client: https://docs.ringg.ai/resources/mcp-server/docs-mcp-server/mcp-for-ai-assistants.md
> The dashboard labels agents "Assistants"; these docs say "agent". Both mean the same object, identified by agent_id.
> API base URL: https://prod-api.ringg.ai/ca/api/v0. Send the workspace API key in the X-API-KEY header, from server-side code only.
> Placing a call dials a real phone number and spends credits. Confirm the number with the user before calling.
> To act on a Ringg workspace (place calls, edit agents, read transcripts), use the separate Ringg workspace MCP server at https://mcp.ringg.ai/mcp: https://docs.ringg.ai/resources/mcp-server/workspace-mcp-server/overview.md

> List the campaigns in your workspace with their status, schedule and contact counts, to follow each campaign from upload to completion.

# Get All Campaigns

export const RelatedTopics = ({items}) => <div className="not-prose mt-12">
    <div className="text-sm font-medium text-gray-500 dark:text-zinc-400 mb-3">Related topics</div>
    <div className="flex flex-col gap-2.5">
      {items.map(([title, href]) => <a key={href} href={href} className="flex items-center gap-2.5 text-sm text-gray-700 hover:text-gray-950 dark:text-zinc-300 dark:hover:text-white">
          <Icon icon="file-text" size={16} color="currentColor" />
          {title}
        </a>)}
    </div>
  </div>;

A campaign's `id` is the `list_id` or `bulk_list_id` returned when its list was uploaded, so you can match rows to the campaigns you created.

## Statuses

| `campaign_status` | Meaning |
| - | - |
| `verifying` | The uploaded list is being validated |
| `draft` | Validated, calls not started |
| `insufficient_balance` | The workspace balance does not cover the list. Listing the campaigns re-checks it and moves it back to `draft` once the balance covers it |
| `preparing` | Launched; calls are being prepared |
| `scheduled` | Calls are waiting for the start time |
| `ongoing` | Calls are being placed |
| `completed` | The campaign has finished |
| `terminated` | Stopped with [Terminate calls](/api-reference/calling/campaigns/stop-campaign) |
| `no_valid_contacts` | Every row in the list was invalid |
| `failed` | The list or the launch failed |
| `processing` | A workflow campaign is being prepared |
| `null` | The row is a list that is not a campaign, such as a contact list |

## Notes

* `limit` defaults to `10`; page with `offset`.
* `total_calls` is the number of valid contacts loaded from the list, not the number of calls placed. It is `0` until the list has been validated. `invalidated_rows_count` is the number of rows dropped as invalid.
* Rows in `insufficient_balance` also carry `additional_balance_required`, the extra balance needed, as a decimal string.
* For the calls inside one campaign, use [call history](/api-reference/monitoring/call-history/get-call-history) with `bulk_list_id`.

<RelatedTopics items={[["Monitor a campaign", "/documentation/deploy/campaigns/manage-a-campaign"]]} />


## OpenAPI

````yaml get /campaign/all
openapi: 3.0.0
info:
  title: Ringg AI API Documentation
  description: >-
    The Ringg AI REST API. Base URL https://prod-api.ringg.ai/ca/api/v0; send
    your workspace API key in the X-API-KEY header from server-side code only.
    Requests and responses are JSON.
  version: 2.0.0
  contact:
    name: Ringg AI support
    email: admin@ringg.ai
    url: https://docs.ringg.ai
servers:
  - url: https://prod-api.ringg.ai/ca/api/v0
security: []
tags:
  - name: workspace
    description: Endpoints for managing your workspace.
  - name: agent
    description: Endpoints for managing 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/all:
    get:
      tags:
        - campaign
      summary: Get All Campaigns
      description: >-
        Retrieves the campaigns in the workspace, newest first, with paging.
        Lists that are not campaigns, such as contact lists, are also returned,
        with `campaign_status` `null`. A campaign in `insufficient_balance` that
        the balance now covers is moved back to `draft` when it is listed.
      operationId: getAllCampaigns
      parameters:
        - name: X-API-KEY
          in: header
          description: (Required) Your Ringg AI API key.
          required: true
          schema:
            type: string
            example: rg_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        - name: limit
          in: query
          description: 'Maximum number of campaigns to return (default: 10).'
          required: false
          schema:
            type: integer
            default: 10
        - name: offset
          in: query
          description: 'Number of campaigns to skip for pagination (default: 0).'
          required: false
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of campaigns retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  campaigns:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Campaign unique identifier
                          example: 550e8400-e29b-41d4-a716-446655440000
                        name:
                          type: string
                          description: Campaign name
                          example: Q4 Sales Campaign
                        campaign_status:
                          type: string
                          nullable: true
                          description: >-
                            `verifying`: the uploaded list is being checked.
                            `draft`: checked, calls not started.
                            `insufficient_balance`: the balance does not cover
                            the list. `no_valid_contacts`: every row was
                            invalid. `preparing`: launched, calls are being
                            created. `scheduled`: waiting for the start time.
                            `ongoing`: calls are being placed. `completed`:
                            finished. `terminated`: stopped with Terminate
                            calls. `failed`: the list or the launch failed.
                            `processing`: a workflow campaign being prepared.
                            `null`: a list that is not a campaign.
                          enum:
                            - verifying
                            - draft
                            - insufficient_balance
                            - no_valid_contacts
                            - preparing
                            - processing
                            - scheduled
                            - ongoing
                            - completed
                            - terminated
                            - failed
                          example: completed
                        created_at:
                          type: string
                          format: date-time
                          description: Campaign creation timestamp
                          example: '2024-01-15T14:30:00Z'
                        updated_at:
                          type: string
                          format: date-time
                          description: Campaign last update timestamp
                          example: '2024-01-15T16:45:00Z'
                        campaign_start_time:
                          type: string
                          format: date-time
                          description: Scheduled start time for the campaign
                          example: '2024-01-16T09:00:00Z'
                        campaign_end_time:
                          type: string
                          format: date-time
                          description: Scheduled end time for the campaign
                          example: '2024-01-16T17:00:00Z'
                        agent_id:
                          type: string
                          description: Agent the campaign calls with
                          example: 00000000-0000-4000-8000-0000000000a1
                        total_calls:
                          type: integer
                          description: >-
                            Number of valid contacts loaded from the list, not
                            calls placed. `0` until the list has been checked.
                          example: 150
                        invalidated_rows_count:
                          type: integer
                          description: Rows dropped as invalid
                          example: 2
                        additional_balance_required:
                          type: string
                          description: >-
                            Only on `insufficient_balance` rows: the extra
                            balance needed, as a decimal string.
                          example: '1250.00'
                  pagination:
                    type: object
                    properties:
                      total:
                        type: integer
                        description: Total number of campaigns available
                        example: 25
                      limit:
                        type: integer
                        description: Number of campaigns requested per page
                        example: 10
                      offset:
                        type: integer
                        description: Number of campaigns skipped
                        example: 0
        '401':
          description: Unauthorized - Invalid or missing authentication.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Invalid credentials
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: An unexpected error occurred. Please try again later.

````

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