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.
Post
/API/Rest/Recipients/AddMany
| 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.
CreateEditMember
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
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."}]
Add and update recipients.
using System;
using System.Net.Http;
using System.Text;
string url = "https://example.com/API/Rest/Recipients/AddMany";
string message = "{\"accountName\":\"acme\",\"login\":\"ApiUser\",\"password\":\"YOUR_PASSWORD\",\"importType\":\"AddAndUpdate\",\"topics\":[\"Weekly\",\"Daily\"],\"culture\":\"en-US\",\"demographics\":[[\"EmailAddress\",\"Name\"],[\"bob@aol.com\",\"Bob Smith\"],[\"fred.smith@aol.com\",\"Fred Smith\"]]}";
// 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/Recipients/AddMany'
args = {'accountName'=>'acme', 'login'=>'ApiUser', 'password'=>'YOUR_PASSWORD', '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 = "https://example.com/API/Rest/Recipients/AddMany"
args = {'accountName':'acme','login':'ApiUser', 'password':'YOUR_PASSWORD', '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 --request POST --header "Content-Type: application/json" --data '{"accountName":"acme","login":"ApiUser", "password":"YOUR_PASSWORD", "importType":"AddAndUpdate", "topics":["Weekly","Daily"], "culture":"en-US", "demographics":[["EmailAddress","Name"], ["bob@aol.com","Bob Smith"], ["fred.smith@aol.com","Fred Smith"]]}' "https://example.com/API/Rest/Recipients/AddMany"