REST Email Marketing API Documentation


Perform mail merging on a document and send it to the specified email address.






documentName The name of the document to send. Must be of type 'User'
emailAddress The email address of an existing recipient.
substitutions A string dictionary of keys and values for substitution.

Required permission



No Permission
Invalid email address
Invalid document name
Invalid document type
No DNS MX entries for this domain
No virtual IP address configured
Unable to find a address that can be used for sending
An error occurred attempting to mail merge
Unable to retrieve dynamic mail merge data
The receiving mail server did not accept the mail, returning a message indicating the IP address has been blocked
The receiving mail server did not accept our attempt to connect
The receiving mail server returned a temporary failure code, implementing a strategy called "greylisting"
The receiving mail server said the mailbox is full
The receiving mail server did not accept the mail, complaining about too much email being sent, but saying that you could try again later
The receiving mail server rejected the mail, categorizing it as SPAM
The receiving mail server rejected the mail saying that the email address is unknown
The receiving mail server rejected the mail for an unknown reason
Database error
Unknown error


The document was accepted by the receiving mail server


Send a test document with dynamic substitutions.

string message = "{'accountName':'acme','login':'ApiUser', 'password':'sdve4t3gfd', 'documentName':'Survey', 'emailAddress':'', 'substitutions':{'survey_link':'', 'unsub_link':''}}";
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', 'documentName'=>'Survey', 'emailAddress'=>'', 'substitutions'=>{'survey_link'=>'','unsub_link'=>''}}
response =, args.to_json, :content_type => "application/json;charset=utf-8")
puts response	
import requests

url = "";
args = {'accountName':'acme','login':'ApiUser','password':'geg45wqwerg', 'documentName':'Survey', 'emailAddress':'', 'substitutions':{'survey_link':'', 'unsub_link':''}}
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':'geg45wqwerg', 'documentName':'Survey', 'emailAddress':'', 'substitutions':{'survey_link':'', 'unsub_link':''}}"

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.