# List campaigns

> Requires X-Project-Id. Returns every campaign in the project with live counters joined in (lead/email totals), most recently created first, plus the project's…

Source: https://warmerly.com/docs/campaigns/list-campaigns

```text
GET /campaigns
```

Requires `X-Project-Id`. Returns every campaign in the project with live counters joined in (lead/email totals), most recently created first, plus the project's dashboard roll-up: `summary` (counts across campaigns that are not archived), `period` (the last 30 days against the 30 before), `activity` (daily sends, replies and bounces for the last 30 days), `funnel`, `sparklines` (daily sends per campaign) and `topCampaigns`. Archived campaigns are included in `campaigns` but not counted in the roll-up.

```bash
curl https://app.warmerly.com/api/v1/campaigns \
  -H "X-Api-Key: wmv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "X-Project-Id: 8f14e45f-ceea-4c6a-8c8d-6b1a5b5c9c1a"
```

```json
{
  "campaigns": [
    {
      "id": "b6a1e7b0-2f2b-4b7a-8e2a-1a2b3c4d5e6f",
      "name": "Q3 outbound - agencies",
      "status": "active",
      "createdAt": "2026-06-01T09:00:00.000Z",
      "startedAt": "2026-06-02T09:00:00.000Z",
      "completedAt": null,
      "assignedToUserId": null,
      "assignedToName": null,
      "assignedToEmail": null,
      "totalLeads": 240,
      "completedLeads": 51,
      "sentCount": 312,
      "repliedCount": 9,
      "bouncedCount": 4,
      "failedCount": 1,
      "recentFailedCount": 0,
      "recentSentCount": 140,
      "senderCount": 2,
      "nextRunAt": "2026-07-03T09:00:00.000Z"
    }
  ],
  "summary": { "totalCampaigns": 1, "activeCampaigns": 1, "leads": 240, "sent": 312, "replies": 9, "replyRate": 0.029 },
  "period": { "current": { "sent": 312, "replies": 9, "bounced": 4, "replyRate": 0.029 }, "previous": { "sent": 0, "replies": 0, "bounced": 0, "replyRate": 0 } },
  "activity": [ { "date": "2026-07-02", "sent": 40, "replies": 1, "bounced": 0 } ],
  "funnel": { "sent": 312, "replied": 9, "bounced": 4 },
  "sparklines": { "b6a1e7b0-2f2b-4b7a-8e2a-1a2b3c4d5e6f": [0, 12, 30] },
  "topCampaigns": [ { "id": "b6a1e7b0-2f2b-4b7a-8e2a-1a2b3c4d5e6f", "name": "Q3 outbound - agencies", "replies": 9 } ]
}
```

Each campaign row has no click counts or goal targets; read `GET /campaigns/{id}` for the full campaign and `GET /campaigns/{id}/stats` for clicks. `replyRate` values are fractions between 0 and 1. `nextRunAt` is the earliest scheduled send among queued and active leads, or `null`.

## More from Campaigns

- [The campaign object](https://warmerly.com/docs/campaigns/the-campaign-object): status is one of draft, active, paused, completed, archived. The object is the stored campaign row, so it…
- [Create a campaign](https://warmerly.com/docs/campaigns/create-a-campaign): Requires X-Project-Id. Creates a campaign in draft status with one empty email step seeded automatically…
- [Get a campaign](https://warmerly.com/docs/campaigns/get-a-campaign): Returns 404 notfound if the campaign doesn't exist and 403 forbidden if it belongs to a workspace you are…
