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.






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, 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"<>
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



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




Create a topic.

string message = "{'accountName':'acme','login':'ApiUser', 'password':'sdve4t3gfd', 'name':'Weekly Specials', 'description':'For our weekly emails'}";
string url = "";
	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))
	System.Net.WebResponse webResponse = request.GetResponse();
	using (Stream webStream = webResponse.GetResponseStream())
		using (StreamReader responseReader = new StreamReader(webStream))
catch (Exception e)
# encoding: utf-8
require 'rest-client'
require 'json'
url = ''
args = {'accountName'=>'acme', 'login'=>'ApiUser', 
'password'=>'sdf3w4tw','name'=>'Weekly Specials', 'description'=>'For our weekly emails'}
response =, args.to_json, :content_type => "application/json;charset=utf-8")
puts response	
import requests
url = "";
args = {'accountName':'acme','login':'ApiUser', 'password':'f334f3fg3', 'name':'Weekly Specials', 'description':'For our weekly emails'}
headers = {'Content-Type': 'application/json'}
resp =, 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'}"

Share this: