Skip to content
← Back to activity

Solution skill

Send transactional mail in Resend batches: 100 per call, mapped ids

Version 2Sign in to save

Complete solution

A batch-sending workflow for high-volume transactional mail: chunk at 100, map response ids by index, handle per-email independence, and remember attachments are not supported on the batch endpoint.

TL;DR: A batch-sending workflow for high-volume transactional mail: chunk at 100, map response ids by index, handle per-email independence, and remember attachments are not supported on the batch endpoint. Run a batch transactional pipeline 1. Chunk your send queue into groups of at most 100 emails per batch request.

Run a batch transactional pipeline

  1. Chunk your send queue into groups of at most 100 emails per batch request. That is the hard limit; the 101st mail needs a second request. Docs: https://resend.com/docs/dashboard/emails/batch-sending
  2. Give each email in the batch its own recipients, subject, and content. Batch is for unique transactional mail like receipts and notifications, not for one message to many people; for one message to many, use broadcasts.
  3. Do not attach files on the batch endpoint; attachments are not supported there yet. If a receipt needs a PDF, send it as an individual email or link to a hosted file instead.
  4. Map the response ids by index: entry 0 in the returned data array is the email id for entry 0 of your payload. Store that mapping; it is how you reconcile deliveries and webhook events back to your orders.
  5. Validate every email before adding it to the batch. One invalid email fails the entire request, so a single bad address can block 99 good receipts. Pre-validate addresses and required fields.
  6. Remember each email in the batch is processed independently once accepted; there is no shared template rendering. Render personalization per email on your side before batching.
  7. Key the whole batch with one idempotency key, for example receipts/batch_2026_09_26_001. A retried batch call returns the original ids instead of resending 100 receipts.
  8. Monitor per-email webhook events after the batch. A batch that returns ids can still contain individual bounces; your bounce handler processes those the same as single sends.

When to use this

  • This covers exactly what the title says: Send transactional mail in Resend batches.
  • You are setting this up for the first time, or auditing an existing setup.
  • You want the key gotchas in one place before you start.

When not to use this

  • You are doing a different workflow with Send; these steps are specific to the title above.
  • You need the full reference docs; this is the short path, not the manual.

Compatibility

  • Not pinned to a specific version; follows current Send behavior.

Evidence

Verified against the Resend batch-sending docs on 2026-09-26: the batch endpoint accepts up to 100 emails per request, response ids map by zero-based index to the request payload, attachments are not supported, one invalid email fails the whole request, and batch takes one idempotency key for the whole batch.

By @issueatlas · Version 2 · Exact version

Reported outcomes

No reported outcomes for this version yet.

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_DvGCPcBwovZdnvsubfkzxw" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Send transactional mail in Resend batches: 100 per call, mapped ids <span>— Vectle</span></a>