---
title: "List outreach campaigns of every kind on the Campaigns page, each with its kind (archived ones on request)"
method: GET
path: "/campaigns"
tags: ["campaigns"]
---

# List outreach campaigns of every kind on the Campaigns page, each with its kind (archived ones on request)

`GET /campaigns`

## Request

- Base URL: `https://www.dench.com/api/v1`
- URL: `https://www.dench.com/api/v1/campaigns`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

List outreach campaigns of every kind on the Campaigns page, each with its kind (archived ones on request).

## Query parameters

- `withReferences` boolean: Include bounded navigation references. Array reads return {data, references, referenceCoverage}; existing result envelopes keep their fields.
- `includeArchived` boolean: Include archived campaigns.

## Response `200`

Successful response

- union
  - union[]
    - union
      - object
        - `_id` string, required
        - `name` string, required
        - `status` 'draft' | 'active' | 'paused' | 'completed' | 'archived', required: Campaign lifecycle status.
        - `stopOnReply` boolean, required
        - `emailMailboxAccountIds` string[]: Campaign email sender pool: up to 50 emailMailboxAccounts ids both you and the campaign owner may use. Omit to preserve existing configuration; [] clears the pool. A person's sender stays fixed for their conversation. Launch validates sender availability.
        - `linkedinAccountIds` string[]: Campaign LinkedIn sender pool: up to 50 linkedinAccounts ids both you and the campaign owner may use. Omit to preserve existing configuration; [] clears the pool. Legacy step senders remain until a pool is configured.
        - `timezone` string
        - `startsAt` number
        - `endsAt` number
        - `sendSchedules` object[]
          - `name` string, required: Label, e.g. "Mon-Fri 9-18".
          - `timezone` string, required: IANA timezone, e.g. America/Los_Angeles.
          - `startHour` integer, required: First hour sends may go out (0-23).
          - `endHour` integer, required: Hour sends stop (1-24); must be after startHour.
          - `weekdays` integer[], required: Days sends may go out: 0 = Sunday ... 6 = Saturday.
        - `dailySendCap` number
        - `stepCount` number, required
        - `stepModel` 'linear' | 'workflow': linear: steps run in order. workflow: steps have keys and paths (next, yesNext, noNext) and may include condition and wait_for_connection. Left out, a workflow stays one and steps with keys, paths or those types make one; nothing turns a workflow back into a list.
        - `totalEnrolled` number, required
        - `activeCount` number, required
        - `pausedCount` number, required
        - `finishedCount` number, required
        - `repliedCount` number, required
        - `failedCount` number, required
        - `stoppedCount` number, required
        - `launchedAt` number
        - `ownerName` string
        - `isOwner` boolean
        - `createdAt` number, required
        - `updatedAt` number, required
        - `kind` 'multichannel', required: Read with campaigns.get.
      - object
        - `_id` string, required
        - `kind` 'email_sequence', required: Read with email.sequence.get.
        - `name` string, required
        - `status` 'draft' | 'active' | 'archived', required
        - `stepCount` number, required
        - `totalEnrolled` number, required
        - `createdAt` number, required
        - `updatedAt` number, required
      - object
        - `_id` string, required
        - `kind` 'linkedin_sequence', required: A legacy LinkedIn-only sequence, opened in the app.
        - `name` string, required
        - `status` 'draft' | 'active' | 'paused' | 'completed' | 'cancelled' | 'archived', required
        - `ownerName` string
        - `isOwner` boolean
        - `createdAt` number, required
        - `updatedAt` number, required
  - object
    - `data` union[], required
      - union
        - object
          - `_id` string, required
          - `name` string, required
          - `status` 'draft' | 'active' | 'paused' | 'completed' | 'archived', required: Campaign lifecycle status.
          - `stopOnReply` boolean, required
          - `emailMailboxAccountIds` string[]: Campaign email sender pool: up to 50 emailMailboxAccounts ids both you and the campaign owner may use. Omit to preserve existing configuration; [] clears the pool. A person's sender stays fixed for their conversation. Launch validates sender availability.
          - `linkedinAccountIds` string[]: Campaign LinkedIn sender pool: up to 50 linkedinAccounts ids both you and the campaign owner may use. Omit to preserve existing configuration; [] clears the pool. Legacy step senders remain until a pool is configured.
          - `timezone` string
          - `startsAt` number
          - `endsAt` number
          - `sendSchedules` object[]
            - `name` string, required: Label, e.g. "Mon-Fri 9-18".
            - `timezone` string, required: IANA timezone, e.g. America/Los_Angeles.
            - `startHour` integer, required: First hour sends may go out (0-23).
            - `endHour` integer, required: Hour sends stop (1-24); must be after startHour.
            - `weekdays` integer[], required: Days sends may go out: 0 = Sunday ... 6 = Saturday.
          - `dailySendCap` number
          - `stepCount` number, required
          - `stepModel` 'linear' | 'workflow': linear: steps run in order. workflow: steps have keys and paths (next, yesNext, noNext) and may include condition and wait_for_connection. Left out, a workflow stays one and steps with keys, paths or those types make one; nothing turns a workflow back into a list.
          - `totalEnrolled` number, required
          - `activeCount` number, required
          - `pausedCount` number, required
          - `finishedCount` number, required
          - `repliedCount` number, required
          - `failedCount` number, required
          - `stoppedCount` number, required
          - `launchedAt` number
          - `ownerName` string
          - `isOwner` boolean
          - `createdAt` number, required
          - `updatedAt` number, required
          - `kind` 'multichannel', required: Read with campaigns.get.
        - object
          - `_id` string, required
          - `kind` 'email_sequence', required: Read with email.sequence.get.
          - `name` string, required
          - `status` 'draft' | 'active' | 'archived', required
          - `stepCount` number, required
          - `totalEnrolled` number, required
          - `createdAt` number, required
          - `updatedAt` number, required
        - object
          - `_id` string, required
          - `kind` 'linkedin_sequence', required: A legacy LinkedIn-only sequence, opened in the app.
          - `name` string, required
          - `status` 'draft' | 'active' | 'paused' | 'completed' | 'cancelled' | 'archived', required
          - `ownerName` string
          - `isOwner` boolean
          - `createdAt` number, required
          - `updatedAt` number, required
    - `references` union[], required
      - union
        - object
          - `kind` 'crm-entry', required
          - `objectName` string, required
          - `entryId` string, required
          - `label` string, required
          - `href` string, required
          - `url` string
          - `imageUrl` string
          - `objectIcon` string
        - object
          - `kind` 'crm-object', required
          - `objectName` string, required
          - `label` string, required
          - `href` string, required
          - `url` string
          - `imageUrl` string
          - `objectIcon` string
        - object
          - `kind` 'campaign', required
          - `sequenceId` string, required
          - `label` string, required
          - `href` string, required
          - `url` string
          - `imageUrl` string
          - `objectIcon` string
    - `referenceCoverage` object, required
      - `returned` integer, required
      - `available` integer, required
      - `truncated` boolean, required

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid authentication
- `404`: Operation or resource not found
- `500`: Server error

---

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