REST Email Marketing API Documentation

Recipients — AddMany

Add or update one or more recipients, optionally providing demographic fields. Existing recipients will have their demographics undated, but their unsubscribe status will not be changed so you don't need to fear re-subscribing someone based on this import. The demographics array must have email address as a minimum, and any other demographics provided will update the values for an existing recipient. Empty values do not override existing data. Recipients cannot be added or updated when using a Foreign Members table.

HTTP VERB

Post

URL

/API/Rest/Recipients/AddMany

ARGUMENTS

importType (Optional) One of the values: AddOnly, AddAndUpdate, UpdateOnly. Default is AddAndUpdate.
topics (Optional) An array of the topics that this recipients should be marked as subscribed to
culture The culture of the recipient. Used to correctly parse the demographics.
document (Optional) The name of a document in the system to send to the recipient as a welcome.
documentOptions (Optional) One value from: NewRecipients, AllRecipients
fixedSegmentName (Optional) The name of a fixed segment to create to store the recipients in the import
demographics (optional)An array of arrays of values to be imported. The first row is the column headers. Each subsequent row must have the same number of columns. EmailAddress must be one of the columns.

To send a welcome document to the imported recipients, specify the culture, document, and documentOptions information. You can choose to send the document to only newly added recipient, or to all recipient in this import. Provide a fixed segment name to keep a record of the recipients imported from this operation.

Required permission

CreateEditMember

ERRORS

No Permission
Invalid importType option. Options are: AddOnly, AddAndUpdate, or UpdateOnly
Invalid documentAction. Options are: NewRecipients, AllRecipients, or UnConfirmedOnly
Invalid culture
Invalid topic selection:
Must provide recipient data and import columns
Unknown demographic column ''
One of the columns in the data must be the EmailAddress
Invalid document name
Cannot import recipients when using a foreign Members table.
Cannot append to any segment type except Fixed
Too many API calls
Database error
Unknown error

RETURNS

An array of results, one for each recipient in the import data. The data returned is the email address, the recipient ID in the system, and the status of the insert or update.


[{"emailAddress":"bob@aol.com","recipientId":67512,"importMessage":"Successfully updated."},
{"emailAddress":"fred.smith@aol.com","recipientId":67513,"importMessage":"Successfully added."}]


EXAMPLE

Add and update recipients.


string message = "{'accountName':'acme','login':'ApiUser', 'password':'sdve4t3gfd', 'importType':'AddAndUpdate', 'topics':['Weekly','Daily'], 'culture':'en-US', 'demographics':[['EmailAddress','Name'], ['bob@aol.com','Bob Smith'], ['fred.smith@aol.com','Fred Smith']]}";
string url = "http://example.com/api/rest/Recipients/AddMany";
								
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/Recipients/AddMany'
args = {'accountName'=>'acme', 'login'=>'ApiUser', 'password'=>'sdf3w4tw', 'importType'=>'AddAndUpdate', 'topics'=>['Weekly','Daily'], 'culture'=>'en-US', 'demographics'=>[['EmailAddress','Name'], ['bob@aol.com','Bob Smith'], ['fred.smith@aol.com','Fred Smith']]}
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/Recipients/AddMany";
args = {'accountName':'acme','login':'ApiUser', 'password':'f334f3fg3', 'importType':'AddAndUpdate', 'topics':['Weekly','Daily'], 'culture':'en-US', 'document':'', 'documentOptions':'', 'fixedSegmentName':'', 'demographics':[['EmailAddress','Name'], ['bob@aol.com','Bob Smith'], ['fred.smith@aol.com','Fred Smith']]}
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':'f334f3fg3', 'importType':'AddAndUpdate', 'topics':['Weekly','Daily'], 'culture':'en-US', 'document':'', 'documentOptions':'', 'fixedSegmentName':'', 'demographics':[['EmailAddress','Name'], ['bob@aol.com','Bob Smith'], ['fred.smith@aol.com','Fred Smith']]}" http://www.example.com/API/Rest/Recipients/AddMany

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.