A Simple Node Client for the Mogreet API


A Simple Node Client for the Mogreet API (API Version 4.01 - 9/11/2012)

Please note that the author of this software has no connection with Mogreet. We just needed this stuff for our own projects. YMMV.

Mogreet is heavily adapted from twilio-node: and depends on request:

N.B.: request has issues with SSL under node > 0.9.x <= ~0.10.5. Https calls to the Mogreet API fail with ECONNRESET errors. Discussion here:

The fix (already included in this module) is to include:

var https = require('https');
https.globalAgent.options.secureProtocol = 'SSLv3_method';

before invoking the request client.

You can find/create your unique API credentials at: (requires a Mogreet dev account).

You can either instantiate the Client using your API credentials directly:

var accountCID    = Your Account CID,
    authToken     = Your Auth Token,
    smsID         = Your Campaign ID,
    mmsID         = Your MMS Campaign ID,
    options       = {};
var mogreet = require('mogreet')( accountCID, authToken, smsID, mmsID, options );

OR, better:

You can include the API credentials in your environment:

MOGREET_AUTH_TOKEN      = Your Auth Token

And instantiate the client with:

var mogreet = require('mogreet')();

You can use the mogreet client to make any Mogreet API call. A full list of API calls and options is available at:

The standard client request signature is:

var options = {
    url: 'transaction.send'
    qs: {
        to          : '2125551212',
        message     : 'Hello World!',
        campaign_id : [SMS or MMS Campaign ID]
mogreet.request(options, function (errordataresponse) {
    if (error) {
        // error - contains error information, if any 
    // data     - contains the server response as a JSON object 
    // response - is the raw Mogreet response 
var options = {};, function (errordataresponse) {} );
var options = {
    qs: {
        to       : '2125551212',
        message  : 'Hello World!',
        callback : '(URL for optional callback to your server)'
mogreet.sendSms(options, function (errordataresponse) {} );
var options = {
    qs: {
        to          : '2125551212',
        message     : 'Hello World!',
        content_id  : '(optional - for content already on a mogreet server)',
        content_url : '(optional - for content at any accessible URL)',
        callback    : '(URL for optional callback to your server)'
mogreet.sendMms(options, function (errordataresponse) {} );

At the moment there are no unit tests included, but there is a simple test script included. You can adapt the server file in test.js to run simple tests against your credentials.