Send batch emails
Send up to 100 different emails in a single request.
POSThttps://api.cresca.xyz/api/v1/emails/batch
The body is a JSON array of up to 100 emails. Each item takes the same fields as Send email, except attachments and scheduled_at, which are not supported in batches. Works with sending-access and full-access keys.
A batch is all or nothing: if any email is invalid, the request fails and no email is sent. The error message names the failing email, for example Email 3: Invalid `to` ... (zero-based index).
Example
Request
curl -X POST 'https://api.cresca.xyz/api/v1/emails/batch' \
-H 'Authorization: Bearer cr_live_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: weekly-digest/2026-10-19' \
-d '[
{
"from": "Acme <hello@acme.com>",
"to": "ana@example.com",
"subject": "Your weekly summary",
"html": "<p>Hi Ana, here is your summary.</p>"
},
{
"from": "Acme <hello@acme.com>",
"to": "ben@example.com",
"subject": "Your weekly summary",
"html": "<p>Hi Ben, here is your summary.</p>"
}
]'Response 200
{
"data": [
{
"id": "b6d1f2a0-5e2f-4c8e-9a51-0c8b5f1d2e33"
},
{
"id": "0f7e3c11-9b2a-4f6d-8e44-7a1c2d3e4f55"
}
]
}Ids are returned in the same order as the emails in the request. One Idempotency-Key covers the whole batch.