---
title: "Get a campaign by ID"
method: GET
path: "/v1/voice-agents/campaigns/{id}"
---

# Get a campaign by ID

`GET /v1/voice-agents/campaigns/{id}`

Retrieves a specific campaign by ID with recipients grouped by status (pending, queued, in-progress, completed, failed, no-answer).

## Path parameters

- `id` string, uuid, required

## Response `200`

Successful response

- GetCampaignResponse
  - `success` boolean
  - `message` string
  - `messageKey` string
  - `data` object
    - `id` string, uuid
    - `name` string
    - `status` 'SCHEDULED' | 'RUNNING' | 'PAUSED' | 'COMPLETED' | 'CANCELLED'
    - `sendType` 'NOW' | 'SCHEDULED'
    - `scheduledDate` string, date-time, nullable
    - `scheduledTimezone` string, nullable
    - `timeRange` object, nullable
      - `days` string[]
      - `startCallingTime` string
      - `endCallingTime` string
    - `reservedConcurrency` integer
    - `projectId` string, uuid
    - `voiceAgentId` string, uuid
    - `totalRecipients` integer — Total number of recipients in the campaign
    - `agentName` string, nullable
    - `recipients` object — Recipients grouped by status
      - `pending` CampaignRecipient[]
        - `id` string, uuid
        - `campaignId` string, uuid
        - `phoneNumber` string
        - `name` string, nullable
        - `ignoreE164Validation` boolean, nullable
        - `dynamicVariables` object, nullable — Additional custom variables for this recipient
        - `status` 'PENDING' | 'QUEUED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'NO_ANSWER'
        - `latestActionTimestamp` string, date-time
        - `attempts` integer — Number of call attempts made
        - `maxAttempts` integer — Maximum number of call attempts allowed
        - `nextRetryAt` string, date-time, nullable
        - `jobId` string, uuid, nullable
        - `lastError` string, nullable
        - `completedAt` string, date-time, nullable
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
      - `queued` CampaignRecipient[]
        - `id` string, uuid
        - `campaignId` string, uuid
        - `phoneNumber` string
        - `name` string, nullable
        - `ignoreE164Validation` boolean, nullable
        - `dynamicVariables` object, nullable — Additional custom variables for this recipient
        - `status` 'PENDING' | 'QUEUED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'NO_ANSWER'
        - `latestActionTimestamp` string, date-time
        - `attempts` integer — Number of call attempts made
        - `maxAttempts` integer — Maximum number of call attempts allowed
        - `nextRetryAt` string, date-time, nullable
        - `jobId` string, uuid, nullable
        - `lastError` string, nullable
        - `completedAt` string, date-time, nullable
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
      - `inProgress` CampaignRecipient[]
        - `id` string, uuid
        - `campaignId` string, uuid
        - `phoneNumber` string
        - `name` string, nullable
        - `ignoreE164Validation` boolean, nullable
        - `dynamicVariables` object, nullable — Additional custom variables for this recipient
        - `status` 'PENDING' | 'QUEUED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'NO_ANSWER'
        - `latestActionTimestamp` string, date-time
        - `attempts` integer — Number of call attempts made
        - `maxAttempts` integer — Maximum number of call attempts allowed
        - `nextRetryAt` string, date-time, nullable
        - `jobId` string, uuid, nullable
        - `lastError` string, nullable
        - `completedAt` string, date-time, nullable
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
      - `completed` CampaignRecipient[]
        - `id` string, uuid
        - `campaignId` string, uuid
        - `phoneNumber` string
        - `name` string, nullable
        - `ignoreE164Validation` boolean, nullable
        - `dynamicVariables` object, nullable — Additional custom variables for this recipient
        - `status` 'PENDING' | 'QUEUED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'NO_ANSWER'
        - `latestActionTimestamp` string, date-time
        - `attempts` integer — Number of call attempts made
        - `maxAttempts` integer — Maximum number of call attempts allowed
        - `nextRetryAt` string, date-time, nullable
        - `jobId` string, uuid, nullable
        - `lastError` string, nullable
        - `completedAt` string, date-time, nullable
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
      - `failed` CampaignRecipient[]
        - `id` string, uuid
        - `campaignId` string, uuid
        - `phoneNumber` string
        - `name` string, nullable
        - `ignoreE164Validation` boolean, nullable
        - `dynamicVariables` object, nullable — Additional custom variables for this recipient
        - `status` 'PENDING' | 'QUEUED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'NO_ANSWER'
        - `latestActionTimestamp` string, date-time
        - `attempts` integer — Number of call attempts made
        - `maxAttempts` integer — Maximum number of call attempts allowed
        - `nextRetryAt` string, date-time, nullable
        - `jobId` string, uuid, nullable
        - `lastError` string, nullable
        - `completedAt` string, date-time, nullable
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
      - `noAnswer` CampaignRecipient[]
        - `id` string, uuid
        - `campaignId` string, uuid
        - `phoneNumber` string
        - `name` string, nullable
        - `ignoreE164Validation` boolean, nullable
        - `dynamicVariables` object, nullable — Additional custom variables for this recipient
        - `status` 'PENDING' | 'QUEUED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'NO_ANSWER'
        - `latestActionTimestamp` string, date-time
        - `attempts` integer — Number of call attempts made
        - `maxAttempts` integer — Maximum number of call attempts allowed
        - `nextRetryAt` string, date-time, nullable
        - `jobId` string, uuid, nullable
        - `lastError` string, nullable
        - `completedAt` string, date-time, nullable
        - `createdAt` string, date-time
        - `updatedAt` string, date-time
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400` — Validation/Bad request error response
- `401` — Unauthorized
- `404` — Campaign not found
- `500` — Server Side Error

---

[API](https://skmtc.net/tryhamsa/apis/hamsa-api.md) · [All operations](https://skmtc.net/tryhamsa/apis/hamsa-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tryhamsa/hamsa-api/versions/ecbeb5d8dc13/schema)
