GET /api/v1/emails
Requires the read:emails scope (or *).
List
GET /api/v1/emails?status=DRAFT&limit=50 HTTP/1.1
Host: agentlyleads.com
Authorization: Bearer alk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| Parameter | Description |
|---|---|
status | DRAFT, SCHEDULED, QUEUED, SENT or FAILED |
contactId | Only emails to or from this contact |
campaignId | Only emails in this campaign |
limit | 1 to 200, default 50 |
Rows are newest first and carry engagement flags:
{
"emails": [
{
"id": "cmtsy2o2v05peii01g2ebysb0",
"status": "SENT",
"direction": "INBOUND",
"subject": "Re: Buffalo David Bitton men's multipacks",
"toEmail": "kevin@example.com",
"fromEmail": "meg@example.com",
"contact": { "id": "cmr8dlczc00xkic01prvioybz", "name": "Margaret Leung", "email": "meg@example.com" },
"campaign": { "id": "cmtsv6tr704hxii01xyz", "name": "Buffalo David Bitton Multipacks" },
"opened": false, "opens": 0, "clicks": 0, "replied": false, "unread": true,
"humanOpens": 0, "automaticOpens": 0, "humanClicks": 0, "scannerClicks": 0,
"sentAt": "2026-09-08T17:29:00.000Z",
"createdAt": "2026-09-08T17:29:00.000Z"
}
],
"count": 1
}Use it to find drafts awaiting approval, recover a draft id, or see which sends have been opened or answered.
opens and clicks count people only. humanOpens, automaticOpens, humanClicks and scannerClicks count individual events, with security-scanner clicks and automatic opens kept separate. See Opens and clicks.
One email
GET /api/v1/emails/cmtsy2o2v05peii01g2ebysb0 HTTP/1.1
Authorization: Bearer alk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxReturns the email with bodyHtml, the linked contact (including its externalId) and campaign, every message in the same thread, its attachments, open and click engagement, and a tracking object with every open and click and its bot verdict (Opens and clicks). Works for drafts, so an integration can read back exactly what it composed before releasing it. Unknown ids return 404.
Sending identities
GET /api/v1/emails/identities HTTP/1.1
Authorization: Bearer alk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx{
"identities": [
{ "address": "Howard Keil <howard@example.com>", "email": "howard@example.com", "default": true },
{ "address": "Kevin Holmes <kevin@example.com>", "email": "kevin@example.com", "default": false }
],
"default": "Howard Keil <howard@example.com>"
}Pass any listed email as from when drafting. Add ?asUserEmail= to see the mailboxes a particular member can send from.