Get Email

Retrieve one sent or queued email by id.

MethodGET
/api/v2/emails/{id}

Returns one email in your organization. Use the id from Send Email or List Emails. Permission: emails.

Call this after send when you need the body, tags, or the current last_event. List does not return html, text, or tags.

Path Parameters

NameTypeDescription
idstringRequired. Email id (eml_...).

Response Fields

FieldTypeDescription
object"email"Discriminator. Always email on this endpoint.
idstringLumail email id.
message_idstring or nullProvider message id (SES) once accepted. null while still queued.
fromstringEnvelope From, including display name when you sent one.
tostring[]Recipients. v2 send accepts one address.
subjectstringSubject line.
htmlstring or nullRendered HTML body.
textstring or nullPlain-text body. Generated from HTML on send when you omit text.
ccstring[] or nullCarbon copies from send, otherwise null.
bccstring[] or nullBlind carbon copies from send, otherwise null.
reply_tostring[] or nullReply-To addresses from send, otherwise null.
scheduled_atnullAlways null. Scheduled send is not supported on v2 transactional emails.
tags{ name, value }[]Tags from send. Empty array when none.
created_atstringISO 8601 timestamp.
last_eventstringLatest delivery or tracking event. See below.

Last event

last_event is derived, not stored as a separate field. Tracking wins over delivery:

  1. clicked if the recipient clicked a link
  2. opened if the recipient opened the email
  3. otherwise the delivery status
ValueMeaning
queuedAccepted by Lumail, not yet handed to SES (PENDING)
sentHanded to SES (SENT), or delivery status is still null
deliveredSES reported delivery
openedAt least one unique open
clickedAt least one unique click
bouncedSES bounce
complainedSpam complaint
failedSend failed

Body content

html and text are the stored rendered bodies. tiptap is send-only: if you queued TipTap JSON, this response still returns HTML, never the TipTap document.

Campaign emails and test sends are retrievable by id. List Emails only returns transactional API rows (campaignId null, isTest false).

Errors

Email routes use { name, message, statusCode }.

StatusnameWhen
401missing_api_keyMissing or invalid Authorization: Bearer lum_...
403validation_errorToken lacks the emails permission
404not_foundUnknown id, or the email belongs to another organization