> ## Documentation Index
> Fetch the complete documentation index at: https://dench.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Read a campaign: settings, steps, people, their current step and hold, last touches, linked leads

> Read a campaign: settings, steps, people, their current step and hold, last touches, linked leads.



## OpenAPI

````yaml /api-reference/openapi.json get /campaigns/{sequenceId}
openapi: 3.1.0
info:
  title: Dench API
  version: 1.0.0
  description: >-
    Versioned Dench workspace API. The operation registry is shared with the
    Dench CLI parity layer, so every CLI command maps to an endpoint here.
servers:
  - url: https://www.dench.com/api/v1
security: []
tags:
  - name: agent-config
    description: Agent Config operations.
  - name: approvals
    description: Approvals operations.
  - name: apps
    description: Apps operations.
  - name: auth
    description: Auth operations.
  - name: billing
    description: Billing operations.
  - name: browser
    description: Browser operations.
  - name: campaigns
    description: Campaigns operations.
  - name: chat
    description: Chat operations.
  - name: crm
    description: Crm operations.
  - name: email
    description: Email operations.
  - name: files
    description: Files operations.
  - name: gateway
    description: Gateway operations.
  - name: lists
    description: Lists operations.
  - name: local
    description: Local operations.
  - name: meetings
    description: Meetings operations.
  - name: members
    description: Members operations.
  - name: memory
    description: Memory operations.
  - name: meta
    description: Meta operations.
  - name: notifications
    description: Notifications operations.
  - name: routines
    description: Routines operations.
  - name: workspace
    description: Workspace operations.
paths:
  /campaigns/{sequenceId}:
    get:
      tags:
        - campaigns
      summary: >-
        Read a campaign: settings, steps, people, their current step and hold,
        last touches, linked leads
      description: >-
        Read a campaign: settings, steps, people, their current step and hold,
        last touches, linked leads.
      operationId: campaigns_get
      parameters:
        - name: sequenceId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      sequence:
                        type: object
                        properties:
                          _id:
                            type: string
                          name:
                            type: string
                          status:
                            type: string
                            enum:
                              - draft
                              - active
                              - paused
                              - completed
                              - archived
                            description: Campaign lifecycle status.
                          stopOnReply:
                            type: boolean
                          emailMailboxAccountIds:
                            description: >-
                              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.
                            maxItems: 50
                            type: array
                            items:
                              type: string
                              minLength: 1
                          linkedinAccountIds:
                            description: >-
                              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.
                            maxItems: 50
                            type: array
                            items:
                              type: string
                              minLength: 1
                          timezone:
                            type: string
                          startsAt:
                            type: number
                          endsAt:
                            type: number
                          sendSchedules:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                  description: Label, e.g. "Mon-Fri 9-18".
                                timezone:
                                  type: string
                                  description: IANA timezone, e.g. America/Los_Angeles.
                                startHour:
                                  type: integer
                                  minimum: 0
                                  maximum: 23
                                  description: First hour sends may go out (0-23).
                                endHour:
                                  type: integer
                                  minimum: 1
                                  maximum: 24
                                  description: >-
                                    Hour sends stop (1-24); must be after
                                    startHour.
                                weekdays:
                                  minItems: 1
                                  type: array
                                  items:
                                    type: integer
                                    minimum: 0
                                    maximum: 6
                                  description: >-
                                    Days sends may go out: 0 = Sunday ... 6 =
                                    Saturday.
                              required:
                                - name
                                - timezone
                                - startHour
                                - endHour
                                - weekdays
                              additionalProperties: false
                              description: >-
                                One send window. A campaign has one to eight;
                                the first one's timezone is the campaign's.
                          dailySendCap:
                            type: number
                          stepCount:
                            type: number
                          totalEnrolled:
                            type: number
                          activeCount:
                            type: number
                          pausedCount:
                            type: number
                          finishedCount:
                            type: number
                          repliedCount:
                            type: number
                          failedCount:
                            type: number
                          stoppedCount:
                            type: number
                          launchedAt:
                            type: number
                          ownerName:
                            type: string
                          isOwner:
                            type: boolean
                          createdAt:
                            type: number
                          updatedAt:
                            type: number
                        required:
                          - _id
                          - name
                          - status
                          - stopOnReply
                          - stepCount
                          - totalEnrolled
                          - activeCount
                          - pausedCount
                          - finishedCount
                          - repliedCount
                          - failedCount
                          - stoppedCount
                          - createdAt
                          - updatedAt
                        additionalProperties: {}
                      steps:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - email
                                - wait
                                - linkedin_visit
                                - linkedin_connection
                                - linkedin_message
                              description: Step type.
                            waitHours:
                              description: 'wait steps: hours to wait before the next step.'
                              type: number
                            emailMailboxAccountId:
                              description: >-
                                Legacy email step sender. Pool campaigns choose
                                senders in emailMailboxAccountIds on the
                                campaign, not on individual steps.
                              type: string
                            emailSubject:
                              description: >-
                                email steps: subject; {{Column}} merge tokens
                                allowed.
                              type: string
                            emailHtmlBody:
                              type: string
                            emailTextBody:
                              type: string
                            emailReplyToPrevious:
                              description: >-
                                email steps: thread under the previous email
                                step instead of a new subject.
                              type: boolean
                            onlyIf:
                              description: >-
                                Run this step only when the person is / is not a
                                LinkedIn connection.
                              type: string
                              enum:
                                - always
                                - connected
                                - not_connected
                            linkedinAccountId:
                              description: >-
                                Legacy LinkedIn step sender. Pool campaigns use
                                the campaign's linkedinAccountIds instead.
                              type: string
                            linkedinMessageBody:
                              description: >-
                                linkedin_connection: the invite note (optional);
                                linkedin_message: the message (up to 3000
                                chars).
                              type: string
                            linkedinMessageMode:
                              description: >-
                                linkedin_message: what to do when the invite is
                                still pending.
                              type: string
                              enum:
                                - skip_if_not_connected
                                - wait_until_connected
                            connectionTimeoutHours:
                              description: >-
                                linkedin_message with
                                linkedinMessageMode=wait_until_connected: give
                                up waiting for the accept after this many hours
                                (default 720).
                              type: number
                          required:
                            - type
                          additionalProperties: {}
                      enrollments:
                        type: array
                        items:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties: {}
                      currentRuns:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                        description: >-
                          enrollmentId -> the step run in progress, its hold and
                          LinkedIn action.
                      lastTouches:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          type: object
                          properties:
                            type:
                              type: string
                            at:
                              type: number
                          required:
                            - type
                            - at
                          additionalProperties: false
                      connectedEntries:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                        description: enrollmentId -> linked CRM record and lead status.
                      connectedFieldNames:
                        type: array
                        items:
                          type: string
                      isOwner:
                        type: boolean
                    required:
                      - sequence
                      - steps
                      - enrollments
                      - currentRuns
                      - lastTouches
                      - connectedEntries
                      - connectedFieldNames
                      - isOwner
                    additionalProperties: {}
                  - type: 'null'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - DenchApiKey: []
        - AgentSession: []
components:
  responses:
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Unauthorized:
      description: Missing or invalid authentication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    NotFound:
      description: Operation or resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    InternalError:
      description: Server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  schemas:
    ApiError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
            - type
            - code
          properties:
            message:
              type: string
            type:
              type: string
            code:
              type: string
            details: {}
  securitySchemes:
    DenchApiKey:
      type: http
      scheme: bearer
      bearerFormat: DENCH_API_KEY
      description: >-
        Workspace-scoped Dench API key from workspace settings. This is the same
        key used by DENCH_API_KEY in sandboxes.
    AgentSession:
      type: http
      scheme: bearer
      bearerFormat: dch_agent_*
      description: >-
        Agent session token created by `dench signin`. Gateway-backed routes
        exchange this token for the workspace gateway key.

````