SendboundSendbound

Batch Send

Send up to 100 different emails in a single API call.

Send up to 100 distinct emails in one request. Unlike POST /v1/send (which sends one message to many recipients), batch lets you send completely different emails — different subjects, bodies, recipients, and templates — in one atomic call.

POST/emails/batch
Bearer
curl -X POST 'https://api.sendbound.com/emails/batch' \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Content-Type: application/json' \
  -d '{
"emails": [
  {
    "to": "alice@example.com",
    "from": "hello@yourdomain.com",
    "subject": "Your invoice #1042",
    "body": "<p>Hi Alice, your invoice is attached.</p>",
    "attachments": []
  },
  {
    "to": "bob@example.com",
    "from": "hello@yourdomain.com",
    "subject": "Password reset",
    "body": "<p>Hi Bob, click <a href='{{resetUrl}}'>here</a> to reset your password.</p>",
    "data": { "resetUrl": "https://myapp.com/reset/abc123" }
  }
]
}'

Request body

FieldTypeRequiredDescription
emailsarrayYesArray of email objects — up to 100 items. Each object accepts the same fields as POST /v1/send.

Response

{
  "success": true,
  "data": {
    "results": [
      {
        "index": 0,
        "contact": { "id": "con_01HV3K...", "email": "alice@example.com" },
        "email": "3f2a91b0-..."
      },
      {
        "index": 1,
        "contact": { "id": "con_02AB5M...", "email": "bob@example.com" },
        "email": "8c1d43e1-..."
      }
    ],
    "timestamp": "2026-01-15T10:30:00.000Z"
  }
}

The index in each result corresponds to the position in your emails input array. Use email to retrieve delivery status via GET /emails/:id.

Error codes

CodeDescription
VALIDATION_ERRORMalformed body or one or more emails are invalid
TOO_MANY_EMAILSMore than 100 emails in one batch
DOMAIN_NOT_VERIFIEDA from domain in the batch has not been verified