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.
Post
/API/Rest/Topics
| 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. |
CreateTopic
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
Success
Create a topic.
using System;
using System.Net.Http;
using System.Text;
string url = "https://example.com/API/Rest/Topics";
string message = "{\"accountName\":\"acme\",\"login\":\"ApiUser\",\"password\":\"YOUR_PASSWORD\",\"name\":\"Weekly Specials\",\"description\":\"For our weekly emails\"}";
// Reuse HttpClient for multiple requests in production code.
using (var client = new HttpClient())
using (var request = new HttpRequestMessage(HttpMethod.Post, url))
{
request.Content = new StringContent(message, Encoding.UTF8, "application/json");
using (HttpResponseMessage response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
}
# encoding: utf-8
require 'rest-client'
require 'json'
url = 'https://example.com/API/Rest/Topics'
args = {'accountName'=>'acme', 'login'=>'ApiUser',
'password'=>'YOUR_PASSWORD','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 = "https://example.com/API/Rest/Topics"
args = {'accountName':'acme','login':'ApiUser', 'password':'YOUR_PASSWORD', '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 --request POST --header "Content-Type: application/json" --data '{"accountName":"acme","login":"ApiUser", "password":"YOUR_PASSWORD", "name":"Weekly Specials", "description":"For our weekly emails"}' "https://example.com/API/Rest/Topics"