@unosend/node
v1.1.0
Published
Official Node.js SDK for Unosend - Email API Service
Downloads
313
Maintainers
Readme
@unosend/node
Official Node.js SDK for Unosend - Email API Service.
Installation
npm install @unosend/nodeQuick Start
import { Unosend } from '@unosend/node';
const unosend = new Unosend('un_your_api_key');
// Send an email
const { data, error } = await unosend.emails.send({
from: '[email protected]',
to: '[email protected]',
subject: 'Hello from Unosend!',
html: '<h1>Welcome!</h1><p>Thanks for signing up.</p>'
});
if (error) {
console.error('Failed to send:', error.message);
} else {
console.log('Email sent:', data.id);
}Features
- 📧 Emails - Send transactional emails with HTML/text content
- 🌐 Domains - Manage and verify sending domains
- 👥 Audiences - Create and manage contact lists
- 📇 Contacts - Add, update, and remove contacts
API Reference
Emails
// Send an email
const { data, error } = await unosend.emails.send({
from: '[email protected]',
to: ['[email protected]', '[email protected]'],
subject: 'Hello!',
html: '<h1>Hello World</h1>',
text: 'Hello World', // Optional plain text version
replyTo: '[email protected]',
cc: ['[email protected]'],
bcc: ['[email protected]'],
headers: {
'X-Custom-Header': 'value'
},
tags: [
{ name: 'campaign', value: 'welcome' }
]
});
// Get email by ID
const { data, error } = await unosend.emails.get('email_id');
// List emails
const { data, error } = await unosend.emails.list({ limit: 10, offset: 0 });Domains
// Add a domain
const { data, error } = await unosend.domains.create('yourdomain.com');
// Verify domain DNS records
const { data, error } = await unosend.domains.verify('domain_id');
// List domains
const { data, error } = await unosend.domains.list();
// Delete domain
const { data, error } = await unosend.domains.delete('domain_id');Audiences
// Create an audience
const { data, error } = await unosend.audiences.create('Newsletter Subscribers');
// List audiences
const { data, error } = await unosend.audiences.list();
// Get audience
const { data, error } = await unosend.audiences.get('audience_id');
// Delete audience
const { data, error } = await unosend.audiences.delete('audience_id');Contacts
// Add a contact
const { data, error } = await unosend.contacts.create('audience_id', {
email: '[email protected]',
firstName: 'John',
lastName: 'Doe'
});
// List contacts in an audience
const { data, error } = await unosend.contacts.list('audience_id');
// Update a contact
const { data, error } = await unosend.contacts.update('contact_id', {
firstName: 'Jane',
unsubscribed: false
});
// Delete a contact
const { data, error } = await unosend.contacts.delete('contact_id');Error Handling
All methods return { data, error }. Check for errors before using data:
const { data, error } = await unosend.emails.send({...});
if (error) {
console.error(`Error ${error.code}: ${error.message}`);
return;
}
console.log('Success:', data);Configuration
// Custom base URL (for self-hosted instances)
const unosend = new Unosend('un_your_api_key', {
baseUrl: 'https://your-instance.com/api/v1'
});TypeScript Support
This SDK is written in TypeScript and includes full type definitions.
import { Unosend, SendEmailOptions, Email, UnosendError } from '@unosend/node';License
MIT
