Less boo. More booked. Halloween offer: 30 days free on any paid plan. Claim 30 days freeEvery new account gets one free mailbox for warmup and replies. No domain to buy. See how it works

Skip to content

Leads across every campaign

API referenceCampaigns

From the Campaigns API reference. Requests use the base URL https://app.warmerly.com/api/v1 and an API key, see Authentication.

text
GET /campaigns/leads

One flat, paged view of every lead in the project's campaigns, rather than one campaign at a time. Project-scoped (X-Project-Id).

Query paramTypeDescription
campaignIdstring (UUID)Restrict to one campaign.
statuslead statusFilter by lead status. An unknown value is ignored.
qstringSearch name, email or company.
limitintegerPage size, 1 to 200, default 50.
offsetintegerRows to skip, default 0.
json
{
  "leads": [{ "id": "…", "email": "lead@example.com", "firstName": null, "lastName": null, "companyName": null, "linkedinName": null, "linkedinHeadline": null, "status": "queued", "createdAt": "2026-06-15T12:00:00.000Z", "campaignId": "…", "campaignName": "Q4 outbound" }],
  "total": 412,
  "byStatus": { "queued": 380, "replied": 17 },
  "campaigns": [{ "id": "…", "name": "Q4 outbound" }]
}

total and byStatus count every lead in the project's campaigns, not only the rows matching campaignId, status or q. campaigns is the project's own campaigns, so a UI can render the filter without a second call. A project with no campaigns returns { "leads": [], "total": 0, "campaigns": [] }, not an error.

Was this page helpful?