---
title: "List campaign jobs"
method: GET
path: "/campaign/{campaignId}/jobs"
tags: ["Campaign Jobs"]
---

# List campaign jobs

`GET /campaign/{campaignId}/jobs`

## Request

- Base URL: `https://app.freyavoice.ai/api/v2`
- URL: `https://app.freyavoice.ai/api/v2/campaign/{campaignId}/jobs`
- Auth: HTTP bearer

Returns all jobs for a campaign including timeline visualization data, retry connections, and statistics.

## Path parameters

- `campaignId` string, uuid, required: Campaign ID

## Query parameters

- `workspaceId` string, uuid, required: Workspace ID

## Response `200`

Campaign jobs with timeline data

- object
  - `success` true, required
  - `data` object, required
    - `message` string, required
    - `result` CampaignJobsResponse, required
      - `jobs` JobTimelineEntry[], required
        - `id` string, required
        - `phoneNumber` string, required
        - `scheduledAt` string, date-time, required
        - `startedAt` string, date-time, nullable, required
        - `jobStatus` 'pending' | 'claimed' | 'running' | 'completed' | 'failed' | 'cancelled', required
        - `jobType` string, required
        - `attemptNumber` number, required
        - `lastError` string
        - `result` object, nullable
          - `outcome` 'pending' | 'in_progress' | 'success' | 'failed' | 'canceled' | 'rescheduled' | 'human_callback_requested' | 'skipped' | 'verification_pending'
          - `call_id` string
          - `willRetry` boolean
          - `failureCategory` string
          - `retriesRemaining` number
          - `retryScheduledAt` string
          - `error` string
          - `reason` string
          - `message` string
        - `callEndedAt` string, date-time, nullable, required
        - `callDurationSeconds` number, nullable, required
      - `retryConnections` object[], required
        - `fromJobId` string, required
        - `toJobId` string, required
        - `phoneNumber` string, required
      - `queuedCount` number, required: Number of jobs not yet started
      - `timeRange` object, required
        - `startDate` string, nullable, required
        - `endDate` string, nullable, required
        - `startTime` string, nullable, required
        - `endTime` string, nullable, required
        - `timezone` string, required
        - `firstJob` string, nullable, required
        - `lastJob` string, nullable, required
      - `stats` object, required
        - `total` number, required
        - `pending` number, required
        - `running` number, required
        - `completed` number, required
        - `failed` number, required
        - `cancelled` number, required

## Other responses

- `400`: Validation error
- `401`: Missing or invalid token
- `404`: Campaign not found
- `500`: Server error

---

[API](https://skmtc.dev/freyavoice/apis/freyavoice-api.md) - [All operations](https://skmtc.dev/freyavoice/apis/freyavoice-api/llms.txt) - [OpenAPI document](https://skmtc.dev/freyavoice/apis/freyavoice-api/revisions/153d120f0c73?raw)
