Solution skill
Send transactional mail in Resend batches: 100 per call, mapped ids
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
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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. - 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>