Skip to main content

POST /emails/batch

Send multiple emails in one API call. Each email is processed independently — if one fails, the others still send.

Authentication

API Key (Bearer token)

Request Body

Array of email objects (1–100):
FieldTypeRequiredDescription
fromstringYesSender email address
tostring or string[]YesRecipient(s)
subjectstringYesEmail subject
htmlstringNoHTML content
textstringNoPlain text content
ccstring or string[]NoCC recipients
bccstring or string[]NoBCC recipients
reply_tostring or string[]NoReply-to addresses
attachmentsobject[]NoFile attachments (max 10 per email)
tagsobjectNoKey-value metadata
send_atstringNoISO 8601 datetime to schedule

Response

{
  "data": [
    { "emailId": "550e8400-e29b-41d4-a716-446655440000" },
    { "emailId": "550e8400-e29b-41d4-a716-446655440001" }
  ]
}

Example

curl -X POST https://app.usesendi.com/api/emails/batch \
  -H "Authorization: Bearer snd_your_api_key" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "from": "you@yourdomain.com",
      "to": "user1@example.com",
      "subject": "Welcome",
      "html": "<p>Welcome aboard!</p>"
    },
    {
      "from": "you@yourdomain.com",
      "to": "user2@example.com",
      "subject": "Welcome",
      "html": "<p>Welcome aboard!</p>"
    }
  ]'

Limits

  • Maximum 100 emails per batch
  • Each email counts toward your daily/monthly limits
  • The batch fails entirely if you don’t have enough quota for all emails