Emails API
POST /api/v1/emails/:id/send
Send one DRAFT. Requires the send:emails scope (or *). A key with only write:emails can compose drafts but cannot release them, which is the point: give an automation write access and keep the send decision with a person or a separately scoped key.
One draft per call
There is no bulk send. Each call releases exactly the draft named in the path.
Request
POST /api/v1/emails/cmtsv6ts404hzii01dnmu4k5t/send HTTP/1.1
Host: agentlyleads.com
Authorization: Bearer alk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
{ "asUserEmail": "kevin@example.com" }The body is optional. asUserEmail chooses whose connected mailbox transmits when the draft has no explicit From.
Response
200 when the mail went out:
{ "email": { "id": "cmtsv6ts404hzii01dnmu4k5t", "status": "SENT", "sentAt": "2026-09-08T16:20:11.000Z", "...": "..." }, "sent": true }502 with "sent": false and the provider's message in email.error when the mailbox rejected it. The draft keeps status FAILED; fix the mailbox connection and it can be sent again from the app.
| Status | Meaning |
|---|---|
404 | No email with that id in this workspace |
409 | The email is not a DRAFT, or the draft has no recipient address yet |