resend

Send, receive, and manage transactional emails through the Resend API.

3|Updated Apr 20, 2026
One-click install
npx skills add https://github.com/langgenius/due-date-hq-jwl --skill resend-langgenius
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: resend
Source: https://github.com/langgenius/due-date-hq-jwl/tree/main/.agents/skills/resend
Command: npx skills add https://github.com/langgenius/due-date-hq-jwl --skill resend-langgenius

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires resend, and includes references (resource) components.

What problem does it solve? Integrating the Resend email API correctly involves many non-obvious pitfalls: idempotency keys for safe retries, webhook signature verification, template variable syntax, and SDK quirks like the Node.js SDK returning { data, error } instead of throwing. This Skill provides production-tested guidance and reference documentation so you avoid duplicate sends, unverified webhooks, and failed deliveries. ## Core Features & Use Cases - Transactional Email Sending: Send single or batch emails with idempotency keys, attachments, scheduling, and templates across Node.js, Python, Go, Ruby, PHP, Rust, Java, and .NET SDKs. - Inbound Email & Webhooks: Receive emails via webhooks with Svix signature verification, retrieve bodies and attachments through the Receiving API, and track delivery events like bounces and complaints. - Audience & Campaign Management: Manage domains, contacts, segments, topics, broadcasts, templates, automations, events, API keys, and request logs. - Use Case: You need to send order confirmation emails that survive retries without duplicates, then process customer replies. The Skill guides you to use an idempotency key like order-confirm/order-123, verify webhook signatures with resend.webhooks.verify(), and fetch inbound bodies via resend.emails.receiving.get(). ## Quick Start Ask the AI to send a transactional email with Resend using an idempotency key and proper error checking on the returned result.

Frequently Asked Questions about resend

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send an email with the Resend API in Node.js?

Install the resend package, initialize it with your API key, and call resend.emails.send with from, to, subject, and html parameters. The SDK returns { data, error } instead of throwing, so check the error field explicitly and pass an idempotency key for safe retries.

How do I verify Resend webhook signatures?

Use resend.webhooks.verify() with the raw request body, the svix-id, svix-timestamp, and svix-signature headers, and your webhook signing secret. Never parse the body as JSON first, since that breaks signature verification.

What is the difference between single and batch email sending in Resend?

Single sends support attachments and scheduling, while batch sends handle 2-100 distinct emails atomically but do not support attachments or scheduled_at. If any email in a batch fails validation, the entire batch fails.

Why does my Resend webhook not contain the email body?

Resend webhook payloads contain metadata only, such as sender, subject, and attachment IDs. Call resend.emails.receiving.get() with the email_id from the event to retrieve the HTML body, plain text, and headers.

Why am I getting a 403 error when sending from resend.dev?

The default [email protected] address is a sandbox that only delivers to your own Resend account email. Verify your own domain by adding the DNS records from the domain creation response, then send from an address on that verified domain.

Can I use Resend templates with custom variables?

Yes, templates support up to 50 variables using triple-mustache syntax like {{{CUSTOMER_NAME}}} with optional fallback values. Templates must be published before sending, and template cannot be combined with html, text, or react in the same send call.