## Create a draft email `client.email.draft(EmailDraftParamsbody, RequestOptionsoptions?): EmailDraftResponse` **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](/using-the-api/scopes/):** `emails:create` **[Rate limit category](/using-the-api/rate-limits/):** Write ### Parameters - `body: EmailDraftParams` - `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` Optional list of file IDs (uploaded via the Files API) to attach to the draft. Maximum 5 attachments per draft, each ≤ 3MB. - `bcc?: Array` Bcc recipients (same shape as `to`). - `cc?: Array` 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`. - `"HTML"` - `"TEXT"` - `subject?: string` Email subject. - `to?: Array` Recipient email addresses (bare, no display names). Up to 500. ### Returns - `EmailDraftResponse` - `draftedAt: string` ISO 8601 timestamp of when the draft was created. ### Example ```typescript 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); ``` #### Response ```json { "draftedAt": "draftedAt" } ```