nilslice/resend

# Resend Email API

A comprehensive API for sending emails, managing domains, handling contact lists, and creating email broadcasts.

## Email Operations

### Send Single Email

```plaintext

emails_post

Required:

- from: "Your Name "

- to: ["[email protected]"] (max 50 recipients)

- subject: "Email subject"

Optional:

- html: HTML version

- text: Plain text version

- cc: Array of CC addresses

- bcc: Array of BCC addresses

- reply_to: Reply-to addresses

- scheduled_at: ISO 8601 date

- attachments: Array of files

- tags: Array of name-value pairs

```

### Batch Email Operations

```plaintext

emails_batch_post

- Send up to 100 emails simultaneously

- Same parameters as single email

- Each email can have unique recipients/content

```

### Email Management

```plaintext

emails_email_id_get

- Retrieve email details

emails_email_id_patch

- Update email properties

emails_email_id_cancel_post

- Cancel scheduled email

```

## Domain Management

### Domain Operations

```plaintext

domains_post

Required:

- name: Domain name

Optional:

- region: "us-east-1" | "eu-west-1" | "sa-east-1"

domains_get

- List all domains

domains_domain_id_get

- Get single domain

domains_domain_id_delete

- Remove domain

domains_domain_id_patch

Optional:

- open_tracking: boolean

- click_tracking: boolean

- tls: "enforced" | "opportunistic"

```

### Domain Verification

```plaintext

domains_domain_id_verify_post

- Verify domain ownership

```

## Audience Management

### Audiences

```plaintext

audiences_post

Required:

- name: Audience name

audiences_get

- List all audiences

audiences_id_get

- Get single audience

audiences_id_delete

- Remove audience

```

### Contact Management

```plaintext

audiences_audience_id_contacts_post

Required:

- email: "[email protected]"

Optional:

- first_name: String

- last_name: String

- unsubscribed: boolean

audiences_audience_id_contacts_get

- List all contacts

audiences_audience_id_contacts_id_get

- Get single contact

audiences_audience_id_contacts_id_patch

- Update contact details

audiences_audience_id_contacts_id_delete

- Remove contact by ID

audiences_audience_id_contacts_email_delete

- Remove contact by email

```

## Broadcast Management

### Broadcast Operations

```plaintext

broadcasts_post

Required:

- audience_id: Target audience

- from: Sender address

- subject: Email subject

Optional:

- name: Broadcast name

- reply_to: Array of reply addresses

- preview_text: Email preview

- html: HTML content

- text: Plain text content

broadcasts_get

- List all broadcasts

broadcasts_id_get

- Get single broadcast

broadcasts_id_delete

- Remove draft broadcast

```

### Broadcast Scheduling

```plaintext

broadcasts_id_send_post

Optional:

- scheduled_at: ISO 8601 date

```

## API Key Management

### API Keys

```plaintext

api_keys_post

Required:

- name: Key name

Optional:

- permission: "full_access" | "sending_access"

- domain_id: Restrict to specific domain

api_keys_get

- List all API keys

api_keys_api_key_id_delete

- Remove API key

```

## Best Practices

1. Email Sending

- Validate email addresses

- Use both HTML and text versions

- Implement proper error handling

- Monitor delivery status

2. Domain Management

- Verify domains before use

- Configure tracking settings appropriately

- Use appropriate TLS settings

3. Audience Management

- Keep contact lists clean

- Handle unsubscribes promptly

- Validate contact data

4. API Keys

- Use minimal permissions

- Rotate keys regularly

- Secure key storage

## Common Parameters

### Email Content

- Maximum sizes vary by content type

- Support for HTML and plain text

- Attachment support with size limits

### Timing

- All scheduled times in ISO 8601

- Server timezone handling

- Immediate vs scheduled sending

### Tags

```json

{

"name": "string (ASCII only)",

"value": "string (ASCII only)",

"max_length": 256

}

```

## Error Handling

Common HTTP status codes:

- 200: Success

- 400: Bad Request

- 401: Unauthorized

- 403: Forbidden

- 404: Not Found

- 429: Too Many Requests

- 500: Server Error

## Rate Limits

- Batch emails: 100 per request

- API calls: Varies by endpoint

- Consider implementing backoff strategies

Available Tools

emails_post

Send an email

emails_email_id_get

Retrieve a single email

emails_email_id_patch

Update a single email

emails_email_id_cancel_post

Cancel the schedule of the e-mail.

emails_batch_post

Trigger up to 100 batch emails at once.

domains_get

Retrieve a list of domains

domains_post

Create a new domain

domains_domain_id_get

Retrieve a single domain

domains_domain_id_delete

Remove an existing domain

domains_domain_id_patch

Update an existing domain

domains_domain_id_verify_post

Verify an existing domain

api_keys_get

Retrieve a list of API keys

api_keys_post

Create a new API key

api_keys_api_key_id_delete

Remove an existing API key

audiences_get

Retrieve a list of audiences

audiences_post

Create a list of contacts

audiences_id_get

Retrieve a single audience

audiences_id_delete

Remove an existing audience

audiences_audience_id_contacts_get

Retrieve a list of contacts

audiences_audience_id_contacts_post

Create a new contact

audiences_audience_id_contacts_email_delete

Remove an existing contact by email

audiences_audience_id_contacts_id_get

Retrieve a single contact

audiences_audience_id_contacts_id_delete

Remove an existing contact by id

audiences_audience_id_contacts_id_patch

Update a single contact

broadcasts_get

Retrieve a list of broadcasts

broadcasts_post

Create a broadcast

broadcasts_id_get

Retrieve a single broadcast

broadcasts_id_delete

Remove an existing broadcast that is in the draft status

broadcasts_id_send_post

Send or schedule a broadcast