Luutaa Technologies - Developer Blog

Constant Contact Integration on website

We need 3 items to integrate Constant Contact on our Website.

1.  Username
2. Password
3. API Key

Like most other APIs and third party integration, it needs API KEY to utilize integration.

API Key can be generated from below URL.

Or alternatively, if this doesn’t work. You can try finding Developer Docs & look for the link to generate API Key.


// fill in your Constant Contact login and API key
$ccuser = 'username';
$ccpass = 'password';
$cckey  = 'API KEY HERE';

// fill in these values 

$emailAddr  = $_POST['email'];

// represents the contact list identification number(s)
$contactListId = 1;
$contactListId = (!is_array($contactListId)) ? array($contactListId) : $contactListId;

$post = new SimpleXMLElement('<entry></entry>');
$post->addAttribute('xmlns', '');

$title = $post->addChild('title', "");
$title->addAttribute('type', 'text');

$post->addChild('updated', date('c'));
$post->addChild('author', "");
$post->addChild('id', 'data:,none');

$summary = $post->addChild('summary', 'Contact');
$summary->addAttribute('type', 'text');

$content = $post->addChild('content');
$content->addAttribute('type', 'application/vnd.ctct+xml');

$contact = $content->addChild('Contact');
$contact->addAttribute('xmlns', '');

$contact->addChild('EmailAddress', $emailAddr);

$contact->addChild('OptInSource', 'ACTION_BY_CUSTOMER');

$contactlists = $contact->addChild('ContactLists');

// loop through each of the defined contact lists
foreach($contactListId AS $listId) {
    $contactlist = $contactlists->addChild('ContactList');
    $contactlist->addAttribute('id', '' . $ccuser . '/lists/'.$listId);

$posturl = "{$ccuser}/contacts";
$authstr = $cckey . '%' . $ccuser . ':' . $ccpass;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $posturl);
curl_setopt($ch, CURLOPT_USERPWD, $authstr);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type:application/atom+xml"));
curl_setopt($ch, CURLOPT_HEADER, false); // Do not return headers
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); // If you set this to 0, it will take you to a page with the http response

$response = curl_exec($ch);


// returns true on success, false on error
return (!is_numeric($response));


Leave a Reply:

Your email address will not be published. Required fields are marked *