This blog post has been superseded with our website documentation
deliveryReports
This document is referred to by the REST SMS Gateway API – Specification Document.
Resource URI:
https://api.textmarketer.co.uk/services/rest/deliveryReports
Actions on the list of available delivery reports.
- GET method – Gets a list of available delivery report names
The REST API resource deliveryReports (note the trailing ‘s’) performs actions on the list of available delivery report names, including delivery reports for campaigns.
A delivery report shows the current known status of all messages sent on a given day or for a particular campaign. To access the contents of a particular delivery report – which will contain the status of individual messages – you would use the deliveryReport resource instead – i.e. no trailing ‘s’.
GET
GET method
Get the list of available delivery reports.
Example usage
https://api.textmarketer.co.uk/services/rest/deliveryReports
Example GET response
<response processed_date="2010-03-19T15:20:49+00:00"> <userdirectory>aBcDeFgHiJkLmNoPqRsTuVwZ</userdirectory> <reports quantity="2" > <report name="test-190310" last_updated="2010-03-19T09:45:04+00:00" extension="csv"/> <report name="GatewayAPI_08-03-10" last_updated="2010-03-08T15:45:02+00:00" extension="csv"/> </reports> </response>
Read the advanced specification of this response
.
When we receive a delivery report from the operator this gets added to a delivery report with a standardised name. The naming format is as follows: “GatewayAPI_DD-MM-YY” where DD is the day in the month, MM is the month and YY is the year, each being in a 2-digit format. So for example:
GatewayAPI_04-01-09 is valid
GatewapAPI_12-12-09 is valid
GatewayAPI_1-1-9 is invalid
Specific error codes
N/A
Note
Although it is expected that you will want to use the deliveryReport resource to get the contents of a delivery report, the response as shown above contains all the information necessary to download the delivery reports in csv format, if that is your preferred method. In this case each report can be accessed via the URL
https://api.textmarketer.co.uk/DeliveryReports/[dir]/[filename]
where
[dir] = the user directory as found in the response above, i.e. in the above example aBcDeFgHiJkLmNoPqRsTuVwZ [filename] = the name of the csv file to download, e.g. GatewayAPI_08-03-10.csv
So the complete URL in this example would be:
https://api.textmarketer.co.uk/DeliveryReports/aBcDeFgHiJkLmNoPqRsTuVwZ/GatewayAPI_08-03-10.csv
Example PHP code
<?php /** * GET request on the deliveryReports resource */ $url = 'https://api.textmarketer.co.uk/services/rest/deliveryReports'; $username = 'myAPIusername'; // CHANGE THIS!!! $password = 'myAPIpassword'; // CHANGE THIS!!! $url = "$url?username=$username&password=$password"; // we're using the curl library to make the request $curlHandle = curl_init(); curl_setopt($curlHandle, CURLOPT_URL, $url); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true); $responseBody = curl_exec($curlHandle); $responseInfo = curl_getinfo($curlHandle); curl_close($curlHandle); // deal with the response if ($responseInfo['http_code']==200) { $xml_obj = simplexml_load_string($responseBody); $atts = $xml_obj->reports->attributes(); $num_reports = (int) $atts->quantity; if ($num_reports > 0) { echo "$num_reports reports\n"; $reports = array(); foreach ($xml_obj->reports->report as $xml_report) { $atts = $xml_report->attributes(); $name = (string) $atts->name; $updated = (string) $atts->last_updated; $reports[] = array('name'=>$name, 'modified'=>$updated); } // do something with the report details var_dump($reports); } else { echo 'No reports available'; } } else { // handle the error var_dump($responseBody); } ?>