         @apiDelete 'alert', data, callback
 
     # purchase API Call
-    purchase: (email, items, callback, options) ->
+    purchase: (email, items, options, callback) ->
+        # support callback function as third arg
+        if typeof options is 'function'
+            callback = options
+            options = undefined
         data = @_getOptions options
         data.email = email
         data.items = items

class SailthruRequest
    valid_methods = ['GET', 'POST', 'DELETE']

    _http_request: (uri, data, method, callback, binary_data_params) ->
        if binary_data_params is undefined
            binary_data_params = []
        parse_uri = url.parse uri

        @apiPost 'contacts', data, callback

    # Content API Call
    pushContent: (title, url, options, callback) ->
        # support callback function as third arg
        if typeof options is 'function'
            callback = options
            options = undefined
        if options is undefined
            options = null
        data = @_getOptions options
