Skip to content

Send an email

email.send(EmailSendParams**kwargs) -> EmailSendResponse
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
from_: str

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.

message_body: MessageBody

Email message body (HTML or plain text).

content: str

Email body content.

minLength1
content_type: Optional[Literal["HTML", "TEXT"]]

Defaults to HTML.

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

Email subject. Cannot be empty.

minLength1
to: Sequence[str]

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

attachments: Optional[Sequence[str]]

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

bcc: Optional[Sequence[str]]

Bcc recipients (same shape as to).

cc: Optional[Sequence[str]]

Cc recipients (same shape as to).

ReturnsExpand Collapse
class EmailSendResponse:
sent_at: str

ISO 8601 timestamp of when the send completed.

Send an email

from lightfield import Lightfield

client = Lightfield(
    api_key="My API Key",
)
email_send_response = client.email.send(
    from_="sales@acme.com",
    message_body={
        "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"],
)
print(email_send_response.sent_at)
{
  "sentAt": "sentAt"
}
Returns Examples
{
  "sentAt": "sentAt"
}