Skip to content

Create a draft email

client.email.draft(EmailDraftParams { from, attachments, bcc, 4 more } body, RequestOptionsoptions?): EmailDraftResponse { draftedAt }
POST/v1/emails/draft

Creates a draft in the connected email account that owns the from address. Mirrors native email-client behavior: only from is required — to, cc, bcc, subject, messageBody, and attachments are all optional. At least one of those optional fields must be populated; sending only from returns a 400.

Supports idempotency via the Idempotency-Key header.

Required scope: emails:create

Rate limit category: Write

ParametersExpand Collapse
body: EmailDraftParams { from, attachments, bcc, 4 more }
from: string

Bare email address (no display name). Must match a connected email account owned by the API key user. Compared case-insensitively. Mailbox where the draft is created.

attachments?: Array<string>

Optional list of file IDs (uploaded via the Files API) to attach to the draft. Maximum 5 attachments per draft, each ≤ 3MB.

bcc?: Array<string>

Bcc recipients (same shape as to).

cc?: Array<string>

Cc recipients (same shape as to).

messageBody?: MessageBody

Email message body (HTML or plain text).

content: string

Email body content.

contentType?: "HTML" | "TEXT"

Defaults to HTML.

One of the following:
"HTML"
"TEXT"
subject?: string

Email subject.

to?: Array<string>

Recipient email addresses (bare, no display names). Up to 500.

ReturnsExpand Collapse
EmailDraftResponse { draftedAt }
draftedAt: string

ISO 8601 timestamp of when the draft was created.

Create a draft email

import Lightfield from 'lightfield';

const client = new Lightfield({
  apiKey: 'My API Key',
});

const emailDraftResponse = await client.email.draft({ from: 'sales@acme.com' });

console.log(emailDraftResponse.draftedAt);
{
  "draftedAt": "draftedAt"
}
Returns Examples
{
  "draftedAt": "draftedAt"
}