DocumentationBatch send

Batch send

POST /emails/batch — up to 100 recipients with per-recipient variables.

Send the same template to multiple recipients in one request. Each recipient can have its own merge variables.

POST https://api.mailingcore.com/emails/batch
Authorization: Bearer mc_live_xxxx
X-Tenant-Id: clxxxxxxxx
Content-Type: application/json

Required scope: email:send.

Request body

{
  "recipients": [
    { "to": "[email protected]", "vars": { "name": "Alice" } },
    { "to": "[email protected]", "vars": { "name": "Bob" } }
  ],
  "subject": "Hello {{name}}",
  "htmlBody": "<p>Hi {{name}}, welcome aboard.</p>",
  "fromEmail": "[email protected]",
  "templateVersionId": "clxversion..."
}

Fields

FieldRequiredDescription
recipientsYesArray of { to, vars? }max 100 per request
recipients[].toYesRecipient email
recipients[].varsNoKey/value map for {{var}} substitution in subject and HTML
subjectYesSubject line (supports {{var}} placeholders)
htmlBodyYes*HTML body (*or use templateVersionId)
templateVersionIdNoPublished template version
fromEmail, fromName, replyToNoSender fields — domain must be verified

Response

{
  "results": [
    { "to": "[email protected]", "id": "clxlog...", "status": "QUEUED" },
    { "to": "[email protected]", "id": "", "status": "REJECTED", "error": "Email is suppressed" }
  ],
  "accepted": 1,
  "rejected": 1
}
FieldDescription
resultsPer-recipient outcome
acceptedCount of successfully queued/sent
rejectedCount of suppressed or failed recipients

Limits

  • 100 recipients maximum per batch request. Split larger audiences into multiple calls or use campaigns.
  • Each accepted recipient counts against your monthly quota.

See also Send email for single-recipient sends.