<?php
require_once("includes/ActiveCampaign.class.php");
$ac = new ActiveCampaign("API_URL", "API_KEY");
/*
* TEST API CREDENTIALS.
*/
if (!(int)$ac->credentials_test()) {
echo "<p>Access denied: Invalid credentials (URL and/or API key).</p>";
exit();
}
echo "<p>Credentials valid! Proceeding...</p>";
/*
* VIEW ACCOUNT DETAILS.
*/
$account = $ac->api("account/view");
echo "<pre>";
print_r($account);
echo "</pre>";
/*
* ADD NEW LIST.
*/
$list = array(
"name" => "List 3",
"sender_name" => "My Company",
"sender_addr1" => "123 S. Street",
"sender_city" => "Chicago",
"sender_zip" => "60601",
"sender_country" => "USA",
);
$list_add = $ac->api("list/add", $list);
if (!(int)$list_add->success) {
// request failed
echo "<p>Adding list failed. Error returned: " . $list_add->error . "</p>";
exit();
}
// successful request
$list_id = (int)$list_add->id;
echo "<p>List added successfully (ID {$list_id})!</p>";
/*
* ADD OR EDIT CONTACT (TO THE NEW LIST CREATED ABOVE).
*/
$contact = array(
"email" => "test@example.com",
"first_name" => "Test",
"last_name" => "Test",
"p[{$list_id}]" => $list_id,
"status[{$list_id}]" => 1, // "Active" status
);
$contact_sync = $ac->api("contact/sync", $contact);
if (!(int)$contact_sync->success) {
// request failed
echo "<p>Syncing contact failed. Error returned: " . $contact_sync->error . "</p>";
exit();
}
// successful request
$contact_id = (int)$contact_sync->subscriber_id;
echo "<p>Contact synced successfully (ID {$contact_id})!</p>";
/*
* VIEW ALL CONTACTS IN A LIST (RETURNS ID AND EMAIL).
*/
$ac->version(2);
$contacts_view = $ac->api("contact/list?listid=14&limit=500");
$ac->version(1);
/*
* ADD NEW EMAIL MESSAGE (FOR A CAMPAIGN).
*/
$message = array(
"format" => "mime",
"subject" => "Check out our latest deals!",
"fromemail" => "newsletter@test.com",
"fromname" => "Test from API",
"html" => "<p>My email newsletter.</p>",
"p[{$list_id}]" => $list_id,
);
$message_add = $ac->api("message/add", $message);
if (!(int)$message_add->success) {
// request failed
echo "<p>Adding email message failed. Error returned: " . $message_add->error . "</p>";
exit();
}
// successful request
$message_id = (int)$message_add->id;
echo "<p>Message added successfully (ID {$message_id})!</p>";
/*
* CREATE NEW CAMPAIGN (USING THE EMAIL MESSAGE CREATED ABOVE).
*/
$campaign = array(
"type" => "single",
"name" => "July Campaign", // internal name (message subject above is what contacts see)
"sdate" => "2013-07-01 00:00:00",
"status" => 1,
"public" => 1,
"tracklinks" => "all",
"trackreads" => 1,
"htmlunsub" => 1,
"p[{$list_id}]" => $list_id,
"m[{$message_id}]" => 100, // 100 percent of subscribers
);
$campaign_create = $ac->api("campaign/create", $campaign);
if (!(int)$campaign_create->success) {
// request failed
echo "<p>Creating campaign failed. Error returned: " . $campaign_create->error . "</p>";
exit();
}
// successful request
$campaign_id = (int)$campaign_create->id;
echo "<p>Campaign created and sent! (ID {$campaign_id})!</p>";
/*
* VIEW CAMPAIGN REPORTS (FOR THE CAMPAIGN CREATED ABOVE).
*/
$campaign_report_totals = $ac->api("campaign/report/totals?campaignid={$campaign_id}");
echo "<p>Reports:</p>";
echo "<pre>";
print_r($campaign_report_totals);
echo "</pre>";
?>
<p><b>Note</b>: It can also be helpful to check our <a href="http://www.activecampaign.com/api/overview.php">API documentation</a> for the HTTP method that should be used for a particular endpoint as it can affect the format of your request.</p>
<p>Example: <pre>list_field_view</pre> GET</p>
<pre>
$ac->api("list/field/view?ids=all");
<pre>
<p>Query params appended for a GET request.</p>
<p>Example: <pre>list_field_edit</pre> POST</p>
<pre>
$ac->api("list/field/edit", array(/*POST params here.*/));
</pre>
<a href="http://www.activecampaign.com/api">View more API examples!</a>