VX Agents

OpenAPI Marketplace · Email

Resend Email

v1.0.0 · 12 endpoints · 0 connections · shared by vx.ai

Send, schedule and track transactional email through Resend: one-off messages or batches of up to 100, scheduled sends you can still cancel, delivery status per email, and the verified sender domains, published templates and contacts behind them.

Connect this API to an AI agent Browse all specs

What you can do with Resend Email via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
GET /domains listDomains List sender domains and whether each one is verified
GET /domains/{domain_id} getDomain Get a domain's status, region and DNS records
GET /templates listTemplates List email templates
GET /templates/{id} getTemplate Get a template's subject, HTML and variables
GET /emails listEmails List recently sent emails
POST /emails sendEmail Send or schedule one email
GET /emails/{email_id} getEmail Get one email and its latest delivery event
POST /emails/batch sendBatchEmails Send up to 100 different emails in one request
POST /emails/{email_id}/cancel cancelScheduledEmail Cancel an email that is scheduled but not yet sent
GET /contacts listContacts List contacts
POST /contacts createContact Add a contact with name and subscription status
GET /contacts/{id} getContact Get a contact by id or email address

Authentication

bearerAuth

Bearer token — sent as Authorization: Bearer <token>

Resend API key, sent as Authorization: Bearer re_....

How to get a credential

  1. Sign in to the Resend dashboard and open API Keys.
  2. Click Create API Key, give it a name and pick a permission.
  3. Choose Full access to use every operation here, or Sending access (optionally limited to one domain) if the agent only sends email.
  4. Copy the key (starts with re_); it is shown only once.

Permissions used

Key permission Operations
Sending access sendEmail, sendBatchEmails
Full access listEmails, getEmail, cancelScheduledEmail, listDomains, getDomain, listTemplates, getTemplate, listContacts, getContact, createContact (and the sending operations)

Common errors

Status Meaning Fix
401 API key missing or malformed Send Authorization: Bearer re_... with the full key
403 Key not allowed for this call, or from domain not verified Use a Full access key; send from a domain that listDomains shows as verified
400 / 422 Invalid field (bad address, both html and template, missing subject) Fix the body; validation errors name the field
429 Rate limit (default 10 requests per second per team) or daily quota Wait and retry; use sendBatchEmails for many messages

Store the key as a VX Agents credential (bearer token) so it is never pasted into chats or prompts.

Usage guide

Setup

  • Credential: a Resend API key (re_...). A Full access key covers every operation; a Sending access key only covers sendEmail and sendBatchEmails. Store it as a VX Agents bearer credential.
  • Call listDomains first and pin the verified domain to use in from (e.g. Acme <[email protected]>).

Send an email

  1. listDomains → pick a domain with status verified; from must use it.
  2. Optional: listTemplates / getTemplate to reuse a published template and see its variables.
  3. Draft the message: to (up to 50 addresses), subject, html or text, optional reply_to, cc, bcc, tags.
  4. Show the sender, recipients, subject and body to the user and get confirmation.
  5. sendEmail (add scheduled_at as an ISO 8601 time to schedule it). Keep the returned id.
  6. getEmail with that id to check last_event (sent, delivered, bounced, complained...).
  7. Changed plans? cancelScheduledEmail works only while the email is still scheduled.

Contacts

listContacts / getContact (id or email) to look someone up; createContact with email, first_name, last_name, unsubscribed. Confirm before adding people.

Good to know

  • sendBatchEmails sends up to 100 different emails in one call; it does not support attachments yet. To send one message to many people, prefer separate emails over a long to list so recipients do not see each other.
  • Send an Idempotency-Key header value when retrying a send so a timeout does not deliver twice.
  • Default rate limit is 10 requests per second per team, shared by all keys; back off on 429.
  • listEmails returns recent sent emails with cursor pagination (limit, after).
  • Audiences are deprecated in the Resend docs; contacts are now global, so this spec uses /contacts.

Source: Resend API reference (https://resend.com/docs/api-reference/introduction), checked 2026-10-16.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “Resend Email” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs