REST Email Marketing API Documentation

Subscriptions — Change

Alter the subscriptions for a recipient.

HTTP VERB

Post

URL

/API/Rest/Subscriptions/Change

ARGUMENTS

emailAddress The email address to modify the topic subscriptions.
subscribedTopics (Optional) Array of topic names that the recipient should be subscribed to
unsubscribedTopics (Optional) Array of topic names that the recipient should be unsubscribed from

One of the arrays must be provided.


Required permission

CreateEditMember

ERRORS

No Permission
Invalid topic:
Recipient is not in the database
Too many API calls
Database error
Unknown error

RETURNS

An array of string descriptions, one for each change.


["Corporate Mailings: Subscribed",
"MARKETPLACE: Resubscribed",
"API Email: Unsubscribed",
"Business News: No changes",
"Example Mailings: Re-unsubscribed"]


EXAMPLE

Update the topic subscriptions.

using System;
using System.Net.Http;
using System.Text;

string url = "https://example.com/API/Rest/Subscriptions/Change";
string message = "{\"accountName\":\"acme\",\"login\":\"ApiUser\",\"password\":\"YOUR_PASSWORD\",\"emailAddress\":\"joe@example.com\",\"unsubscribedTopics\":[\"API Email\",\"Example Mailings\"],\"subscribedTopics\":[\"Corporate Mailings\",\"MARKETPLACE\"]}";

// 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/Subscriptions/Change'
args = {'accountName'=>'acme','login'=>'ApiUser',
'password'=>'YOUR_PASSWORD','emailAddress'=>'joe@example.com', 'unsubscribedTopics'=>['API Email', 'Example Mailings'], 'subscribedTopics'=>['Corporate Mailings', 'MARKETPLACE']}
response = RestClient.post(url, args.to_json, :content_type => "application/json;charset=utf-8")
puts response
						
import requests
url = "https://example.com/API/Rest/Subscriptions/Change"
args = {'accountName':'acme','login':'ApiUser', 'password':'YOUR_PASSWORD', 'emailAddress':'joe@example.com', 'unsubscribedTopics':['API Email','Example Mailings'], 'subscribedTopics':['Corporate Mailings','MARKETPLACE']}
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", "emailAddress":"joe@example.com", "unsubscribedTopics":["API Email","Example Mailings"], "subscribedTopics":["Corporate Mailings","MARKETPLACE"]}' "https://example.com/API/Rest/Subscriptions/Change"