Get a list of unique contacts that opened the specified email campaign activity.

Note: This method is only for use with primary_email and resend role email campaign activities.

Make a GET call to the /reports/email_reports/{campaign_activity_id}/tracking/unique_opens endpoint to get a report listing details about the last time each unique contact opened the specified email campaign activity. This report lists the most recent activity first.

To get a report that lists each time each contact opened the email campaign activity, make a GET call to the /reports/email_reports/{campaign_activity_id}/opens endpoint.

The unique opens report includes general contact information such as the contact’s email address and unique ID, the date and time they last opened the email campaign activity, and the type of device they used to open it.

For example:

{
  "contact_id": "439a1cb0-5b89-11e7-ba80-00163e498a38",
  "campaign_activity_id": "c8cdf384-15ca-4dcc-9b6f-4c91121fd123",
  "tracking_activity_type": "em_unique_opens",
  "email_address": "jake_dodge@jakedodgepancakes.com",
  "device_type": "mobile",
  "created_time": "2019-05-16T21:14:00.000Z"  
}

If you have not sent the email campaign activity to any contacts, this method returns a 200 response code and an empty array for tracking_activities:

{
   "tracking_activities": []
}    

You can confirm that Constant Contact successfully sent an email campaign activity by making a GET call to /emails/activities/{campaign_activity_id} and checking that the email campaign activity has a status of Done. For more information, see the Get an Email Campaign Activity topic.

Parameters

This method requires the campaign_activity_id URL parameter of the email campaign activity for which you want to get an email unique opens report. Optionally, you can choose to limit the number of email unique open activities to return on each page by using the limit query parameter.

Query Parameters

This method does not currently support filtering results using the email sends report created_time timestamp.

Example Get Email Unique Opens Report Call

This example GET call returns an email unique opens report for a specified email campaign activity and limits the number of unique contact open activities to return to three opens per page.

GET https://api.cc.email/v3/reports/email_reports/c8cdf384-15ca-4dcc-9b6f-4c91121fdc23/tracking/unique_opens

Endpoint Requirements

User privileges: ui:campaign:metrics

Authorization scopes: campaign_data

<?php

$request = new HttpRequest();
$request->setUrl('https://api.cc.email/v3/reports/email_reports/c8cdf384-15ca-4dcc-9b6f-4c91121fdc23/tracking/unique_opens');
$request->setMethod(HTTP_METH_GET);

$request->setQueryData(array(
  'limit' => '3%0A'
));

$request->setHeaders(array(
  'cache-control' => 'no-cache',
  'Connection' => 'keep-alive',
  'Accept-Encoding' => 'gzip, deflate',
  'Host' => 'your_host.com',
  'Postman-Token' => 'a990a9b4-ee38-41ad-bf57-037733f08084,91f3841b-587c-456a-8042-9275cffc61d0',
  'Cache-Control' => 'no-cache',
  'User-Agent' => 'PostmanRuntime/7.15.2',
  'Authorization' => 'Bearer {access token}',
  'Content-Type' => 'application/json',
  'Accept' => '*/*'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.cc.email/v3/reports/email_reports/c8cdf384-15ca-4dcc-9b6f-4c91121fdc23/tracking/unique_opens?limit=3%0A")
  .get()
  .addHeader("Accept", "*/*")
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer {access token}")
  .addHeader("User-Agent", "PostmanRuntime/7.15.2")
  .addHeader("Cache-Control", "no-cache")
  .addHeader("Postman-Token", "a990a9b4-ee38-41ad-bf57-037733f08084,35c71be5-ee94-4a3e-8cff-5869a89ca403")
  .addHeader("Host", "your_host.com")
  .addHeader("Accept-Encoding", "gzip, deflate")
  .addHeader("Connection", "keep-alive")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

curl -X GET \
  'https://api.cc.email/v3/reports/email_reports/c8cdf384-15ca-4dcc-9b6f-4c91121fdc23/tracking/unique_opens?limit=3%0A'\
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Authorization: Bearer {access token}' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -H 'Host: your_host.com' \
  -H 'Postman-Token: a990a9b4-ee38-41ad-bf57-037733f08084,980c9657-b107-4a02-9ec5-edb47ffd9e42' \
  -H 'User-Agent: PostmanRuntime/7.15.2' \
  -H 'cache-control: no-cache'
  

Response

{
    "tracking_activities": [
        {
            "contact_id": "4399ce90-5b89-11e7-ba80-00163e498a38",
            "campaign_activity_id": "c8cdf384-15ca-4dcc-9b6f-4c91121fdc23",
            "tracking_activity_type": "em_opens",
            "email_address": "jake_dodge@jakedodgepancakes.com",
            "device_type": "other",
            "created_time": "2019-05-16T21:14:00.000Z"
        },
        {
            "contact_id": "4399f5a0-5b89-11e7-ba80-00163e498a38",
            "campaign_activity_id": "c8cdf384-15ca-4dcc-9b6f-4c91121fdc23",
            "tracking_activity_type": "em_opens",
            "email_address": "jake_dodge@jakedodgepancakes.com",
            "device_type": "mobile",
            "created_time": "2019-05-16T21:14:00.000Z"
        },
        {
            "contact_id": "439a1cb0-5b89-11e7-ba80-00163e498a38",
            "campaign_activity_id": "c8cdf384-15ca-4dcc-9b6f-4c91121fdc23",
            "tracking_activity_type": "em_opens",
            "email_address": "jake_dodge@jakedodgepancakes.com",
            "device_type": "mobile",
            "created_time": "2019-05-16T21:14:00.000Z"
        }
    ],
    "_links": {
        "next": {
            "href": "https://api.cc.email/v3/reports/email_reports/c8cdf384-15ca-4dcc-9b6f-4c91121fdc23/tracking/unique_opens?next=<the_url_link>"
        }
    }
}

Try it!