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