Author image Dave Pirotte
and 1 contributors


Mail::Chimp::API - Perl wrapper around the Mailchimp API


  use strict;
  use Mail::Chimp::API;

  my $chimp = Mail::Chimp::API->new(apikey      => $apikey,
                                    api_version => 1.2);

  # or if you have no apikey setup:
  # my $chimp = Mail::Chimp::API->new(username    => $username,
  #                                   password    => $password,
  #                                   api_version => 1.1,
  #                                  );

  my $apikey      = $chimp->apikey;   # generated on first login if none was setup

  my $campaigns   = $chimp->campaigns;
  my $lists       = $chimp->lists;
  my $subscribers = $chimp->listMembers($lists->[0]->{id});

  print 'success' if $chimp->listSubscribe($lists->[0]->{id}, '', {}, 1);


Mail::Chimp::API is a simple Perl wrapper around the MailChimp API. The object exposes the MailChimp XML-RPC methods and confesses fault codes/messages when errors occur. Further, it keeps track of your API key for you so you do not need to enter it each time.

Method parameters are passed straight through, in order, to MailChimp. Thus, you do need to understand the MailChimp API as documented at <> so that you will know the appropriate parameters to pass to each method.

This API has been tested with version 1.0, 1.1 and 1.2 of the API.


If you find yourself getting '-32602' errors, you are probably missing a required (even if empty) hash. The API documentation should be your first destination to verify the validity of your parameters. For example:

  # MailChimp Error -32602: server error. invalid method parameters
  print 'fail'    if $chimp->listSubscribe($lists->[0]->{id}, '');
  # The {} is required by MailChimp to indicate that you do not want any MergeVars
  print 'success' if $chimp->listSubscribe($lists->[0]->{id}, '', {}, 1);






Copyright (C) 2009 Dave Pirotte. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Dave Pirotte (

Drew Taylor (

Ask Bjørn Hansen (

1 POD Error

The following errors were encountered while parsing the POD:

Around line 223:

Non-ASCII character seen before =encoding in 'Bjørn'. Assuming UTF-8