Installation

npm install --save amisend

Authentication

Create an account at amisend and get your API Key.

// CommonJS
const Amisend = require("amisend");

// ES6 / Typescript
import Amisend from "amisend";

const amisend = new Amisend({
  apiKey: "YOUR_API_KEY",
});

Emails

Send an email

amisend.emails
  .send({
    from: "Example <example@domain.com>",
    to: ["example@hotmail.com"],
    subject: "hello world",
    html: "<p>It works!</p>",
  })
  .then((response) => {
    // Handle response
  })
  .catch((error) => console.log(error));

Contacts

Create a contact

amisend.contacts
  .create({
    audienceId: "audience-id",
    name: "Sebastián",
    email: "example@hotmail.com",
  })
  .then((response) => {
    // Handle response
  })
  .catch((error) => console.log(error));

List contacts in an audience

amisend.contacts
  .list({ audienceId: "audience-id", page: 1, limit: 10 })
  .then((contacts) => {
    // Handle contacts
  })
  .catch((error) => console.log(error));

Update a contact

amisend.contacts
  .update({
    audienceId: "audience-id",
    contactId: "contact-id",
    name: "Sebastián Updated",
  })
  .then((response) => {
    // Handle response
  })
  .catch((error) => console.log(error));

Delete a contact

amisend.contacts
  .delete({ audienceId: "audience-id", contactId: "contact-id" })
  .then((response) => {
    // Handle response
  })
  .catch((error) => console.log(error));

Domains

List domains

amisend.domains
  .list({})
  .then((domains) => {
    // Handle domains
  })
  .catch((error) => console.log(error));

Create a domain

amisend.domains
  .create({ name: "example.com" })
  .then((domain) => {
    // Handle domain
  })
  .catch((error) => console.log(error));

Retrieve a domain

amisend.domains
  .retrieve({ domainId: "domain-id" })
  .then((domain) => {
    // Handle domain
  })
  .catch((error) => console.log(error));

Delete a domain

amisend.domains
  .delete({ domainId: "domain-id" })
  .then((response) => {
    // Handle response
  })
  .catch((error) => console.log(error));

Check a domain

amisend.domains
  .check({ domainId: "domain-id" })
  .then((result) => {
    // Handle result
  })
  .catch((error) => console.log(error));

Audiences

List audiences

amisend.audiences
  .list({ page: 1, limit: 10 })
  .then((audiences) => {
    // Handle audiences
  })
  .catch((error) => console.log(error));

Create an audience

amisend.audiences
  .create({ name: "Newsletter" })
  .then((audience) => {
    // Handle audience
  })
  .catch((error) => console.log(error));

Retrieve an audience

amisend.audiences
  .retrieve({ audienceId: "audience-id" })
  .then((audience) => {
    // Handle audience
  })
  .catch((error) => console.log(error));

Delete an audience

amisend.audiences
  .delete({ audienceId: "audience-id" })
  .then((response) => {
    // Handle response
  })
  .catch((error) => console.log(error));

API Keys

List API keys

amisend.apiKeys
  .list({})
  .then((apiKeys) => {
    // Handle API keys
  })
  .catch((error) => console.log(error));

Create an API key

amisend.apiKeys
  .create({ name: "My Key" })
  .then((apiKey) => {
    // Handle API key
  })
  .catch((error) => console.log(error));

Delete an API key

amisend.apiKeys
  .delete({ apiKeyId: "api-key-id" })
  .then((response) => {
    // Handle response
  })
  .catch((error) => console.log(error));

Broadcasts

List broadcasts

amisend.broadcasts
  .list({ page: 1, limit: 10 })
  .then((broadcasts) => {
    // Handle broadcasts
  })
  .catch((error) => console.log(error));

Create a broadcast

amisend.broadcasts
  .create({
    name: "Promo",
    from: "Example <example@domain.com>",
    audience: "audience-id",
    subject: "Promo subject",
    html: "<p>Promo content</p>",
  })
  .then((broadcast) => {
    // Handle broadcast
  })
  .catch((error) => console.log(error));

Retrieve a broadcast

amisend.broadcasts
  .retrieve({ broadcastId: "broadcast-id" })
  .then((broadcast) => {
    // Handle broadcast
  })
  .catch((error) => console.log(error));

Update a broadcast

amisend.broadcasts
  .update({ broadcastId: "broadcast-id", subject: "New subject" })
  .then((broadcast) => {
    // Handle broadcast
  })
  .catch((error) => console.log(error));

Delete a broadcast

amisend.broadcasts
  .delete({ broadcastId: "broadcast-id" })
  .then((response) => {
    // Handle response
  })
  .catch((error) => console.log(error));

Send a broadcast

amisend.broadcasts
  .send({ broadcastId: "broadcast-id" })
  .then((result) => {
    // Handle result
  })
  .catch((error) => console.log(error));

Unsubscribe a contact from a broadcast

amisend.broadcasts
  .unsubscribe({ broadcastId: "broadcast-id", contactId: "contact-id" })
  .then((result) => {
    // Handle result
  })
  .catch((error) => console.log(error));