English Vocabulary for the Resend Email API

Learn the professional English vocabulary for Resend — send() method, React Email, domain verification, webhooks, batch send, idempotency, and how engineers discuss transactional email in real projects.

Resend is a developer-focused transactional email API built for modern applications. It integrates seamlessly with React Email for building email templates as React components, and it provides a clean SDK for sending emails from Node.js, Python, and other languages. If your application sends order confirmations, password resets, notifications, or any other transactional emails through Resend, understanding its vocabulary will help you communicate clearly with teammates, debug delivery issues, and design reliable email pipelines. This post covers the core terms you will encounter when working with Resend.

Key Vocabulary

send() method The primary SDK method for sending a single email through Resend. You pass it an object with from, to, subject, and either html, text, or react (a React Email component). It returns a promise that resolves to an object containing the sent email’s id. Example: “Call resend.emails.send() with the React Email component for the welcome email — the returned id is what you store in the database to track delivery status.”

from / to / subject The three required fields in every send() call. from must be an address on a verified domain. to accepts a string or an array of strings for multiple recipients. subject is the email subject line displayed in the inbox. Example: “The from address must match a domain you have verified in your Resend account — using a Gmail address or an unverified domain will cause the send to fail with an authorization error.”

React Email An open-source library (maintained by the Resend team) for building email templates using React components. Instead of writing raw HTML tables and inline styles, you compose emails from pre-built components like <Button>, <Text>, <Section>, and <Hr>. React Email renders to email-compatible HTML at send time. Example: “We’re using React Email to build all transactional templates — the <Button> and <Text> components handle cross-client rendering so we don’t need to write table-based HTML by hand.”

Domain verification The process of proving to Resend that you own and control the domain you want to send email from. It requires adding DNS records (SPF, DKIM, and optionally DMARC) to your domain’s DNS configuration. Unverified domains cannot be used in the from field. Example: “Domain verification is blocking the launch — add the SPF and DKIM records to the DNS provider, then click ‘Verify’ in the Resend dashboard. It usually propagates within a few minutes.”

Webhooks HTTP callbacks that Resend sends to your application when email events occur. Key events include email.delivered, email.bounced, email.complained (spam report), and email.opened. You register a webhook endpoint in your Resend account settings and handle these events to track deliverability and update user records. Example: “Set up a webhook endpoint for email.bounced events — when we get a bounce we should mark the user’s email address as invalid in the database and stop sending to it.”

email.delivered / email.bounced Two of the most important Resend webhook event types. email.delivered confirms the receiving mail server accepted the message. email.bounced indicates it was rejected — either as a hard bounce (invalid address) or a soft bounce (temporary failure like a full inbox). Example: “We’re seeing a 4% bounce rate on the campaign — filter the email.bounced webhook events by bounce type to separate hard bounces (invalid addresses) from soft bounces (temporary failures) and handle them differently.”

Batch send Resend’s API for sending multiple emails in a single API call — up to 100 emails per batch request. More efficient than calling send() in a loop, and it reduces the risk of hitting rate limits for high-volume sending. Example: “Use batch send for the weekly digest emails — calling send() in a loop for 10,000 users will hit the rate limit, but sending in batches of 100 will be much more reliable.”

Idempotency A property where sending the same request multiple times produces the same result without duplicating side effects — in this case, without sending duplicate emails. Resend supports idempotency keys: if you send the same key twice, the second request returns the result of the first without sending another email. Example: “Pass an idempotency key when sending the password reset email — if the user double-clicks the button and two requests fire, the idempotency key ensures they only receive one email.”

How to Use This Vocabulary

Email reliability discussions center on three things: domain verification (are we even allowed to send?), deliverability (are our emails landing in inboxes?), and event tracking (are we handling bounces and complaints?). Teams use webhook events to close the feedback loop — updating database records when emails bounce and suppressing future sends to invalid addresses.

React Email comes up in design and code review discussions. Engineers debate component structure, how to pass dynamic data to templates, and how to preview emails during development. The key advantage — avoiding raw HTML table markup — is a common talking point when justifying the dependency.

Example Conversation

Zara: Password reset emails aren’t arriving. Resend dashboard shows them as sent. Felix: Check if the domain verification is complete — from addresses on unverified domains get silently rejected sometimes. Zara: Domain looks verified. Are we handling the email.bounced webhook? Maybe the address is on a suppression list. Felix: Good point. Check the suppression list in the Resend dashboard — if the address bounced before, Resend will block future sends to it automatically.

Practice

  1. Set up Resend in a test project, verify a domain, and send a test email using the send() method. Write down each step in English, naming every field you configure and why.
  2. Design a webhook handler for email.bounced events. Describe in English what your code should do when it receives a hard bounce vs. a soft bounce — what database fields would you update and why?
  3. Explain idempotency to a non-technical teammate using a real-world analogy (e.g., pressing a door-close button in an elevator multiple times). Then map the analogy back to the email idempotency key use case.