Email campaigns
Send email sequences to your leads from your own mailboxes, on the days and hours you choose.
Create, list, change, pause and clone your email campaigns from your own code or scripts.
Authenticated with ?privateKey=YOUR_KEY (see Authentication).
| GET | /admin/email-campaigns | Get all email campaigns for a website |
| POST | /admin/email-campaigns | Create new email campaign |
| GET | /admin/email-campaigns/{id} | Get single email campaign details |
| PUT | /admin/email-campaigns/{id} | Update email campaign settings |
| DELETE | /admin/email-campaigns/{id} | Delete email campaign |
| POST | /admin/email-campaigns/clone | Clone existing email campaign |
curl -X GET "https://rest-dash.revealid.xyz/admin/email-campaigns?privateKey=YOUR_KEY&websiteId=64b7f0a1c2d3e4f5a6b7c8d9&page=1&limit=100&order=desc"What each field accepts
| Field | Type | Limits and format | Accepted values |
|---|---|---|---|
| websiteId* | string | pattern ^[0-9a-fA-F]{24}$ | any |
| page | integer | min 1 · whole number · default 1 | any |
| limit | integer | 1–100 · whole number · default 100 | any |
| sortProperty | string | default "createdAt" | createdAtupdatedAtnameisActive |
| order | string | default "desc" | ascdesc |
Use case: List your campaigns
GET /admin/email-campaigns?websiteId=… answers totalDocs (campaigns on the website), remaining (campaigns after this page; 0 or less means the last page) and emailCampaigns. Each campaign has its _id, name, isActive, its steps (emailCampaignTemplates), stats, a health status and summary, and user, who created it (id, name and email). Pages hold 1–100 campaigns (limit, default 100) from page 1; sort with sortProperty (createdAt, updatedAt, name, isActive) and order (asc or desc, default newest first).
Use case: Pause a campaign
PUT /admin/email-campaigns/{id} with { "status": "paused" }; "active" starts it again (isActive: false/true does the same; any other status answers 405). Paused contacts keep their place; when the campaign starts again, contacts that went overdue are spread out from today instead of all sending at once.
Use case: Change the sending schedule
Send timeSlot as hours in the campaign's timezone: { "start": 8, "end": 18 } sends from 08:00 until 18:00 (start 0–23, end 1–24). daysRange lists the sending days as numbers, 0 = Sunday to 6 = Saturday, so [1, 2, 3, 4, 5] is Monday to Friday. timezone is one of the listed zones (default America/Los_Angeles).