REST Email Marketing API Documentation

Topics — Create

Create a new topic. Topics are used to record unsubscribes, and to keep some defaults for newly created mailings and documents. Do not create a new topic simply for the purpose of defining a list. Instead use segmentation to target the recipients you want. Most fields in the topic are optional, in which case their value will be copied from the global settings. There are a few additional values for a topic that can be set through the web interface.

HTTP VERB

Post

URL

/API/Rest/Topics

ARGUMENTS

name A name for the new topic. Up to 25 characters.
description A description of the topic. For your use only.
recipientLoggingLevel (Optional) What level of logs to keep. (A)ll, (E)rrors, or (N)one.
replyTo (Optional) The reply-to header in the email. Must be a valid email address. Can be something like DoNotReply@example.com, although this is not recommended. Can use mail merge tags to make the reply dynamic.
headerFrom (Optional) The from address for the email. Use just an email address or an email address with a name, like "Example Sales"<sales@example.com>
charsetId (Optional) The character set for this content.
bodyLanguageId (Optional) The language ID for the content.
priority (Optional) The default priority for new mailings and documents created using this topic. 1 is highest, 9 is lowest, 5 is default.
virtualIpGroup (Optional) What IP group to use if you have configured multiple IP addresses.
delimiterStart (Optional) The delimiter to mark the start of a mail merge section. Use [-, [[, or {{
delimiterEnd (Optional) The delimiter to mark the end of a mail merge section. Use -], ]], or }}
additionalHeaders (Optional) String dictionary. Additional headers to add to the message.

Required permission

CreateTopic

ERRORS

No Permission
Topic already exists
Invalid topic name: too long
Missing description
Invalid recipient logging level. Allowed values are (A)ll, (E)rrors, or (N)o logs
Invalid priority value. 1 is highest, 9 is lowest
Invalid DelimiterStart. Recommend [- Alternatively {{ or [[
Invalid DelimiterEnd. Recommend -] Alternatively }} or ]]
Mismatched delimiters. Use [- -], {{ }}, or [[ ]]
Provide both Charset ID and Body Language ID or neither
Invalid CharsetId
Invalid BodyLanguageId
Additional headers cannot be blank for the key or the value
Invalid additional headers key:
Invalid VirtualIpGroup value
Too many API calls
Database error
Unknown error

RETURNS

Success


EXAMPLE

Create a topic.

string message = "{'accountName':'acme','login':'ApiUser', 'password':'sdve4t3gfd', 'name':'Weekly Specials', 'description':'For our weekly emails'}";
string url = "http://example.com/api/rest/Topic";
								
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/Topics'
args = {'accountName'=>'acme', 'login'=>'ApiUser', 
'password'=>'sdf3w4tw','name'=>'Weekly Specials', 'description'=>'For our weekly emails'}
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/Topics";
args = {'accountName':'acme','login':'ApiUser', 'password':'f334f3fg3', 'name':'Weekly Specials', 'description':'For our weekly emails'}
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', 'name':'Weekly Specials', 'description':'For our weekly emails'}" http://www.example.com/API/Rest/Topics/Create

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.