Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Sailthru Node.js client
CoffeeScript
Failed to load latest commit information.
lib Update README.md
src add file upload functionality
test fix tests
.gitignore merge master and resolve conflict
.npmignore initial commit
Cakefile remove comments
MIT-LICENSE initial commit
README.md Fixed typo
package.json merge master and resolve conflict

README.md

sailthru-node-client

For installation instructions, documentation, and examples please visit: http://getstarted.sailthru.com/new-for-developers-overview/api-client-library/node-js-npm

A simple client library to remotely access the Sailthru REST API as per http://getstarted.sailthru.com/developers/api

By default, it will make request in JSON format. XML format is not supported.

Development

npm install # to install dependencies locally
npm install -g coffee-script # to install coffee-script
cake test # for running tests
cake build # for building and generating JavaScript source
cake watch # for watching file changes

Installation

npm install sailthru-client

Examples

Initialization

var apiKey = '******',
    apiSecret = '*****',
    sailthru = require('sailthru-client').createSailthruClient(apiKey, apiSecret);

Getting version

var version = require('sailthru-client').VERSION;

Enable / Disable LOgging

sailthru.enableLogging();
sailthru.disableLogging();

Making POST Request

var data = {
    email: 'praj@infynyxx.com',
    lists: {
        'list-a': 1
    }
};
sailthru.apiPost('email', data, function(response, err) {
    if (!err) {
        console.log(response);        
    } else {
        console.log('Error!');
        console.log(err);
    }
});

Making POST Request with multipart (Eg: Job API call with import type)

// Making import /job API POST call
// MUltipart call
var data = {
    job: 'import',
    list: 'test-list',
    file: './emails.txt'
};
var multipart_params = ['file']; // this is required to mark file as a multipart upload item'
sailthru.apiPost('job', data, function(response, err) {
   console.log(response);
}, multipart_params);

Making GET Request

// Making /send API GET call
var send_id = 'TE8EZ3-LmosnAgAA';
sailthru.apiGet('send', {send_id: send_id}, function(response, err) {
    console.log(response);        
});

Making DELETE Request

// /send API DELETE call
var send_id = 'TE8EZ3-LmosnAgAA';
sailthru.apiDelete('send', {send_id: send_id}, function(response, err) {
    console.log(response);
});

send

//send
var template = 'my-template',
    email = 'praj@sailthru.com',
    options = {
        'vars': {
            'name': 'Prajwal Tuladhar',
            'address': 'Queens, NY'
        },
        'options': {
            'test': 1,
            'replyto': 'praj@infynyxx.com'
        }
    };
sailthru.send(template, email, function(response, err) {
    if (err) {
        console.log("Status Code: " + err.statusCode);
        console.log("Error Code: " + err.error);
        console.log("Error Message: " + err.errormsg);
    } else {
        //process output
    }
}, options);

//multi-send
var emails = ['praj@sailthru.com', 'ian@sailthru.com', 'will@sailthru.com'],
    template = 'multi-template',
    options = {
        'options': {
            'test': 1
        }
    };
sailthru.multiSend(template, emails, function(response, err) {
    if (err) {
        //Process error
    } else {
        //process JSON output
    }
}, options);
Something went wrong with that request. Please try again.