---
title: "Retrieve all campaigns"
method: GET
path: "/campaign"
tags: ["Campaigns"]
---

# Retrieve all campaigns

`GET /campaign`

Get all campaigns for the authenticated organization.

## Query parameters

- `page` integer
- `offset` integer
- `status` 'draft' | 'scheduled' | 'processing' | 'running' | 'paused' | 'completed' | 'failed'
- `search` string
- `sortField` 'createdAt' | 'updatedAt'
- `sortOrder` 'asc' | 'desc'

## Response `200`

A list of campaigns

- object
  - `status` boolean
  - `data` object
    - `campaigns` object[]
      - `_id` string — The unique identifier for the campaign
      - `name` string — The name of the campaign
      - `description` string — The description of the campaign
      - `organization` string — The ID of the organization
      - `agent` object — The agent assigned to this campaign
        - `_id` string
        - `name` string
        - `workflowType` string
      - `audience` object — The audience assigned to this campaign
        - `_id` string
        - `name` string
      - `createdBy` string — The ID of the user who created the campaign
      - `participantsCount` integer — The number of participants in the campaign
      - `status` 'draft' | 'scheduled' | 'processing' | 'running' | 'paused' | 'completed' | 'failed' — Current status of the campaign
      - `maxRetries` integer — Maximum retry attempts per failed call
      - `retryDelay` integer — Delay in minutes between retry attempts
      - `retryAttempts` integer — Total retry attempts made so far
      - `scheduledAt` string, date-time
      - `pausedAt` string, date-time
      - `cancelledCallsCount` integer
      - `createdAt` string, date-time — The date and time when the campaign was created
      - `updatedAt` string, date-time — The date and time when the campaign was last updated
    - `pagination` object
      - `total` integer
      - `page` integer
      - `offset` integer
      - `hasMore` boolean
      - `totalPages` integer
    - `totalCampaignCount` integer — Total number of campaigns in the organization (unfiltered)

## Other responses

- `400` — Invalid input
- `401` — Unauthorized access
- `500` — Internal server error

## Changes

> 49 revisions in range; 36 could not be searched.

- **2026-05-26** `d0c211a56a23` — 1 breaking, 4 warning, 17 info
  - removed the request body
  - removed the optional property `data/campaigns/items/agentId` from the response with the `200` status
  - removed the optional property `data/campaigns/items/audienceId` from the response with the `200` status
  - removed the optional property `data/campaigns/items/isCampaignCompleted` from the response with the `200` status
  - …18 more

[Change history](https://skmtc.dev/smallest-inc/apis/agent-management-api/changes/campaign/get.md)

---

[API](https://skmtc.dev/smallest-inc/apis/agent-management-api.md) · [All operations](https://skmtc.dev/smallest-inc/apis/agent-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/smallest-inc/agent-management-api/revisions/274a178284a4/schema)
