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

# Get Campaign by ID

> Retrieves a single campaign by its ID

## Overview

Retrieves a single campaign by its ID, including complete details about the campaign configuration, analytics, and message sequence.

The campaign must belong to your workspace.

## What's Included

This endpoint returns comprehensive campaign data:

* **Basic Info**: ID, name, status, progress, creation date
* **Configuration**: Settings, core variables, custom variables
* **LinkedIn Accounts**: Associated account IDs
* **Analytics**: Acceptance rate, response rate, total leads
* **Sequence**: Complete array of steps with their message variants

## Sequence Data

The response includes the full campaign sequence (steps and variants), making this endpoint ideal when you need both campaign metadata and the message flow. If you only need the sequence, use the dedicated [Get Campaign Sequence](/api-reference/endpoint/get-campaign-sequence) endpoint instead.

Each step in the sequence includes:

* Step type (invitation, message, visit\_profile, screener)
* Order and delay configuration
* Message variants for A/B testing (for message and screener steps)
* AI tools configuration per variant


## OpenAPI

````yaml GET /v1/campaigns/{id}
openapi: 3.1.0
info:
  title: WaLead API
  description: >-
    WaLead Public API for managing LinkedIn outreach campaigns, leads, and
    analytics
  version: 1.0.0
  contact:
    name: WaLead Support
    url: https://walead.ai
servers:
  - url: https://app-api.walead.ai/api
    description: Production server
security:
  - apiKeyAuth: []
paths:
  /v1/campaigns/{id}:
    get:
      summary: Get Campaign by ID
      description: Retrieves a single campaign by its ID
      parameters:
        - name: id
          in: path
          description: Campaign ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Campaign retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignDetail'
        '401':
          description: Unauthorized - Invalid API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CampaignDetail:
      allOf:
        - $ref: '#/components/schemas/Campaign'
        - type: object
          properties:
            steps:
              type: array
              items:
                $ref: '#/components/schemas/Step'
              description: Campaign sequence steps with message variants
    Error:
      type: object
      required:
        - statusCode
        - message
      properties:
        statusCode:
          type: integer
          description: HTTP status code
        message:
          type: string
          description: Error message
    Campaign:
      type: object
      properties:
        id:
          type: string
          description: Unique campaign identifier
        name:
          type: string
          description: Campaign name
        status:
          type: string
          enum:
            - active
            - paused
            - completed
            - error
            - draft
          description: Campaign status
        progress:
          type: number
          description: Campaign progress percentage (0-100)
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp of creation
        settings:
          type: object
          description: Campaign configuration settings
        coreVariables:
          type: object
          description: Core variables enabled for this campaign
        customVariables:
          type: object
          description: Custom variables defined for this campaign
        linkedinAccounts:
          type: array
          items:
            type: string
          description: Array of LinkedIn account IDs associated with the campaign
        analytics:
          type: object
          properties:
            acceptanceRate:
              type: number
              description: Connection acceptance rate (0-1)
            responseRate:
              type: number
              description: Message response rate (0-1)
            totalLeads:
              type: integer
              description: Total number of leads in the campaign
    Step:
      type: object
      properties:
        id:
          type: string
          description: Unique step identifier
        type:
          type: string
          enum:
            - invitation
            - message
            - visit_profile
            - screener
          description: Step type
        order:
          type: integer
          description: Step position in sequence (0-based)
        delay:
          type: integer
          description: Delay in days before executing this step
        stopOnReply:
          type: boolean
          description: Whether to stop the sequence if lead replies
        genericBody:
          type: string
          nullable: true
          description: Generic message template for the step
        variants:
          type: array
          items:
            $ref: '#/components/schemas/StepVariant'
          description: >-
            Message variants for A/B testing (only for message and screener
            steps)
    StepVariant:
      type: object
      properties:
        id:
          type: string
          description: Unique variant identifier
        body:
          type: string
          description: Message template content
        order:
          type: integer
          description: Variant order for rotation
        isDisabled:
          type: boolean
          description: Whether this variant is disabled
        icpDefinitionRaw:
          type: string
          nullable: true
          description: ICP (Ideal Customer Profile) definition for targeting
        stepId:
          type: string
          description: Associated step ID
        aiTools:
          type: array
          items:
            $ref: '#/components/schemas/AITool'
          description: AI tools enabled for this variant
    AITool:
      type: object
      properties:
        name:
          type: string
          description: AI tool name
        key:
          type: string
          description: AI tool unique key
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Generate from your WaLead dashboard.

````