Mailchimp API V3 jQuery Ajax POST subscribers

There has been a big update on the Mailchimp API (v3.0) and many of the jQuery plugins are out of date in order to POST subscribers on form.submit().

After reading v3.0 docs:

Managing subscribers suggests the following JSON object format:

{
   "email_address": "urist.mcvankab@freddiesjokes.com", 
   "status": "subscribed", 
   "merge_fields": {
      "FNAME": "Urist", 
      "LNAME": "McVankab"
   }
}

And the following root endpoint for the API lists resource:

https://<dc>.api.mailchimp.com/3.0/

So here’s my form.submit() code with the jQuery Ajax POST request:

$(document).ready(function(){
    var mcForm = $('#mailchimpForm');
    var mailchimp = {};
    mailchimp.dc='us5';
    mailchimp.id='xxxxxxxx';
    var url = '//' + mailchimp.dc + '.api.mailchimp.com/3.0/lists/' + mailchimp.id + '/members/';

    function beginMailchimpPost(data){
        var params = JSON.stringify(data);
        $.ajax({
            url: url,
            method: 'POST',
            data: params,
            dataType: 'jsonp',
            contentType: 'application/json; charset=utf-8',
            error: function(res, text){
                console.log('Err', res);
            },
            success: function(res){
                console.log('Success', res);
            }
        });
    }
});

This is the JSON.stringify(data) object:

{"email_address":"email@mail.com","status":"subscribed","merge_fields":{"FNAME":"Name","LNAME":"Last name"}}

And I’m getting the following error:

GET http://... 401 (Unauthorized)
Err Object {readyState: 4, status: 404, statusText: "error"}

What could be wrong?

Here’s the link to Mailchimp’s API v3.0 docs (list members collection).


Source: ajax

1 Comment

  1. Aubrey Rhodes

    You’re getting the 401 because you’re not passing your API key with the request. Take a look at the getting started guide: http://kb.mailchimp.com/api/article/api-3-overview. You can use basic auth, by passing anything as the username and the api key as the password. http://stackoverflow.com/questions/5507234/how-to-use-basic-auth-and-jquery-and-ajax explains how to use basic auth with a jquery ajax call like this.

    Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.