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

# Get Campaign by ID

> Retrieves comprehensive details for a specific campaign including all configuration settings, schedule, tracking prefere

<Note>
  Retrieves comprehensive details for a specific campaign including all configuration settings, schedule, tracking preferences, AI options, and associated metadata For client API keys, additionally filters by client\_id
</Note>

## Overview

Retrieves comprehensive details for a specific campaign including all configuration settings, schedule, tracking preferences, AI options, and associated metadata

**Key Features**:

* Automatically validates campaign ownership - returns 404 if campaign doesn't exist or user lacks access
* Returns single campaign object with all 18 CAMPAIGN\_ATTRIBUTES fields including: status, track\_settings array, complete scheduler\_cron\_value object, sending limits, stop conditions, AI ESP matching preferences, and plain text mode
* Optionally includes campaign tags with tag IDs, names, and colors

## Path Parameters

<ParamField path="campaign_id" type="number" required>
  The ID of the campaign to retrieve
</ParamField>

## Query Parameters

<ParamField query="api_key" type="string" required>
  Your SmartLead API key
</ParamField>

<ParamField query="include_tags" type="boolean" default="false">
  Include campaign tags in the response
</ParamField>

## Response

<ResponseField name="id" type="number">
  Campaign ID
</ResponseField>

<ResponseField name="name" type="string">
  Campaign name
</ResponseField>

<ResponseField name="status" type="string">
  Campaign status (ACTIVE, PAUSED, STOPPED, ARCHIVED, DRAFTED)
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp
</ResponseField>

<ResponseField name="scheduler_cron_value" type="object">
  Sending schedule configuration
</ResponseField>

<ResponseField name="track_settings" type="array">
  Tracking settings (DONT\_EMAIL\_OPEN, DONT\_LINK\_CLICK)
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://server.smartlead.ai/api/v1/campaigns/123?api_key=YOUR_API_KEY"
  ```

  ```python Python theme={null}
  import requests

  API_KEY = "YOUR_API_KEY"
  campaign_id = 123

  response = requests.get(
      f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}",
      params={"api_key": API_KEY}
  )

  campaign = response.json()
  print(f"Campaign: {campaign['name']}")
  print(f"Status: {campaign['status']}")
  ```

  ```javascript JavaScript theme={null}
  const API_KEY = 'YOUR_API_KEY';
  const campaignId = 123;

  const response = await fetch(
    `https://server.smartlead.ai/api/v1/campaigns/${campaignId}?api_key=${API_KEY}`
  );

  const campaign = await response.json();
  console.log(`Campaign: ${campaign.name}`);
  ```
</RequestExample>

## Response Codes

<ResponseField name="200" type="Success">
  Request successful
</ResponseField>

<ResponseField name="400" type="Bad Request">
  Invalid request parameters or malformed request body
</ResponseField>

<ResponseField name="401" type="Unauthorized">
  Invalid or missing API key. Check your authentication.
</ResponseField>

<ResponseField name="404" type="Not Found">
  The requested resource (campaign, lead, email account, etc.) does not exist or you don't have access to it
</ResponseField>

<ResponseField name="422" type="Validation Error">
  Request validation failed. Check parameter types, required fields, and value constraints.
</ResponseField>

<ResponseField name="429" type="Rate Limit Exceeded">
  Too many requests. Please slow down and retry after the rate limit resets.
</ResponseField>

<ResponseField name="500" type="Internal Server Error">
  Server error occurred. Please try again or contact support if the issue persists.
</ResponseField>

<ResponseField name="503" type="Service Unavailable">
  API is temporarily unavailable or under maintenance. Please try again later.
</ResponseField>

<ResponseExample>
  ```json 200 - Success theme={null}
  {
    "success": true,
    "data": {
      "id": 123,
      "name": "Q2 2026 Outreach",
      "status": "ACTIVE",
      "created_at": "2026-03-15T10:30:00Z",
      "updated_at": "2026-04-01T14:22:00Z",
      "client_id": 456,
      "track_settings": ["DONT_EMAIL_OPEN"],
      "stop_lead_settings": "REPLY_TO_AN_EMAIL",
      "sending_limit": 500,
      "total_leads": 5240,
      "leads_contacted": 4128,
      "leads_replied": 312
    }
  }
  ```

  ```json 401 - Unauthorized theme={null}
  {
    "message": "Invalid API Key"
  }
  ```

  ```json 404 - Not Found theme={null}
  {
    "error": "Resource not found"
  }
  ```

  ```json 422 - Validation Error theme={null}
  {
    "error": "Invalid parameters provided"
  }
  ```
</ResponseExample>
