---
title: "GET /v1/external/campaigns/{agent_id}"
method: GET
path: "/v1/external/campaigns/{agent_id}"
---

# GET /v1/external/campaigns/{agent_id}

`GET /v1/external/campaigns/{agent_id}`

Lists outbound campaigns for the specified agent.

## Path parameters

- `agent_id` string, uuid, required

## Query parameters

- `page` integer
- `page_size` integer
- `search` string
- `status` CampaignStatus[]
- `sort_by` string
- `sort_dir` 'asc' | 'desc'

## Response `200`

Campaigns fetched successfully

- ListCampaignsResponse
  - `message` string, required
  - `data` object, required
    - `campaigns` Campaign[], required
      - `id` string, uuid
      - `name` string
      - `agent_id` string, uuid
      - `agent_name` string — Agent name, included on responses that join campaign and agent details.
      - `status` 'DRAFT' | 'SCHEDULED' | 'IN_PROGRESS' | 'PAUSED' | 'FINISHED' | 'FAILED' | 'CANCELLED'
      - `retry_config` RetryConfig — Optional retry behavior for campaign calls. Retries are attempted when a call ends with one of the statuses listed in `retry_on`.
        - `max_retries` integer — Maximum retry attempts per recipient call. Must be between 1 and 5 when retry_config is provided.
        - `retry_delay_minutes` integer — Delay in minutes before each retry attempt. Must be between 1 and 1440.
        - `retry_on` string[] — Call statuses that should trigger a retry.
      - `call_stats` CampaignCallStats
        - `total` integer
        - `finished` integer
        - `pending` integer
        - `unanswered` integer
        - `failed` integer
        - `total_duration` string — Human-readable total call duration.
      - `created_at` string, date-time
      - `updated_at` string, date-time
    - `page` integer, required
    - `page_size` integer, required
    - `total` integer, required

## Other responses

- `400` — Bad request
- `404` — Resource not found or does not belong to your organization
- `500` — Internal server error

## Changes

- **2026-05-27** `15c9445bbca8` — 1 warning
  - for the `query` request parameter `page_size`, the max was set to `100.00`
- **2026-05-27** `b9d6c9669dfa` — 3 warning, 3 info
  - removed the optional property `data/campaigns/items/cps` from the response with the `200` status
  - removed the optional property `data/campaigns/items/metadata` from the response with the `200` status
  - removed the optional property `data/campaigns/items/schedule_config` from the response with the `200` status
  - added the optional property `data/campaigns/items/retry_config/max_retries` to the response with the `200` status
  - …2 more
- **2026-05-26** `c05ce18c8419` — 1 info
  - endpoint added
- **2026-02-03** `919eb7a392aa` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/i-stem/apis/samora-ai-api/changes/v1/external/campaigns/:agent_id/get.md)

---

[API](https://skmtc.dev/i-stem/apis/samora-ai-api.md) · [All operations](https://skmtc.dev/i-stem/apis/samora-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/i-stem/samora-ai-api/revisions/cb390cb388d1/schema)
