Skip to main content
GET
/
api
/
v1
/
campaigns
curl -X GET "https://server.smartlead.ai/api/v1/campaigns/?api_key=YOUR_API_KEY&include_tags=true"
[
  {
    "id": 2710262,
    "user_id": 196026,
    "created_at": "2025-11-25T10:43:46.826Z",
    "updated_at": "2025-11-25T14:02:21.776Z",
    "status": "ACTIVE",
    "name": "Cold Outreach Q1 2024",
    "track_settings": ["DONT_EMAIL_OPEN", "DONT_LINK_CLICK"],
    "scheduler_cron_value": {
      "tz": "America/New_York",
      "days": [1, 2, 3, 4, 5],
      "endHour": "19:00",
      "startHour": "09:00"
    },
    "min_time_btwn_emails": 24,
    "max_leads_per_day": 100,
    "stop_lead_settings": "REPLY_TO_AN_EMAIL",
    "schedule_start_time": null,
    "enable_ai_esp_matching": true,
    "send_as_plain_text": false,
    "follow_up_percentage": 20,
    "unsubscribe_text": "",
    "parent_campaign_id": null,
    "client_id": null,
    "tags": [
      {
        "tag_id": 1,
        "tag_name": "Q1",
        "tag_color": "#FF5733"
      }
    ]
  }
]
Retrieves all email campaigns for the authenticated user with comprehensive campaign data including status, schedule settings, tracking configuration, AI matching preferences, and sending limits Essential for dashboard displays, campaign selection interfaces, and bulk operations across portfolio.

Overview

Retrieves all email campaigns for the authenticated user with comprehensive campaign data including status, schedule settings, tracking configuration, AI matching preferences, and sending limits Key Features:
  • Returns campaigns ordered by ID descending (newest first)
  • Supports optional client_id filtering for agency/white-label accounts managing multiple clients
  • When include_tags=true, returns campaign tags with tag IDs, names, and colors for categorization and filtering
  • Returns direct array of campaign objects (not wrapped)

Query Parameters

api_key
string
required
Your SmartLead API key
client_id
number
Filter campaigns by specific client ID
include_tags
boolean
default:"false"
Include campaign tags in the response

Response

success
boolean
Indicates if the request was successful
campaigns
array
Array of campaign objects
curl -X GET "https://server.smartlead.ai/api/v1/campaigns/?api_key=YOUR_API_KEY&include_tags=true"
[
  {
    "id": 2710262,
    "user_id": 196026,
    "created_at": "2025-11-25T10:43:46.826Z",
    "updated_at": "2025-11-25T14:02:21.776Z",
    "status": "ACTIVE",
    "name": "Cold Outreach Q1 2024",
    "track_settings": ["DONT_EMAIL_OPEN", "DONT_LINK_CLICK"],
    "scheduler_cron_value": {
      "tz": "America/New_York",
      "days": [1, 2, 3, 4, 5],
      "endHour": "19:00",
      "startHour": "09:00"
    },
    "min_time_btwn_emails": 24,
    "max_leads_per_day": 100,
    "stop_lead_settings": "REPLY_TO_AN_EMAIL",
    "schedule_start_time": null,
    "enable_ai_esp_matching": true,
    "send_as_plain_text": false,
    "follow_up_percentage": 20,
    "unsubscribe_text": "",
    "parent_campaign_id": null,
    "client_id": null,
    "tags": [
      {
        "tag_id": 1,
        "tag_name": "Q1",
        "tag_color": "#FF5733"
      }
    ]
  }
]

Response Codes

200
Success
Campaigns retrieved successfully
401
Unauthorized
Invalid or missing API key
500
Internal Server Error
Server error occurred

Filtering Campaigns

You can filter campaigns by:
  • Client ID: Get campaigns for a specific client
  • Status: Use the campaign status filter in your application logic after fetching
  • Tags: Include tags to filter on your end

Pagination

Currently, this endpoint returns all campaigns. For large accounts with many campaigns, consider implementing pagination on your end or contact support for enterprise pagination options.
Cache campaign lists to reduce API calls. Only fetch when you need fresh data.

Common Use Cases

Get Active Campaigns Only

Python
import requests

API_KEY = "YOUR_API_KEY"
url = "https://server.smartlead.ai/api/v1/campaigns/"

response = requests.get(url, params={"api_key": API_KEY})
campaigns = response.json()

active_campaigns = [
    c for c in campaigns['campaigns'] 
    if c['status'] == 'ACTIVE'
]

print(f"Active campaigns: {len(active_campaigns)}")

Get Campaigns by Client

Python
client_id = 456

response = requests.get(
    url, 
    params={
        "api_key": API_KEY,
        "client_id": client_id
    }
)

campaigns = response.json()