thinkshout/mailchimp-api-php

PHP library for v3 of the MailChimp API

Package info

github.com/thinkshout/mailchimp-api-php

pkg:composer/thinkshout/mailchimp-api-php

Statistics

Installs: 4 853 119

Dependents: 1

Suggesters: 0

Stars: 82

Open Issues: 20

v3.1.3 2025-12-30 19:54 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

GPL-2.0-or-later b88d2b5de6e6d489f62505b12180646bf257238c

mailmailchimp


README

This library provides convenient wrapper functions for Mailchimp's REST API. The API is documented here.

Requirements

  • PHP 5.4.0 or greater (7.0 or greater if you wish to use phpunit)
  • Composer
  • Guzzle

Installation

Dependencies are managed by Composer. After installing Composer, run the following command from the library root:

composer install --no-dev --ignore-platform-reqs

Or to install with phpunit:

composer install

Usage

Get your account information

A basic test to confirm the library is set up and functional.

With OAuth Access token

<?php
require 'PATH_TO_LIBRARY/mailchimp-api-php/vendor/autoload.php';

// Instantiate MailchimpApiInterface
$authentication_settings = [
 'access_token' => 'YOUR_ACCESS_TOKEN',
 'data_center' => 'YOUR_DATA_CENTER',
 'api_user' => 'oauth',
];

// Use Mailchimp2 class for OAuth access_token.
$api_class = new Mailchimp2($authentication_settings);

// Instantiate a MailchimpApiUser or a class that extends it (ie. MailchimpLists, MailchimpSignups, etc..)
$mailchimp = new MailchimpApiUser($api_class);

// Get the account details of the authenticated user.
$response = $mailchimp->getAccount();

// Output the account details.
if (!empty($response) && isset($response->account_id)) {
 echo "ID: {$response->account_id}\n"
 . "Name: {$response->account_name}\n";
}

With API Key

require 'PATH_TO_LIBRARY/mailchimp-api-php/vendor/autoload.php';

// Instantiate MailchimpApiInterface
$authentication_settings = [
 'api_key' => 'YOUR_API_KEY',
 'api_user' => 'api_key',
];

// Use Mailchimp class for api_key.
$api_class = new Mailchimp($authentication_settings);

// Instantiate a MailchimpApiUser or a class that extends it (ie. MailchimpLists, MailchimpSignups, etc..)
$mailchimp = new MailchimpApiUser($api_class);

// Get the account details of the authenticated user.
$response = $mailchimp->getAccount();

// Output the account details.
if (!empty($response) && isset($response->account_id)) {
 echo "ID: {$response->account_id}\n"
 . "Name: {$response->account_name}\n";
}ject = new MailchimpApiUser($api_class, $http_options);

Get lists and their interest categories

A more complicated example that takes the response from one API call and uses that data to make another.

<?php
require 'PATH_TO_LIBRARY/mailchimp-api-php/vendor/autoload.php';

$authentication_settings = [
 'access_token' => 'YOUR_ACCESS_TOKEN',
 'data_center' => 'YOUR_DATA_CENTER',
 'api_user' => 'oauth',
];
$api_class = new Mailchimp2($authentication_settings);

$mailchimp_lists = new Mailchimp\MailchimpLists($api_class);

// Get all lists.
$response = $mailchimp_lists->getLists();

if (!empty($response) && isset($response->lists)) {
 foreach ($response->lists as $list) {
 // Output the list name.
 echo "List name: {$list->name}\n";

 // Get the list's interest categories.
 $interests = $mailchimp_lists->getInterestCategories($list->id);

 // Output the names of the list's interest categories.
 if (!empty($interests) && isset($interests->categories)) {
 foreach ($interests->categories as $category) {
 echo "Interest category: {$category->title}\n";
 }
 }
 }
}

Testing

This library includes a PHPUnit test suite.

Running PHPUnit tests

Add Composer's vendor directory to your PATH by adding the following line to your profile. This is dependent on your system, but on a Linux or Mac OSX system using Bash, you'll typically find the file at ~/.bash_profile.

export PATH="./vendor/bin:$PATH"

Bash example:

echo 'export PATH="./vendor/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile

Then run PHPUnit:

phpunit