Skip to main content
POST
cURL
Guide: Sending in batches

Authorizations

Authorization
string
header
required

Authorization: Bearer . An application key (tk_live_, tk_test_) has full access, which covers every product and any product added later, or custom access, chosen when the key is created: one or more of the scopes verify:check, verify:send (includes verify:check), notifications:read, notifications:send (includes notifications:read), email:read, email:send (includes email:read), email:manage (includes email:send), webhooks:manage, email:inbound, notifications:templates (includes notifications:read), chat:menus, chat:attendant. No key made on the API keys page holds notifications:templates, full access included: the three template writes answer such a key 403 insufficient_scope. A connected app's key holds it. Nor chat:menus: the five conversation menu operations answer such a key 403 insufficient_scope, and a connected app's key holds it once the client approved it. Nor chat:attendant: the five auto-attendant operations answer such a key 403 insufficient_scope too, and a connected app's key holds it once the client approved it. email:manage and webhooks:manage are held only by a key someone chose them for: a full-access key, old or new, never holds them. email:inbound, which reads, deletes and forwards received e-mail, is opt-in on every key, full access included: a key holds it only when it was turned on when the key was created. A call outside the key's access answers 403 insufficient_scope and names the scope it needs in the WWW-Authenticate response header. A partner key (tk_partner_) always has full access. Whatever its access, a key is a server-side secret.

Headers

Idempotency-Key
string

A 1 to 256 printable-ASCII-character key for the whole batch. Replaying it with the same batch answers the first 202 as it was, with Idempotent-Replayed: true: nothing is sent or charged again; another batch under it answers 409 idempotency_key_reused. A batch's keys and single sends' keys are separate: the same key used on both is two keys. A key is free again after 24 hours.

Tawked-Batch-Validation
string

strict (the default) or permissive. Resend's own name for it, x-batch-validation, is read the same way.

Body

application/json
emails
array
required

The messages, 1 to 100: each an object with the fields of a send (from, to, cc, bcc, reply_to, subject, html, text, reference, headers, tags, scheduled_at), never attachments. The body may also be the array itself, as Resend takes it.

application
string

Partner keys only: the application, in the query string (?application=…) or on every item, the same for all.

Response

Accepted / Accepted, permissive

data
object[]
errors
object[]