REST Email Marketing API Documentation

DOCUMENTS — REPORT

Report on data about opens, clicks, or deliverability for documents with optional arguments to select the documents to query, the time period, or restrict by Report Category, IP address, or a demographic column.

HTTP VERB

Post

URL

/API/Rest/Documents/Report

ARGUMENTS

reportType The type of data to report on. Options are: Clicks, Opens, and Deliverability
documents (Optional) An array of document names to report on
startTime (Optional) Provide data for events after this date and time.
endTime (Optional) Provide data for events before this date and time.
reportCategory (Optional) If you assigned report categories when the documents were sent, you can now report using those categories.
demographicColumn (Optional) Provide a demographic column to restrict the results
demographicValue (Optional) The value to be searched for in the demographicColumn
virtualIpGroup (Optional) Limit the results to documents sent to this virtual IP group.

Required permission

StandardReport

ERRORS

No Permission
Invalid report type. Options: Clicks, Opens, Deliverability
Cannot find document
Error in processing
Database error
Unknown error

RETURNS

The document was accepted by the receiving mail server.


{"downloadGuid":"7abc6069-35f2-469d-90d0-67818d40e6ae","totalRows":3,"userData":[["574770004@AOL.com","Joe Blow","Success","1/1/2016 7:16 AM","Invite"],["1249090386@MSN.com","Sam Spade","Success","1/1/2016 7:16 AM","Invite2"],["12346567@Live.com","Jim Jones","Success","1/1/2016 7:17 AM","Invite"]]}

EXAMPLE

Generate an opens report for several different documents in a time period.

string message = "{'accountName':'acme','login':'ApiUser', 'password':'sdve4t3gfd', 'reportType':'Opens', 'documents':['Invite', 'Invite1'], 'startTime':'2016-01-01', 'endTime':'2016-02-28'}";
string url = "http://example.com/api/rest/Documents/Report";

try
{
	System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
	request.Method = "POST";
	request.ContentType = "application/json";
	request.ContentLength = message.Length;
	using (Stream webStream = request.GetRequestStream())
		using (StreamWriter requestWriter = new StreamWriter(webStream, System.Text.Encoding.ASCII))
			requestWriter.Write(message);

	System.Net.WebResponse webResponse = request.GetResponse();
	using (Stream webStream = webResponse.GetResponseStream())
		using (StreamReader responseReader = new StreamReader(webStream))
			Console.Out.WriteLine(responseReader.ReadToEnd());
}
catch (Exception e)
{
	System.Diagnostics.Debug.Fail(e.Message);
}
							
# encoding: utf-8
require 'rest-client'
require 'json'

url = 'http://www.acme.com/api/rest/Documents/Report'
args = {'accountName'=>'acme', 'login'=>'ApiUser', 'password'=>'sdf3w4tw', 'reportType'=>'Opens','documents'=>['Invite','Invite1'], 'startTime'=>'2016-01-01','endTime'=>'2016-02-28' }
response = RestClient.post(url, args.to_json, :content_type => "application/json;charset=utf-8")
puts response
						
import requests
url = "http://www.example.com/api/rest/Documents/Report";
args = {'accountName':'acme','login':'ApiUser','password':'35tergdsgwe', 'reportType':'Opens', 'documents':['Invite', 'Invite1'], 'startTime':'2016-01-01', 'endTime':'2016-02-28' }
headers = {'Content-Type': 'application/json'}
resp = requests.post(url, json=args, headers=headers)
if resp.status_code == 200:
	print resp.text
						

curl -X POST -H "Content-Type: application/json" -d "{'accountName':'acme','login':'ApiUser', 'password':'35tergdsgwe', 'reportType':'Opens', 'documents':['Invite', 'Invite1'], 'startTime':'2016-01-01', 'endTime':'2016-02-28' }" http://example.com/api/rest/Documents/Report

As a user of Goolara Symphonie, the REST API is free and included in the latest version of the software. If you have any questions about using Symphonie’s REST API, feel free to contact us.