Skip to main content

Documentation Index

Fetch the complete documentation index at: https://lava.so/docs/llms.txt

Use this file to discover all available pages before exploring further.

Transactional and marketing email API for sending, scheduling, and tracking messages from a verified domain. Best for product notifications, onboarding flows, password resets, and broadcasts to a contact list. Unlike SMTP relays, Resend ships a developer-first REST API with React-email rendering, idempotency keys, templates, automations, and per-message logs out of the box. 20 example endpoints available through Lava’s AI Gateway. See the Resend API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a catch-all provider — any valid URL under https://api.resend.com is supported. Any Resend API endpoint except credential-management routes such as api-keys. Construct URL as https://api.resend.com/{path}. Common roots: emails, broadcasts, automations, events, templates, contacts, contact-properties, segments, topics, domains, logs, webhooks, audiences (deprecated). See https://resend.com/docs/api-reference/introduction for the full reference. Default upstream rate limit: 5 requests/second per team. The endpoints below are curated examples.

Endpoints

Send a transactional email from a verified sender. Supports html, text, attachments, tags, and templates.

POST https://api.resend.com/emails — Free
const data = await lava.gateway('https://api.resend.com/emails', {
  body: {
"from": "Acme <onboarding@resend.dev>",
"to": [
  "delivered@resend.dev"
],
"subject": "hello world",
"html": "<p>it works!</p>"
},
});

Send up to 100 emails in a single request.

POST https://api.resend.com/emails/batch — Free
const data = await lava.gateway('https://api.resend.com/emails/batch', {
  body: [
{
  "from": "Acme <onboarding@resend.dev>",
  "to": [
    "delivered@resend.dev"
  ],
  "subject": "first",
  "html": "<p>one</p>"
},
{
  "from": "Acme <onboarding@resend.dev>",
  "to": [
    "delivered@resend.dev"
  ],
  "subject": "second",
  "html": "<p>two</p>"
}
],
});

List sent emails (cursor-paginated).

GET https://api.resend.com/emails — Free
const data = await lava.gateway('https://api.resend.com/emails', { method: 'GET' });

Retrieve a single sent email by id.

GET https://api.resend.com/emails/{email_id} — Free
const data = await lava.gateway('https://api.resend.com/emails/{email_id}', { method: 'GET' });

Update a scheduled email (e.g., reschedule the send time before it goes out).

PATCH https://api.resend.com/emails/{email_id} — Free
const data = await lava.gateway('https://api.resend.com/emails/{email_id}', { method: 'PATCH', body: {"scheduled_at":"2026-06-01T12:00:00Z"} });

Cancel a scheduled email before it is sent.

POST https://api.resend.com/emails/{email_id}/cancel — Free
const data = await lava.gateway('https://api.resend.com/emails/{email_id}/cancel', { method: 'POST' });

Create a broadcast (one-to-many email campaign) targeting a segment or audience.

POST https://api.resend.com/broadcasts — Free
const data = await lava.gateway('https://api.resend.com/broadcasts', {
  body: {
"name": "Launch announcement",
"from": "Acme <onboarding@resend.dev>",
"subject": "We just shipped",
"html": "<p>Big news.</p>",
"audience_id": "78261eea-8f8b-4381-83c6-79fa7120f1cf"
},
});

Send (or schedule) a previously created broadcast.

POST https://api.resend.com/broadcasts/{broadcast_id}/send — Free
const data = await lava.gateway('https://api.resend.com/broadcasts/{broadcast_id}/send', { body: {"scheduled_at":"in 1 hour"} });

List broadcasts in the workspace.

GET https://api.resend.com/broadcasts — Free
const data = await lava.gateway('https://api.resend.com/broadcasts', { method: 'GET' });

Create a contact in the workspace.

POST https://api.resend.com/contacts — Free
const data = await lava.gateway('https://api.resend.com/contacts', {
  body: {
"email": "jane@example.com",
"first_name": "Jane",
"last_name": "Doe",
"unsubscribed": false
},
});

List contacts (cursor-paginated).

GET https://api.resend.com/contacts — Free
const data = await lava.gateway('https://api.resend.com/contacts', { method: 'GET' });

Create a contact segment defined by filters.

POST https://api.resend.com/segments — Free
const data = await lava.gateway('https://api.resend.com/segments', { body: {"name":"US customers","filters":[]} });

Create a reusable email template with variables.

POST https://api.resend.com/templates — Free
const data = await lava.gateway('https://api.resend.com/templates', {
  body: {
"name": "Welcome",
"subject": "Welcome to {{ company }}",
"html": "<p>Hi {{ first_name }}</p>"
},
});

Replace an existing template by id.

PUT https://api.resend.com/templates/{template_id} — Free
const data = await lava.gateway('https://api.resend.com/templates/{template_id}', {
  method: 'PUT',
  body: {
"name": "Welcome",
"subject": "Updated subject",
"html": "<p>Updated body</p>"
},
});

List templates in the workspace.

GET https://api.resend.com/templates — Free
const data = await lava.gateway('https://api.resend.com/templates', { method: 'GET' });

Add a sending domain. DNS records must be verified separately.

POST https://api.resend.com/domains — Free
const data = await lava.gateway('https://api.resend.com/domains', { body: {"name":"example.com","region":"us-east-1"} });

List sending domains.

GET https://api.resend.com/domains — Free
const data = await lava.gateway('https://api.resend.com/domains', { method: 'GET' });

List per-request API logs (delivery, bounces, opens, clicks).

GET https://api.resend.com/logs — Free
const data = await lava.gateway('https://api.resend.com/logs', { method: 'GET' });

Delete a sending domain by id.

DELETE https://api.resend.com/domains/{domain_id} — Free
const data = await lava.gateway('https://api.resend.com/domains/{domain_id}', { method: 'DELETE' });

Register a webhook endpoint to receive email delivery / bounce / open / click events.

POST https://api.resend.com/webhooks — Free
const data = await lava.gateway('https://api.resend.com/webhooks', {
  body: {
"endpoint": "https://example.com/resend-webhook",
"events": [
  "email.sent",
  "email.delivered",
  "email.bounced"
]
},
});

Next Steps

All Providers

Browse all supported AI providers

Forward Proxy

Learn how to construct proxy URLs and authenticate requests