Spikemail XML API Version 3
Usage
XML post to:
Old server: http://myspikemail.com/sendstudio/xml3.php
New server: http://myspikemail.com/mail/xml3.php
To obtain your username, usertoken, listid and fieldids or to report issues
submit a request to support at spikemail.co.nz/
Please note that when migrating to the new server your usertoken and ids will change.
XML success response
<response>
<status>SUCCESS</status>
<data>
...
</data>
</response>
XML error response
<response>
<status>ERROR</status>
<errormessage>
...
</errormessage>
</response>
PHP 5 Example
<?php
$xml = '<xmlrequest>
<username>username</username>
<usertoken>usertoken</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>IsSubscriberOnList</requestmethod>
<details>
<emailaddress>test@spikemail.co.nz</emailaddress>
<mailinglist>0</mailinglist>
</details>
</xmlrequest>';
$data = array('xml' => $xml );
$session = curl_init('http://myspikemail.com/sendstudio/xml3.php');
curl_setopt($session, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($session, CURLOPT_POST, TRUE);
curl_setopt($session, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($session);
if ( $result === false )
{
echo curl_error($session);
}
else
{
$xml_doc = simplexml_load_string($result);
echo 'Status is ', $xml_doc->status, '<br/>';
if ($xml_doc->status == 'SUCCESS')
{
echo 'Subscriber ID is ', $xml_doc->data, '<br/>';
}
else
{
echo 'Error is ', $xml_doc->errormessage, '<br/>';
}
}
curl_close($session);
?>
Version 3 Changes
Transaction rollback on errors (new server only).
New APIs to check unsubscribes and bounces.
Add Contact To List
New error message for invalid mailinglist.
Update Contact On List
New error messages for invalid mailinglist, subscriberid, fieldid or value.
Is Contact On List
<xmlrequest>
<username>username</username>
<usertoken>usertoken</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>IsSubscriberOnList</requestmethod>
<details>
<emailaddress>test@spikemail.co.nz</emailaddress>
<mailinglist>0</mailinglist>
</details>
</xmlrequest>
Response data: subscriberid
Error message: Not on list
Is Contact Unsubscribed From List
<xmlrequest>
<username>username</username>
<usertoken>usertoken</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>IsUnsubscriber</requestmethod>
<details>
<emailaddress>test@spikemail.co.nz</emailaddress>
<mailinglist>0</mailinglist>
</details>
</xmlrequest>
Response data: subscriberid
Error message: Still subscribed
Error message: Not on list
Is Contact Bounced From List
<xmlrequest>
<username>username</username>
<usertoken>usertoken</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>IsBounceSubscriber</requestmethod>
<details>
<emailaddress>test@spikemail.co.nz</emailaddress>
<mailinglist>0</mailinglist>
</details>
</xmlrequest>
Response data: subscriberid
Error message: Not bounced
Error message: Not on list
Add Contact To List
<xmlrequest>
<username>username</username>
<usertoken>usertoken</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>AddSubscriberToList</requestmethod>
<details>
<emailaddress>test@spikemail.co.nz</emailaddress>
<mailinglist>0</mailinglist>
<format>html</format> <!-- html / text -->
<confirmed>yes</confirmed> <!-- yes / no -->
<ipaddress>0.0.0.0</ipaddress>
<customfields> <!-- example fieldids -->
<item>
<fieldid>1</fieldid><value>FirstName</value>
</item>
<item>
<fieldid>2</fieldid><value>LastName</value>
</item>
<item> <!-- gender radio buttons -->
<fieldid>3</fieldid><value>m</value>
</item>
<item> <!-- country select list -->
<fieldid>4</fieldid><value>NZ</value>
</item>
<item> <!-- interests checkboxes -->
<fieldid>5</fieldid>
<value>Interest1</value><value>Interest2</value>
</item>
</customfields>
</details>
</xmlrequest>
Response data: subscriberid
Error message: Invalid mailinglist
Error message: Already subscribed
Update Contact On List
<xmlrequest>
<username>username</username>
<usertoken>usertoken</usertoken>
<requesttype>subscribers</requesttype>
<requestmethod>UpdateSubscriberOnList</requestmethod>
<details>
<subscriberid>0</subscriberid>
<mailinglist>0</mailinglist>
<status>a</status> <!-- a=active u=unsubscribed -->
<format>html</format> <!-- html / text -->
<customfields> <!-- example fieldids -->
<item> <!-- interests checkboxes -->
<fieldid>5</fieldid>
<value>Interest1</value><value>Interest3</value>
</item>
</customfields>
</details>
</xmlrequest>
Response data: subscriberid
Use status to set active or unsubscribed.
