All skills
resend avatar

/resend

@dcdca08 official
by resendresend/resend-skills193 stars
28

Use when working with the Resend email API — sending transactional emails (single or batch), receiving inbound emails via webhooks, managing email templates, tracking delivery events, managing domains, contacts, broadcasts, webhooks, API keys, automations, events, viewing API request logs, checking account usage and quotas, or setting up the Resend SDK. Always use this skill when the user mentions Resend, even for simple tasks like "send an email with Resend" — the skill contains critical gotchas (idempotency keys, webhook verification, template variable syntax) that prevent common production issues.

Use this Skill: https://skilld.dev/gh/resend/resend-skills/resend

This session only. Nothing lands on disk.

referencesinstallation.md

≈838 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Resend SDK Installation Guide

Always install the latest SDK version to ensure you have support for all features including webhook verification (webhooks.verify()), email receiving (emails.receiving.get()), and domain claiming (domains.claims.*). Older versions may not include these methods.

Minimum SDK Versions

These are the minimum versions required for full functionality (sending, receiving, and webhook verification). Always prefer the latest version when possible.

Language Package Min Version Install
Node.js resend >= 6.14.0 npm install resend
Python resend >= 2.34.0 pip install resend
Go resend-go/v3 >= 3.11.0 go get github.com/resend/resend-go/v3
Ruby resend >= 1.6.0 gem install resend
PHP resend/resend-php >= 1.1.0 composer require resend/resend-php
Rust resend-rs >= 0.26.1 cargo add resend-rs
Java resend-java >= 4.16.0 See Maven/Gradle below
.NET Resend >= 0.2.1 dotnet add package Resend

If the project already has a Resend SDK installed, check the version and upgrade if it's below the minimum. Older SDKs may be missing webhooks.verify(), emails.receiving.get(), or domains.claims.*, which power webhook security, inbound email, and domain claiming.

Detecting Project Language

Check for these files to determine the project's language/framework:

File Language SDK
package.json Node.js/TypeScript resend
requirements.txt or pyproject.toml Python resend
go.mod Go resend-go/v3
Gemfile Ruby resend
composer.json PHP resend/resend-php
Cargo.toml Rust resend-rs
pom.xml or build.gradle Java resend-java
*.csproj or *.sln .NET Resend
mix.exs Elixir resend

Installation Commands

Node.js

npm install resend

Alternative package managers:

yarn add resend
pnpm add resend
bun add resend

Python

pip install resend

Go

go get github.com/resend/resend-go/v3

Ruby

gem install resend

Or add to Gemfile:

gem 'resend'

PHP

composer require resend/resend-php

Rust

cargo add resend-rs
cargo add tokio -F macros,rt-multi-thread

Java

Gradle:

implementation 'com.resend:resend-java:4.16.0'

Maven:

<dependency>
  <groupId>com.resend</groupId>
  <artifactId>resend-java</artifactId>
  <version>4.16.0</version>
</dependency>

.NET

dotnet add package Resend

Elixir

Add to mix.exs:

def deps do
  [
    {:resend, "~> 0.4.0"}
  ]
end

API Key Setup

All SDKs require a Resend API key. Get one at https://resend.com/api-keys

Recommended: Store API key in environment variable RESEND_API_KEY rather than hardcoding.

cURL (No SDK)

For quick tests or languages without an SDK, use the REST API directly:

curl -X POST 'https://api.resend.com/emails' \
  -H 'Authorization: Bearer re_xxxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "from": "Acme <onboarding@resend.dev>",
    "to": ["delivered@resend.dev"],
    "subject": "hello world",
    "html": "<p>it works!</p>"
  }'

Source: SKILL.md on GitHub

1 alert1d5 checks · Risk SAFE
  • Gen Agent Trust Hub1d

    The Resend skill is a comprehensive documentation and code integration package for the Resend email service. It follows security best practices, including mandatory webhook signature verification, environment variable usage for secrets, and idempotency for retry safety. While it exposes a surface for processing inbound emails, it includes explicit guidance on mitigating associated risks.

  • Socket1d

    No alerts

  • Snyk1d

    Risk: MEDIUM · 1 issue

  • Runlayer6mo

    12/23 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at dcdca08. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 2 days ago
Other metadata
metadata
{
  "author": "resend",
  "version": "3.13.0",
  "homepage": "https://resend.com/agent-skills",
  "source": "https://github.com/resend/resend-skills",
  "openclaw": {
    "primaryEnv": "RESEND_API_KEY",
    "requires": {
      "env": [
        "RESEND_API_KEY"
      ]
    },
    "envVars": [
      {
        "name": "RESEND_API_KEY",
        "required": true,
        "description": "Resend API key for sending and receiving emails"
      },
      {
        "name": "RESEND_WEBHOOK_SECRET",
        "required": false,
        "description": "Webhook signing secret for verifying event payloads"
      }
    ],
    "links": {
      "repository": "https://github.com/resend/resend-skills",
      "documentation": "https://resend.com/docs/resend-skill"
    }
  }
}
inputs
[
  {
    "name": "RESEND_API_KEY",
    "description": "Resend API key for sending and receiving emails. Get yours at https://resend.com/api-keys",
    "required": true
  },
  {
    "name": "RESEND_WEBHOOK_SECRET",
    "description": "Webhook signing secret for verifying event payloads. Found in the Resend dashboard under Webhooks after creating an endpoint.",
    "required": false
  }
]
references
[
  "sending",
  "receiving.md",
  "templates.md",
  "webhooks.md",
  "domains.md",
  "contacts.md",
  "broadcasts.md",
  "api-keys.md",
  "logs.md",
  "contact-properties.md",
  "segments.md",
  "topics.md",
  "automations.md",
  "events.md",
  "usage.md",
  "installation.md",
  "fetch-all-templates.mjs"
]
  • Python
  • API
  • resend
  • email
  • transactional-email
  • webhooks
  • nodejs
  • templates
  • idempotency

README badge

README badge for resend/resend-skills/resend

Integrates the Resend email API for sending single or batch transactional emails, receiving inbound emails via webhooks, managing templates and domains, and tracking delivery events. Use this skill whenever working with Resend — it includes critical guidance on idempotency keys, webhook verification, template variable syntax, and common production gotchas like batch limitations and SDK error handling patterns.

Generated from the current SKILL.md.

Does this skill support both sending and receiving emails?
Yes. The skill covers transactional sends (single and batch), inbound email reception via webhooks, and email management. Receiving requires domain setup and webhook verification; batch sending does not support attachments or scheduling.
What are idempotency keys and why do I need them?
Idempotency keys prevent duplicate emails when retrying failed requests. Format them as `<event-type>/<entity-id>` (e.g. `welcome-email/user-123`) for single sends and `batch-<event-type>/<batch-id>` for batch sends. Keys expire after 24 hours.
How do I verify webhook signatures from Resend?
Use `resend.webhooks.verify()` with the raw request body and svix headers (`svix-id`, `svix-timestamp`, `svix-signature`). Always verify before processing events — unverified webhooks cannot be trusted.
Does the Node.js SDK throw exceptions for API errors?
No. The SDK returns `{ data, error }` for all API calls. Always check the `error` property explicitly instead of using try/catch for handling API failures.
Can I send batch emails with attachments?
No. Batch sending (`POST /emails/batch`) does not support attachments or scheduling. Use single sends when attachments are required.

Generated from the current SKILL.md. These answers refresh after source changes.