Skip to content

Batch sending

POST /emails/batch accepts a JSON array of up to 100 send requests; each item takes the exact same fields as POST /emails:

[
{ "from": "Acme <hi@acme.com>", "to": "a@example.com", "subject": "Hi", "html": "<p>Hi</p>" },
{ "from": "Acme <hi@acme.com>", "to": "b@example.com", "subject": "Hi", "html": "<p>Hi</p>" }
]

Each item is processed independently and gets its own result in request order; one bad item never blocks the rest. The response is 200 whenever the batch itself was accepted:

{
"data": [
{ "index": 0, "id": "9b2d…" },
{ "index": 1, "error": { "name": "validation_error", "message": "b@example.com is on the suppression list" } }
]
}

Exactly one of id (queued) or error (rejected) is present per entry. An empty array or more than 100 items rejects the whole batch with a validation_error.

Batch items do not support idempotency keys; the Idempotency-Key header is ignored on this endpoint.