Skip to content

Send an email

client.email.send(EmailSendParams { from, messageBody, subject, 4 more } body, RequestOptionsoptions?): EmailSendResponse { sentAt }
POST/v1/emails/send

Sends an email via the connected email account that owns the from address. Currently supports new sends only; replies and forwards are not yet supported.

Supports idempotency via the Idempotency-Key header.

Required scope: emails:create

Rate limit category: Write

ParametersExpand Collapse
body: EmailSendParams { from, messageBody, subject, 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. Used as the From header when sending.

messageBody: MessageBody

Email message body (HTML or plain text).

content: string

Email body content.

minLength1
contentType?: "HTML" | "TEXT"

Defaults to HTML.

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

Email subject. Cannot be empty.

minLength1
to: Array<string>

Recipient email addresses (bare, no display names). At least 1, at most 500.

attachments?: Array<string>

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

bcc?: Array<string>

Bcc recipients (same shape as to).

cc?: Array<string>

Cc recipients (same shape as to).

ReturnsExpand Collapse
EmailSendResponse { sentAt }
sentAt: string

ISO 8601 timestamp of when the send completed.

Send an email

import Lightfield from 'lightfield';

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

const emailSendResponse = await client.email.send({
  from: 'sales@acme.com',
  messageBody: { content: '<p>Hi there,</p><p>Following up on our chat earlier this week.</p>' },
  subject: 'Following up on our chat',
  to: ['lead@example.com'],
});

console.log(emailSendResponse.sentAt);
{
  "sentAt": "sentAt"
}
Returns Examples
{
  "sentAt": "sentAt"
}