Home Uncategorized How to delete or Remove Mailchimp list members using API v3

How to delete or Remove Mailchimp list members using API v3

0

One of our team members needed to delete Mailchimp list members signed to the list before given date.

 

It is not possible to do it in the Mailchimp user interface, therefore we had to write a short PHP script, which calls the Mailchimp API and deletes all list members subscribed into list before the defined date.
Here is an example:


<?php

date_default_timezone_set(‘UTC’);

function mailchimpRequest($type, $target, $data = false) {

$api = array(
‘login’ => ‘anyuser‘,
‘key’ => ‘27fd0105d2d0f76aa68405e4daecc028-us3‘, //here should be your API KEY
‘url’ => ‘https://us3.api.mailchimp.com/3.0/
);
$ch = curl_init($api[‘url’] . $target);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
‘Content-Type: application/json’,
‘Authorization: ‘ . $api[‘login’] . ‘ ‘ . $api[‘key’] ));

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, ‘YOUR-USER-AGENT’);

if ($data)
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);

if ($response === false) {
echo curl_error($ch);
die();
}
curl_close($ch);
return json_decode($response, true);
}

function getMembersToDelete($listId, $breakingDate) {
$offset = 0;
$toDelete = array();
while (true) {
$subscribers = mailchimpRequest(‘GET’, ‘/lists/’ . $listId . ‘/members?count=100&offset=’ . $offset);
foreach ($subscribers[‘members’] as $member) {
if (strtotime($member[‘timestamp_opt’]) < strtotime($breakingDate)) {
echo ‘Schedule to DELETE: ‘ . $member[’email_address’] . “n”;
$toDelete[] = $member[‘id’];
} else {
return $toDelete;
}
}
if (count($subscribers[‘members’]) == 0) {
return $toDelete;
}
$offset += 100;
}
return $toDelete;
}

//THIS IS THE LIST ID YOU WANT TO CLENUP
$listId = ‘cd17909729‘;

//MODIFY THE DATE
foreach (getMembersToDelete($listId, ‘2015-01-01’) as $id) {
mailchimpRequest(‘DELETE’, ‘/lists/’ . $listId . ‘/members/’ . $id);
echo ‘Deleted ‘ . $id . “n”;
}


NO COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Exit mobile version