Skip to content
Preview. The endpoints on this page are illustrative and are likely to change as they move toward general availability. Documentation is published in advance so you can start shaping your integration; treat request and response details as subject to revision.

EmailBlast object

An EmailBlast represents one bulk email campaign your organization has sent. Returned by the endpoints under /api/v1alpha1/email-blasts.

Merge fields, HTML body, and per-recipient render output are not exposed.

Three shapes depending on the endpoint:

  • Table row — the flat row returned by GET /email-blasts. Rates and one engagement score.
  • Detail — returned by GET /email-blasts/{id}. Splits into summary and performance blocks.
  • Top-blast — returned by GET /email-blasts/top. Flat, adds rankingScore.

Table-row schema

json
{
  "blastId": "blast_...",
  "blastName": "Q3 product update — pipeline forecasting",
  "templateName": "Product Update — Q3",
  "sentAt": "2026-07-14T13:00:12Z",
  "sender": {
    "userId": "usr_...",
    "displayName": "Alex Rivera"
  },
  "recipientCount": 482,
  "openRate":  48.3,
  "clickRate":  9.2,
  "replyRate":  2.5,
  "engagementScore": 78.4
}

Detail schema

json
{
  "blastId": "blast_...",
  "summary": {
    "blastName": "Q3 product update — pipeline forecasting",
    "templateName": "Product Update — Q3",
    "subject": "Q3 product update — new pipeline forecasting",
    "sender": {
      "userId": "usr_...",
      "displayName": "Alex Rivera"
    },
    "sentAt": "2026-07-14T13:00:12Z",
    "status": "Sent",
    "recipientCount": 482,
    "successfulSentCount": 478
  },
  "performance": {
    "totalOpens":  542,
    "totalClicks":  61,
    "totalReplies": 14,
    "openRate":  48.3,
    "clickRate":  9.2,
    "replyRate":  2.5,
    "engagementScore": 78.4
  }
}

Field reference


blastId string

Blast identifier, prefixed blast_. Stable across the blast's lifetime.


blastName string

Human-readable name the sender gave the blast. Distinct from subject, which is what recipients saw on the email.


templateName string

Name of the template the blast was rendered from. Useful for comparing performance across blasts built off the same template.


subject string

(detail only) Subject line as delivered. Merge fields () are preserved as placeholders — per-recipient rendered subjects are not stored.


sender object

The user who owns the blast (usually the sender; can differ if the blast was assigned to a different user for review).

AttributeTypeDescription
userIdstringUser identifier, prefixed usr_.
displayNamestringConcatenated first + last, falling back to email.

sentAt string

ISO 8601 UTC. When the send loop finished dispatching (not when the last engagement arrived).


status string

(detail only) Current lifecycle state:

ValueMeaning
DraftAuthor is still editing; not yet scheduled.
AssignedHanded off to another user for review/edit.
ScheduledQueued for a future send time.
SendNowMarked to send immediately; awaiting processing.
RejectedApproval workflow rejected the send.
ProcessingPre-send validation in flight.
QueuedHanded to the dispatch queue.
SendingRecipients are being dispatched in batches.
SuccessEvery recipient dispatched cleanly.
PartialSuccessSend finished; some recipients failed.
FailureSend did not complete.
SentTerminal state — every recipient's dispatch outcome is recorded.
PastDueScheduled send time passed before dispatch started.

Most integrations only care about Sending, Sent, and the terminal-failure states.


recipientCount number

Number of contacts on the send list at dispatch time. Includes recipients whose sends later failed or bounced.


successfulSentCount number

(detail only) Recipients where dispatch succeeded (mail server accepted the message). recipientCount − successfulSentCount equals the pre-open failure count.


performance object

(detail only) Engagement summary. Rates are floats with one decimal place, computed against successfulSentCount.

AttributeTypeDescription
totalOpensnumberRaw open events (a recipient opening three times contributes 3).
totalClicksnumberRaw click events.
totalRepliesnumberRaw reply events (typically ≈ unique repliers; multi-reply threads are counted per reply).
openRatenumberUnique-recipient open % against successful-sent.
clickRatenumberUnique-recipient click %.
replyRatenumberUnique-recipient reply %.
engagementScorenumberBlended engagement metric (0–100). Weighted mix of the three rates; formula is not fixed and can shift as the ranking model improves. Consume as an opaque relative score.

Table-row rate fields

Rate fields on the table-row shape (openRate, clickRate, replyRate, engagementScore) mean the same as under performance — the flat row hoists them for column-based rendering.


rankingScore number

(top-blast shape only) The score GET /email-blasts/top sorts on. Same intent as engagementScore but recomputed within the top-blast query so ties resolve consistently. Not directly comparable across periods — a rankingScore of 78 in the last-7-day view is not the same rank as 78 in the last-30-day view.

Raleigh, NC — a Cirruspath, Inc. company