# list_campaigns (/docs/mcp/tools/list-campaigns)

{/* Generated by scripts/sync-mcp-tools.mjs from happierleads-api. Do not edit: change src/routes/mcp/toolDocs.json there, or add content/mcp-notes/list_campaigns.mdx. */}

**List email campaigns** · Read-only

List the email campaigns of one website, newest first, with their status (isActive), schedule, steps (emailCampaignTemplates), health and a cached stats snapshot (statsRollup: contacted, sent, opens, clicks, replies, bounces and rates, refreshed about every 5 minutes; see computedAt). For exact live numbers and per-step stats of one campaign use get_campaign. websiteId comes from list_websites and is required even though the schema marks it optional. Returns emailCampaigns[], totalDocs and remaining (campaigns not yet shown). 50 campaigns per page.

| Connection | Account URL, team member URL or OAuth |
| --- | --- |

## Parameters [#parameters]

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `websiteId` | `string` | No | Website id (24 hex characters) from list_websites. Required by the server. |
| `page` | `number` | No | Page number, starting at 1. Default 1. 50 campaigns per page. |

## Tool definition [#tool-definition]

What your assistant receives from `tools/list`:

```json
{
  "name": "list_campaigns",
  "title": "List email campaigns",
  "annotations": {
    "title": "List email campaigns",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "inputSchema": {
    "type": "object",
    "properties": {
      "websiteId": {
        "type": "string",
        "description": "Website id (24 hex characters) from list_websites. Required by the server."
      },
      "page": {
        "type": "number",
        "description": "Page number, starting at 1. Default 1. 50 campaigns per page."
      }
    }
  }
}
```

## Used in [#used-in]

- [/docs/leads/prospector/search-prospects/manual-search/mcp](/docs/leads/prospector/search-prospects/manual-search/mcp)
