Resend logo

Skill

migrate-sendgrid

migrate SendGrid integrations to Resend

Covers SendGrid Resend Migration Email

Description

Use when migrating SendGrid email integration to Resend - detects @sendgrid/mail, sgMail, sendgrid-ruby, sendgrid-go, sendgrid-java, sendgrid-php, or SENDGRID_API_KEY patterns.

SKILL.md

Migrate from SendGrid to Resend

Overview

Resend is a modern email platform for developers. This skill covers migrating SendGrid integrations to Resend across all supported SDKs.

Automated tool: resend.com/migrate/sendgrid — paste SendGrid code and get Resend code instantly.

Detection Patterns

Code is SendGrid if it contains any of: @sendgrid/mail, sendgrid, SendGrid, SENDGRID, sgMail, sg.client, sendgrid-ruby, sendgrid-go, sendgrid-java, sendgrid-php

Migration Checklist

Key Differences at a Glance

AspectSendGridResend
API endpointhttps://api.sendgrid.com/v3/mail/sendhttps://api.resend.com/emails
Auth headerAuthorization: Bearer $SENDGRID_API_KEYAuthorization: Bearer $RESEND_API_KEY
Batch sendsgMail.sendMultiple()resend.batch.send()
Response[response, body]{ data, error }
IdempotencyNot supportedIdempotency-Key header or SDK option
Rate limit infoError onlyIETF-standard response headers
Rust SDKNo official SDKresend-rs available
TemplatesDynamic templates (templateId)React Email components or html
TrackingPer-email trackingSettingsConfigured per-domain in dashboard
Unsubscribe groupsasm fieldResend Topics (topic_id)
IP poolsipPoolName fieldAccount-level in dashboard

Quick Reference

ReferenceUse When
SDK ExamplesConverting code for Node.js, Python, Ruby, Go, PHP, Java, .NET, Elixir, cURL
SMTPUpdating SMTP hostname, port, credentials
WebhooksMapping SendGrid event types to Resend event types
Feature MappingTemplates, tracking, unsubscribe groups, idempotency

Dashboard Concepts

SendGridResend
Sender AuthenticationDomains page
ActivityEmails page
Dashboard (stats)Metrics page
Event WebhookWebhooks page

Common Mistakes

MistakeFix
asm has "no equivalent" in ResendIt does — use topic_id field + Resend Topics. See Feature Mapping
Webhook unsubscribe maps to email.unsubscribedThat event doesn't exist. Use contact.updated. See Webhooks
sendAt: unixTimestamp copied overResend uses ISO 8601 string: scheduledAt: new Date(...).toISOString()
Expecting [response, body] from resend.emails.send()Resend returns { data, error }
Looking for a CLI migration toolThe tool is a web UI: resend.com/migrate/sendgrid — no CLI
sgMail.sendMultiple() replaced by passing array to to fieldWrong — to array sends one email to multiple recipients. resend.batch.send() sends multiple different emails in one call
dropped SendGrid event has no Resend equivalentMonitor email.bounced and email.delivery_delayed instead. See Webhooks
Resend SMTP only supports ports 465 and 587Resend also supports 2465 (SMTPS) and 2587 (STARTTLS) as alternatives. See SMTP
Forgot to rename env varSENDGRID_API_KEYRESEND_API_KEY

Resources

© 2026 YourAI.tools. Every skill from an identity-verified publisher.

Independent catalog. Not affiliated with, endorsed by, or sponsored by Anthropic or any listed publisher. All trademarks belong to their respective owners.