Installations
npm install mailersend
Developer Guide
Typescript
No
Module System
CommonJS
Node Version
14.21.3
NPM Version
6.14.18
Score
59.2
Supply Chain
99
Quality
76.9
Maintenance
100
Vulnerability
100
License
Releases
Contributors
Languages
TypeScript (100%)
Developer
Download Statistics
Total Downloads
1,696,548
Last Day
1,706
Last Week
10,851
Last Month
78,816
Last Year
955,744
GitHub Statistics
138 Stars
193 Commits
19 Forks
9 Watching
22 Branches
22 Contributors
Bundle Size
135.08 kB
Minified
24.75 kB
Minified + Gzipped
Package Meta Information
Latest Version
2.3.0
Package Id
mailersend@2.3.0
Unpacked Size
220.25 kB
Size
24.14 kB
File Count
103
NPM Version
6.14.18
Node Version
14.21.3
Publised On
30 Aug 2024
Total Downloads
Cumulative downloads
Total Downloads
1,696,548
Last day
-31.9%
1,706
Compared to previous day
Last week
-41.9%
10,851
Compared to previous week
Last month
-2.9%
78,816
Compared to previous month
Last year
75.1%
955,744
Compared to previous year
Daily Downloads
Weekly Downloads
Monthly Downloads
Yearly Downloads
Dependencies
3
MailerSend Node.js SDK
Welcome to MailerSend 👋
Send emails and SMS in minutes
Developers come for the high deliverability, and stay because our intuitive API and built-in integrations make life easier. 🤝
For more info, you can:
- Visit our Developers site 💻 for REST API reference
- Read our Knowledge base ❓ for guides on how to use MailerSend
- Contact our Support team 📨 if you require more assistance
V1 Documentation can be found here
Table of Contents
- Installation
- Usage
- Support and Feedback
- License
Installation
Setup
1npm install mailersend
if you would like to use the env approach as shown in the examples, please run
1npm install dotenv --save
Usage
Send an email
1import 'dotenv/config';
2import { MailerSend, EmailParams, Sender, Recipient } from "mailersend";
3
4const mailerSend = new MailerSend({
5 apiKey: process.env.API_KEY,
6});
7
8const sentFrom = new Sender("you@yourdomain.com", "Your name");
9
10const recipients = [
11 new Recipient("your@client.com", "Your Client")
12];
13
14const emailParams = new EmailParams()
15 .setFrom(sentFrom)
16 .setTo(recipients)
17 .setReplyTo(sentFrom)
18 .setSubject("This is a Subject")
19 .setHtml("<strong>This is the HTML content</strong>")
20 .setText("This is the text content");
21
22await mailerSend.email.send(emailParams);
23
Add CC, BCC recipients
1import 'dotenv/config'; 2import { MailerSend, EmailParams, Sender, Recipient } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const sentFrom = new Sender("bbbb@yourdomain.com", "Your name"); 9 10const recipients = [ 11 new Recipient("your@client.com", "Your Client") 12]; 13const cc = [ 14 new Recipient("your_cc@client.com", "Your Client CC") 15]; 16const bcc = [ 17 new Recipient("your_bcc@client.com", "Your Client BCC") 18]; 19 20const emailParams = new EmailParams() 21 .setFrom(sentFrom) 22 .setTo(recipients) 23 .setCc(cc) 24 .setBcc(bcc) 25 .setSubject("This is a Subject") 26 .setHtml("<strong>This is the HTML content</strong>") 27 .setText("This is the text content"); 28 29await mailerSend.email.send(emailParams);
Send a template-based email
1import 'dotenv/config';
2import { MailerSend, EmailParams, Sender, Recipient } from "mailersend";
3
4const mailerSend = new MailerSend({
5 apiKey: process.env.API_KEY,
6});
7
8const sentFrom = new Sender("you@yourdomain.com", "Your name");
9
10const recipients = [
11 new Recipient("your@client.com", "Your Client")
12];
13
14const emailParams = new EmailParams()
15 .setFrom(sentFrom)
16 .setTo(recipients)
17 .setReplyTo(sentFrom)
18 .setSubject("This is a Subject")
19 .setTemplateId('templateId');
20
21await mailerSend.email.send(emailParams);
22
Personalization
1import 'dotenv/config'; 2import { MailerSend, EmailParams, Sender, Recipient } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const sentFrom = new Sender("you@yourdomain.com", "Your name"); 9 10const recipients = [ 11 new Recipient("your@client.com", "Your Client") 12]; 13 14const personalization = [ 15 { 16 email: "your@client.com", 17 data: { 18 test: 'Test Value' 19 }, 20 } 21]; 22 23const emailParams = new EmailParams() 24 .setFrom(sentFrom) 25 .setTo(recipients) 26 .setReplyTo(sentFrom) 27 .setPersonalization(personalization) 28 .setSubject("Subject, {{ test }}") 29 .setHtml("This is the HTML content, {{ test }}") 30 .setText("This is the text content, {{ test }}"); 31 32await mailerSend.email.send(emailParams); 33
Send email with attachment
1import 'dotenv/config'; 2import fs from "fs"; 3import { MailerSend, EmailParams, Sender, Recipient, Attachment } from "mailersend"; 4 5const mailerSend = new MailerSend({ 6 apiKey: process.env.API_KEY, 7}); 8 9const sentFrom = new Sender("you@yourdomain.com", "Your name"); 10 11const recipients = [ 12 new Recipient("your@client.com", "Your Client") 13]; 14 15const attachments = [ 16 new Attachment( 17 fs.readFileSync('/path/to/file.pdf', { encoding: 'base64' }), 18 'file.pdf', 19 'attachment' 20 ) 21] 22 23const emailParams = new EmailParams() 24 .setFrom(sentFrom) 25 .setTo(recipients) 26 .setReplyTo(sentFrom) 27 .setAttachments(attachments) 28 .setSubject("This is a Subject") 29 .setHtml("<strong>This is the HTML content</strong>") 30 .setText("This is the text content"); 31 32await mailerSend.email.send(emailParams); 33
Send email with inline attachment
1import 'dotenv/config'; 2import fs from "fs"; 3import { MailerSend, EmailParams, Sender, Recipient, Attachment } from "mailersend"; 4 5const mailerSend = new MailerSend({ 6 apiKey: process.env.API_KEY, 7}); 8 9const sentFrom = new Sender("you@yourdomain.com", "Your name"); 10 11const recipients = [ 12 new Recipient("your@client.com", "Your Client") 13]; 14 15const attachments = [ 16 new Attachment( 17 fs.readFileSync('/path/to/file.png', { encoding: 'base64' }), 18 'file.png', 19 'inline', 20 '0123456789' 21 ) 22] 23 24const emailParams = new EmailParams() 25 .setFrom(sentFrom) 26 .setTo(recipients) 27 .setReplyTo(sentFrom) 28 .setAttachments(attachments) 29 .setSubject("This is a Subject") 30 .setHtml("<strong>This is the HTML content with an inline image attachment <img src=\"cid:0123456789\"/></strong>") 31 .setText("This is the text content"); 32 33await mailerSend.email.send(emailParams); 34
Send a scheduled email
1import 'dotenv/config';
2import { MailerSend, EmailParams, Sender, Recipient } from "mailersend";
3
4const mailerSend = new MailerSend({
5 apiKey: process.env.API_KEY,
6});
7
8const sentFrom = new Sender("you@yourdomain.com", "Your name");
9
10const recipients = [
11 new Recipient("your@client.com", "Your Client")
12];
13
14const emailParams = new EmailParams()
15 .setFrom(sentFrom)
16 .setTo(recipients)
17 .setReplyTo(sentFrom)
18 .setSubject("This is a scheduled Subject")
19 .setHtml("<strong>This is a scheduled HTML content</strong>")
20 .setText("This is a scheduled text content")
21 .setSendAt(Math.floor((new Date(Date.now()+ 30*60*1000)).getTime() / 1000)); //send in 30mins NB:param has to be a Unix timestamp e.g 2443651141
22
23await mailerSend.email.send(emailParams);
24
Send bulk emails
1import 'dotenv/config';
2import { MailerSend, EmailParams, Sender, Recipient } from "mailersend";
3
4const mailerSend = new MailerSend({
5 apiKey: process.env.API_KEY,
6});
7
8const sentFrom = new Sender("your@yourdomain.com", "Your name");
9
10const bulkEmails = [];
11
12const emailParams = new EmailParams()
13 .setFrom(sentFrom)
14 .setTo([
15 new Recipient("your@client.com", "Your Client")
16 ])
17 .setSubject("This is a Subject")
18 .setHtml("<strong>This is the HTML content</strong>")
19 .setText("This is the text content");
20
21bulkEmails.push(emailParams);
22
23const emailParams2 = new EmailParams()
24 .setFrom(sentFrom)
25 .setTo([
26 new Recipient("your_2@client.com", "Your Client 2")
27 ])
28 .setSubject("This is a Subject 2")
29 .setHtml("<strong>This is the HTML content 2</strong>")
30 .setText("This is the text content 2");
31
32bulkEmails.push(emailParams2);
33
34await mailerSend.email.sendBulk(bulkEmails);
35
Get bulk request status
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.getBulkStatus('bulk_email_id') // bulk email Id e.g 63af1fdb790d97105a090001 9 .then((response) => { 10 console.log(response.body); 11 }); 12
Tokens
Create a token
1import 'dotenv/config'; 2import { MailerSend, Token} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const token = new Token() 9 .setName("Token name") 10 .setDomainId("domain_id") 11 .setScopes([ 12 "email_full", 13 "domains_read", 14 "domains_full", 15 "activity_read", 16 "activity_full", 17 "analytics_read", 18 "analytics_full", 19 "tokens_full", 20 ]); 21 22mailerSend.token.create(token) 23 .then((response) => console.log(response.body)) 24 .catch((error) => console.log(error.body)); 25
Update token
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.token.updateSettings("token_id", { 9 status: "pause", 10}) 11 .then((response) => console.log(response.body)) 12 .catch((error) => console.log(error.body)); 13
Delete token
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.token.delete("token_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Activity
Get activity list
1import 'dotenv/config'; 2import { MailerSend, ActivityEventType } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const queryParams = { 9 limit: 10, // Min: 10, Max: 100, Default: 25 10 page: 2, 11 date_from: 1443651141, // Unix timestamp 12 date_to: 1443651141, // Unix timestamp 13 event: [ActivityEventType.SENT, ActivityEventType.SOFT_BOUNCED] 14} 15 16mailerSend.email.activity.domain("domain_id", queryParams) 17 .then((response) => console.log(response.body)) 18 .catch((error) => console.log(error)); 19
Analytics
Get activity data by date
1import 'dotenv/config'; 2import { ActivityEventType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.analytics.byDate({ 9 date_from: 1443651141, 10 date_to: 2443651141, 11 event: [ActivityEventType.CLICKED, ActivityEventType.OPENED], 12}).then(response => { 13 console.log(response.body); 14}).catch(error => { 15 console.log(error.body); 16}); 17
Opens by country
1import 'dotenv/config'; 2import { ActivityEventType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.analytics.byCountry({ 9 date_from: 1443651141, 10 date_to: 2443651141, 11}).then(response => { 12 console.log(response.body); 13}).catch(error => { 14 console.log(error.body); 15}); 16
Opens by user-agent
1import 'dotenv/config'; 2import { ActivityEventType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.analytics.byUserAgent({ 9 date_from: 1443651141, 10 date_to: 2443651141, 11}).then(response => { 12 console.log(response.body); 13}).catch(error => { 14 console.log(error.body); 15}); 16
Opens by reading environment
1import 'dotenv/config'; 2import { ActivityEventType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.analytics.byReadingEnvironment({ 9 date_from: 1443651141, 10 date_to: 2443651141, 11}).then(response => { 12 console.log(response.body); 13}).catch(error => { 14 console.log(error.body); 15}); 16
Domains
Get a list of domains
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.domain.list() 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get domain
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.domain.single("domain_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Delete domain
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.domain.delete("domain_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get a list of recipients per domain
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.domain.recipients("domain_id", { 9 page: 1, 10 limit: 10 11}) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Update domain settings
1import 'dotenv/config';
2import { MailerSend } from "mailersend";
3
4const mailerSend = new MailerSend({
5 apiKey: process.env.API_KEY,
6});
7
8mailerSend.email.domain.updateSettings("domain_id", {
9 send_paused: 1,
10 track_clicks: 1,
11 track_opens: 1,
12 track_unsubscribe: 1,
13 track_unsubscribe_html: "<strong> Unsubscribe now </strong>",
14 track_unsubscribe_plain: "Unsubscribe now",
15 track_content: 1,
16 custom_tracking_enabled: 1,
17 custom_tracking_subdomain: "subdomain",
18 precedence_bulk: 1,
19 ignore_duplicated_recipients: 1,
20})
21 .then((response) => console.log(response.body))
22 .catch((error) => console.log(error.body));
23
Add a domain
1import 'dotenv/config'; 2import { MailerSend, Domain } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const domain = new Domain({ 9 name: "example.com", 10 returnPathSubdomain: "rp_subdomain", 11 customTrackingSubdomain: "ct_subdomain", 12 inboundRoutingSubdomain: "ir_subdomain", 13}) 14 15mailerSend.email.domain.create(domain) 16 .then((response) => console.log(response.body)) 17 .catch((error) => console.log(error.body)); 18
Get DNS records
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.domain.dns("domain_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get verification status
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.domain.verify("domain_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Identity
Get identity list
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.identity.list() 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get identity
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.identity.single("identity_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get identity by email address
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.identity.singleByEmail('email_address') 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Create identity
1import 'dotenv/config'; 2import { MailerSend, Inbound, InboundFilterType } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const identity = new Identity() 9 .setDomainId('domain_id') 10 .setEmail('identity@yourdomain.com') 11 .setName('Name') 12 .setReplyToEmail('reply_identity@yourdomain.com') 13 .setReplyToName('Reply Name') 14 .setAddNote(false); 15 16mailerSend.email.identity.create(identity) 17 .then((response) => console.log(response.body)) 18 .catch((error) => console.log(error.body)); 19
Update identity
1import 'dotenv/config'; 2import { MailerSend, Inbound, InboundFilterType } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const data = { 9 domain_id: 'string', 10 email: 'email@yourdomain.com', 11 name: 'name', 12 personal_note: 'Personal note', 13 reply_to_name: 'Reply Name', 14 reply_to_email: 'repy@yourdomain.com', 15 add_note: true, 16}; 17 18mailerSend.email.identity.update('identiy_id', data) 19 .then((response) => console.log(response.body)) 20 .catch((error) => console.log(error.body)); 21
Update identity by email address
1import 'dotenv/config'; 2import { MailerSend, Inbound, InboundFilterType } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const data = { 9 domain_id: 'string', 10 email: 'email@yourdomain.com', 11 name: 'name', 12 personal_note: 'Personal note', 13 reply_to_name: 'Reply Name', 14 reply_to_email: 'repy@yourdomain.com', 15 add_note: true, 16}; 17 18mailerSend.email.identity.updateByEmail('email_address', data) 19 .then((response) => console.log(response.body)) 20 .catch((error) => console.log(error.body)); 21
Delete identity
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.identity.delete("identity_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Delete identity by email address
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.identity.deleteByEmail('email_address') 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Inbound
Get inbound list
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.inbound.list() 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get inbound
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.inbound.single("inbound_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Create inbound
1import 'dotenv/config'; 2import { MailerSend, Inbound, InboundFilterType } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const inbound = new Inbound() 9 .setDomainId('domain_id') 10 .setName('inbound test') 11 .setDomainEnabled(true) 12 .setMatchFilter({ 13 type: InboundFilterType.MATCH_ALL, 14 }) 15 .setForwards([ 16 { 17 type: "webhook", 18 value: "https://www.yourdomain.com/hook" 19 } 20 ]); 21 22mailerSend.email.inbound.create(inbound) 23 .then((response) => console.log(response.body)) 24 .catch((error) => console.log(error.body)); 25
Update inbound
1import 'dotenv/config'; 2import { MailerSend, Inbound, InboundFilterType } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const inbound = new Inbound() 9 .setDomainId('domain_id') 10 .setName('inbound test 2') 11 .setDomainEnabled(false) 12 .setMatchFilter({ 13 type: InboundFilterType.MATCH_ALL, 14 }) 15 .setForwards([ 16 { 17 type: "webhook", 18 value: "https://www.yourdomain.com/hook" 19 } 20 ]); 21 22mailerSend.email.inbound.update('inbound_id', inbound) 23 .then((response) => console.log(response.body)) 24 .catch((error) => console.log(error.body)); 25
Delete inbound
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.inbound.delete("inbound_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Messages
Get a list of messages
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8 9mailerSend.email.message.list() 10 .then((response) => console.log(response.body)) 11 .catch((error) => console.log(error.body)); 12
Get info on a message
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.message.single("message_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Scheduled Messages
Get scheduled email list
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.schedule.list() 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get scheduled email
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.schedule.single("message_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Delete scheduled email
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.schedule.delete("message_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Recipients
Get a list of recipients
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.list({ 9 domain_id: "domain_id", 10 limit: 10, 11}) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Get single recipient
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.single("recipient_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Delete recipient
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.delete("recipient_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Add recipients to a suppression list
Blocklist
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.blockRecipients({ 9 domain_id: 'domain_id', 10 recipients: [ 11 "test@example.com" 12 ] 13}, BlockListType.BLOCK_LIST) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Hard Bounces
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.blockRecipients({ 9 domain_id: 'domain_id', 10 recipients: [ 11 "test@example.com" 12 ] 13}, BlockListType.HARD_BOUNCES_LIST) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Spam Complaints
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.blockRecipients({ 9 domain_id: 'domain_id', 10 recipients: [ 11 "test@example.com" 12 ] 13}, BlockListType.SPAM_COMPLAINTS_LIST) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Unsubscribe
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.blockRecipients({ 9 domain_id: 'domain_id', 10 recipients: [ 11 "test@example.com" 12 ] 13}, BlockListType.UNSUBSCRIBES_LIST) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Get recipients from a suppression list
Blocklist
1import 'dotenv/config'; 2import { BlockListType, MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.blockList( 9 { domain_id: "domain_id", }, 10 BlockListType.BLOCK_LIST 11) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Hard Bounce
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.blockList( 9 { domain_id: "domain_id", }, 10 BlockListType.HARD_BOUNCES_LIST 11) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Spam Complaint
1import 'dotenv/config'; 2import { BlockListType, MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.blockList( 9 { domain_id: "domain_id", }, 10 BlockListType.SPAM_COMPLAINTS_LIST 11) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Unsubscribe
1import 'dotenv/config'; 2import { BlockListType, MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.blockList( 9 { domain_id: "domain_id", }, 10 BlockListType.UNSUBSCRIBES_LIST 11) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Delete recipients from a suppression list
Blocklist
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.delBlockListRecipients( 9 ["recipient_id", "recipient_id"], 10 BlockListType.BLOCK_LIST 11) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Hard Bounce
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.delBlockListRecipients( 9 ["recipient_id", "recipient_id"], 10 BlockListType.HARD_BOUNCES_LIST 11) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Spam Complaint
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.delBlockListRecipients( 9 ["recipient_id", "recipient_id"], 10 BlockListType.SPAM_COMPLAINTS_LIST 11) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Unsubscribe
1import 'dotenv/config'; 2import { BlockListType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.recipient.delBlockListRecipients( 9 ["recipient_id", "recipient_id"], 10 BlockListType.UNSUBSCRIBES_LIST 11) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Templates
Get a list of templates
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.template.list({ 9 domain_id: "domain_id" 10}) 11 .then((response) => console.log(response.body)) 12 .catch((error) => console.log(error.body)); 13
Get a single template
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.template.single("domain_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Delete a template
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.template.single("domain_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Webhooks
Get a list of webhooks
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.webhook.list("domain_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get webhook
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.webhook.single("webhook_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Create webhook
1import 'dotenv/config'; 2import { EmailWebhook, EmailWebhookEventType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const emailWebhook = new EmailWebhook() 9 .setName("Webhook Name") 10 .setUrl("https://example.com") 11 .setDomainId("domain_id") 12 .setEnabled(true) 13 .setEvents([EmailWebhookEventType.SENT, EmailWebhookEventType.OPENED]); 14 15mailerSend.email.webhook.create(emailWebhook) 16 .then((response) => console.log(response.body)) 17 .catch((error) => console.log(error.body)); 18
Update webhook
1import 'dotenv/config'; 2import { EmailWebhook, EmailWebhookEventType, MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const emailWebhook = new EmailWebhook() 9 .setName("Webhook Name 2") 10 .setEnabled(false) 11 .setEvents([EmailWebhookEventType.SENT, EmailWebhookEventType.OPENED]); 12 13mailerSend.email.webhook.update("webhook_id", emailWebhook) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Delete webhook
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.email.webhook.delete("webhook_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
SMS
Send SMS
1"use strict"; 2require('dotenv').config() 3 4const MailerSend = require("../../src/MailerSend"); 5const SmsParams = require("../../src/SmsParams"); 6 7const mailersend = new MailerSend({ 8 api_key: process.env.API_KEY, 9}); 10 11const recipients = [ 12 "+18332647501" 13]; 14 15const smsParams = new SmsParams() 16 .setFrom("+18332647501") 17 .setRecipients(recipients) 18 .setText("This is the text content"); 19 20mailersend.sendSms(smsParams); 21
SMS personalization
1"use strict"; 2require('dotenv').config() 3 4const MailerSend = require("../../src/MailerSend"); 5const SmsParams = require("../../src/SmsParams"); 6 7const mailersend = new MailerSend({ 8 api_key: process.env.API_KEY, 9}); 10 11const recipients = [ 12 "+18332647501", 13 "+18332647502" 14]; 15 16const personalization = [ 17 { 18 "phone_number": "+18332647501", 19 "data": { 20 "name": "Dummy" 21 } 22 }, 23 { 24 "phone_number": "+18332647502", 25 "data": { 26 "name": "Not Dummy" 27 } 28 } 29]; 30 31const smsParams = new SmsParams() 32 .setFrom("+18332647501") 33 .setRecipients(recipients) 34 .setPersonalization(personalization) 35 .setText("Hey {{name}} welcome to our organization"); 36 37mailersend.sendSms(smsParams); 38
Phone Numbers
Get phone number list
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.number.list({ 9 paused: false, 10 limit: 10, 11 page: 1 12}) 13 .then((response) => console.log(response.body)) 14 .catch((error) => console.log(error.body)); 15
Get phone number
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.number.single("sms_number_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Update phone number
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.number.update("sms_number_id", true) 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Delete phone number
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.number.delete("sms_number_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Messages
Get messages list
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.message.list({ 9 limit: 10, 10 page: 1 11}) 12 .then((response) => console.log(response.body)) 13 .catch((error) => console.log(error.body)); 14
Get a message
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.message.single("sms_message_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Activity
Get activity list
1import 'dotenv/config'; 2import { MailerSend, SmsActivityStatusType } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.activity.list({ 9 sms_number_id: "number_id", 10 status: [SmsActivityStatusType.SENT, SmsActivityStatusType.DELIVERED], 11 limit: 10, 12 page: 1 13}) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Get activity of a message
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.activity.single("sms_message_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Recipients
Get recipient list
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.recipient.list({ 9 sms_number_id: "sms_number_id", 10 status: "active", 11 limit: 10, 12 page: 1, 13}) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Get recipient
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.recipient.single("sms_recipient_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Update recipient
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.recipient.update("sms_recipient_id", "active") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Webhooks
Get webhook list for a number
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.webhook.list("sms_number_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Get webhook
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.webhook.single("sms_webhook_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Create webhook
1import 'dotenv/config'; 2import { MailerSend, SmsWebhook, SmsWebhookEventType } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const smsWebhook = new SmsWebhook() 9 .setName("Sms Webhook") 10 .setUrl("https:://yourapp.com/hook") 11 .setSmsNumberId("sms_number_id") 12 .setEnabled(true) 13 .setEvents([SmsWebhookEventType.SENT, SmsWebhookEventType.DELIVERED]) 14 15mailerSend.sms.webhook.create(smsWebhook) 16 .then((response) => console.log(response.body)) 17 .catch((error) => console.log(error.body)); 18
Update webhook
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.webhook.update("sms_webhook_id", { 9 name: "Webhook", 10 url: "https:://yourapp.com/hook", 11 enabled: ["sms.sent", "sms.delivered", "sms.failed"], 12 enabled: true 13}) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Delete webhook
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.webhook.delete("sms_webhook_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Inbound
Get inbound list
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.inbound.list({ 9 enabled: 1, 10 sms_number_id: "sms_number_id", 11 limit: 10, 12 page: 1, 13}) 14 .then((response) => console.log(response.body)) 15 .catch((error) => console.log(error.body)); 16
Get inbound
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.inbound.single("sms_inbound_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Add inbound
1import 'dotenv/config'; 2import { MailerSend, SmsInbound } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const smsInbound = new SmsInbound() 9 .setSmsNumberId("sms_number_id") 10 .setEnabled(true) 11 .setName("Inbound Name") 12 .setForwardUrl("yourapp.com/hook") 13 .setFilter({ 14 comparer: "equal", 15 value: "START" 16 }); 17 18mailerSend.sms.inbound.create(smsInbound) 19 .then((response) => console.log(response.body)) 20 .catch((error) => console.log(error.body)); 21
Update inbound
1import 'dotenv/config'; 2import { MailerSend, SmsInbound } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8const smsInbound = new SmsInbound() 9 .setSmsNumberId("sms_number_id") 10 .setEnabled(true) 11 .setName("Inbound Name Update") 12 .setForwardUrl("yourapp.com/hook") 13 .setFilter({ 14 comparer: "equal", 15 value: "START" 16 }); 17 18mailerSend.sms.inbound.update("sms_inbound_id", {...smsInbound}) 19 .then((response) => console.log(response.body)) 20 .catch((error) => console.log(error.body)); 21
Delete inbound
1import 'dotenv/config'; 2import { MailerSend } from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.sms.inbound.delete("sms_inbound_id") 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Others
Get Api Quota
1import 'dotenv/config'; 2import { MailerSend} from "mailersend"; 3 4const mailerSend = new MailerSend({ 5 apiKey: process.env.API_KEY, 6}); 7 8mailerSend.others.getApiQuota() 9 .then((response) => console.log(response.body)) 10 .catch((error) => console.log(error.body)); 11
Support and Feedback
In case you find any bugs, submit an issue directly here in GitHub.
You are welcome to create SDK for any other programming language.
If you have any troubles using our API or SDK free to contact our support by email info@mailersend.com
The official documentation is at https://developers.mailersend.com
License
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
- Info: project has a license file: LICENSE:0
- Info: FSF or OSI recognized license: MIT License: LICENSE:0
Reason
packaging workflow detected
Details
- Info: Project packages its releases by way of GitHub Actions.: .github/workflows/publish.yaml:6
Reason
5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4
Reason
Found 8/19 approved changesets -- score normalized to 4
Reason
9 existing vulnerabilities detected
Details
- Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92
- Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg
- Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275
- Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv
- Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m / GHSA-xvch-5gv4-984h
- Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw
- Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3
- Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7
- Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q
Reason
detected GitHub workflow tokens with excessive permissions
Details
- Warn: no topLevel permission defined: .github/workflows/publish.yaml:1
- Info: no jobLevel write permissions found
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yaml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/mailersend/mailersend-nodejs/publish.yaml/main?enable=pin
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yaml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/mailersend/mailersend-nodejs/publish.yaml/main?enable=pin
- Warn: npmCommand not pinned by hash: .github/workflows/publish.yaml:15
- Info: 0 out of 2 GitHub-owned GitHubAction dependencies pinned
- Info: 0 out of 1 npmCommand dependencies pinned
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
project is not fuzzed
Details
- Warn: no fuzzer integrations found
Reason
security policy file not detected
Details
- Warn: no security policy file detected
- Warn: no security file to analyze
- Warn: no security file to analyze
- Warn: no security file to analyze
Reason
branch protection not enabled on development/release branches
Details
- Warn: branch protection not enabled for branch 'v1'
- Warn: 'allow deletion' enabled on branch 'main'
- Warn: 'force pushes' enabled on branch 'main'
- Info: 'branch protection settings apply to administrators' is required to merge on branch 'main'
- Warn: 'stale review dismissal' is disabled on branch 'main'
- Warn: required approving review count is 1 on branch 'main'
- Warn: codeowners review is not required on branch 'main'
- Warn: 'last push approval' is disabled on branch 'main'
- Warn: no status checks found to merge onto branch 'main'
- Info: PRs are required in order to make changes on branch 'main'
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
- Warn: 0 commits out of 21 are checked with a SAST tool
Score
3.7
/10
Last Scanned on 2024-12-30
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More