NOTE: Examine your automation program closely for problems. You are just as responsible for the SMS commands initiated by an automation program as if you had performed the action manually.
http://ediarosms.com/api_v1 via HTTP POST or GET method and the response will be returned in a JSON format.error key is present in the JSON response, then the process was NOT successful, and the value of error key is the description of what went wrong.http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key must be send_sms |
send_sms |
| message | The message to be sent. | Hello, there will be a meeting today by 12 noon. |
| recipients |
The recipient's phone numbers. Multiple numbers can be separated by comma (,).
Any mobile numbers starting with zero will have the zero stripped and replaced with the sub-account's default dial code. If the mobile number does not start with a zero, the default dial code will not be applied. E.G if the sub-account's default dial code is '+234', 08080000000,+2348095029999,4478128372838 will be converted to, 2348080000000,2348095029999,4478128372838 |
+2348095029999 |
| Optional Fields | ||
| type | 0 means normal sms, while 1 means flash-message. If this was not supplied, the message will be assumed to be normal SMS. |
0 |
| unicode | 0 means non-unicode sms, while 1 means that the message contains some special characters (e.g chinese, korean,...) that must be preserved (hence the character encoding of the HTTP request is also UTF-8) Please note that when a message is in unicode format, the character limits of the messages reduces to 72 characters per page. |
0 |
| route | 0 means standard route, 1 means corporate route, 2 means financial route | 0 |
| sender_id | What will appear to the recipient as the sender of the SMS. 3 to 11 characters (or 3 to 14 digits if numeric). If this was not supplied, the sub-account's default sender_id will be used. |
President |
| default_dial_code | The number that will replace the leading-zero on the recipient's phone number. If this was not supplied, the sub-account's default_dial_code will be used. |
234 |
| send_at | The message will be on queue, to be sent on the specified date. If this was not supplied, or if the value is a past date, the message will be sent immediately. |
2016-04-22 13:45
or
2016-04-22
or 13:45 |
| timezone_offset | The timezone to be used for send_at. If this was not supplied, the sub-account's timezone_offset will be used. |
+1 |
| contact_groups | Includes all numbers from the supplied contact groups of the sub-account with the recipients | default,My Customers |
| ignore_groups | Excludes all numbers that appears in supplied contact groups of the sub-account from the recipients | My Customers,My Customers2 |
| contacts |
A JSON Array of contacts, E.G: [{"phone":"+2348093216754","firstname":"Pearl"},{"phone":"08080000000","firstname":"Ibukun","lastname":"Oladipo","group_name":"Client","extra_data":"USER001"},{"phone":"+2348095029999","override_message":"Hello, bro. Please be around before 11:00am","override_date_time":"2016-04-22 09:30"}] ** 'phone' is the only compulsory field in a contact, when sending contacts in JSON format.
** If you include 'override_message' in a contact when sending message, it is the override_message that will be sent to that contact instead of the original message.
** If you include 'override_date_time' in a contact, message will rather be sent to the contact at the supplied override_date_time.
** If you include 'extra_data' (maxmum of 60 characters) in a contact when sending message, the value of the extra_data you supplied will be available in the record of the message when you later fetch_sms.
|
|
| save_as | If this is supplied, the recipient phone number(s), will be saved under the group-name; specified as the value of this field, otherwise the numbers will not be saved to contacts | default |
| callback_url |
If a url-encoded, valid url is specified, the delivery report will be sent as an encoded string of JSON Array, in an HTTP POST request to this supplied URL; under a POST key 'result'. (typically $_POST['result'] in php)
Sample format of the JSON string posted to the callback_url: [
{
"sms_id":"137072",
"batch_id":"1_1_1462391634",
"units":1,
"pages":1,
"status":2,
"status_msg":"DELIVERED",
"info":"Message delivered to handset",
"extra_data":""
},...
]
|
https%3A%2F%2Fediarosms.com%2Fprocess_sms_callback |
| NOTE: All duplicate numbers will be automatically removed for you and SMS will be sent to unique recipients only. | ||
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=send_sms&sender_id=President&message=Hello%2C+there+will+be+a+meeting+today+by+12+noon.&recipients=08080000000,2348095029999
<?php
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0Rd',
'action'=>'send_sms',
'sender_id'=>'President',
'recipients'=>'08080000000,2348095029999',
'message'=>"Hello, there will be a meeting today by 12 noon."
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
$msg="SMS sent to ".$json['total']." recipient(s).";
$sms_batch_id=$json['batch_id'];
}
}
echo $msg;
?>
send_sms request will be a JSON Object, containing the batch_id, and the total number of recipient numbers that are successfully parsed.
{"batch_id":"1_1_1437039374","total":"2"}
Below is a sample JSON response to a failed process:
{"error":"insufficient credit","error_code":"1"}
http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key must be fetch_sms |
fetch_sms |
|
Filters (Optional Fields)
Only those SMS that matches the specified criteria will be returned.
| ||
| perpage |
To fetch large records, it's essential to paginate. If supplied, maximum is 300 while minimum is 1. |
100 |
| p | This is only useful when paginating. It indicates the current page (e.g 1st page) of the record to be fetched. | 1 |
| batch_id | The batch_id returned from a send_sms action. |
1_1_1437039374 |
| sms_ids | If the sms_id of the message(s) were already known in advanced, they can be used for filtering. | 572,228 |
| stage | This can be pending, sent or failed. | sent |
| type | 0 means normal sms, while 1 means flash-message. | 0 |
| recipient | The recipient number, to which the SMS had been sent, e.g 08095029999 or 2348095029999 or +2348095029999 | 2348095029999 |
| sender_id | 3 to 11 characters (or 3 to 14 digits if numeric) | President |
| search_term | If supplied, the records that contains either the recipient, sender_id or message body that 'roughly' matches the supplied value will be returned | President 2348095029999 |
| start_date | The minimum: time sent, or scheduled time, of the messages to be returned. |
2016-04-22 13:45
or
2016-04-22
|
| end_date | The maximum: time sent, or scheduled time, of the messages to be returned. |
28-04-2016 13:45
or
28-04-2016
|
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=fetch_sms&batch_id=1_1_1437039374
<?php
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0Rd',
'action'=>'fetch_sms',
'batch_id'=>'1_1_1437039374',
//'stage'=>'sent'
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
//you can now do whatever with the records
//(e.g check the recipient, fetch the next page or display a message)
$msg=$json['total']." SMS records, page ".$json['p']." of ".$json['totalpages'];
$msg.= "<br/> <ol>";
foreach($json['records'] as $sms)
{
$msg.= "<li>To: ".$sms['recipient']."<br/> ".$sms['message']."</li>";
}
$msg.= "</ol>";
}
}
echo $msg;
?>
{
"total":19,"totalpages":1,"p":1,"perpage":100,"timezone_offset":"1",
"records":[
{"sms_id":"68",
"sender":"ibukun",
"recipient":"2022451175",
"message":"checking wrong number",
"sub_account_id":"1",
"user_id":"1",
"time_scheduled":"1448224505",
"batch_id":"1_1_1448224505",
"status":"-2",
"type":"0",
"units":"1",
"reference":"",
"time_submitted":"1448224505",
"time_sent":"1448224505",
"units_confirmed":"0",
"locked":"1",
"info":"Network is forbidden",
"firstname":"Gotv",
"lastname":"NUMBER",
"group_name":"default",
"status_msg":"REJECTED",
"submitted_at":"2015-11-22 20:35",
"scheduled_to":"2015-11-22 20:35",
"sent_at":"2015-11-22 20:35",
"extra_data":""
},
{"sms_id":"67","sender":"ibukun","recipient":"2348095029999","message":"hello; how're you doing","sub_account_id":"1","user_id":"1","time_scheduled":"1448223878","batch_id":"1_1_1448223878","status":"2","type":"0","units":"2","reference":"","time_submitted":"1448223878","time_sent":"1448223878","units_confirmed":"1","locked":"0","info":"Message delivered to handset","firstname":null,"lastname":null,"group_name":null,"status_msg":"DELIVERED","submitted_at":"2015-11-22 20:24","scheduled_to":"2015-11-22 20:24","sent_at":"2015-11-22 20:24","extra_data":""},
...
,"filter":{"sub_account_id":"1","batch_id":"","sms_id":"","sms_ids":"","type":"","recipient":"","search_term":"","sender_id":"","stage":"","start_date":"","end_date":"","p":"","perpage":100,"offset":0}
}
| Code | Status | Details |
|---|---|---|
| -4 | UNDELIVERABLE | The message is undeliverable |
| -3 | EXPIRED | Message validity period has expired. (e.g phone off or not in coverage area) |
| -2 | REJECTED | The message was rejected. The message is undeliverable. |
| -1 | FAILED | An issue occured while attempting to send the SMS. |
| 0 | PENDING | This message is on queue, to be sent. |
| 1 | SENT | The message was accepted by the Network server. Awaiting delivery status. |
| 2 | DELIVERED | Message is delivered to destination. |
http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key must be account_info |
account_info |
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=account_info
<?php
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0R',
'action'=>'account_info'
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
$msg="Balance: ".$json['balance'];
}
}
echo $msg;
?>
{"sub_account_id":"1","sub_account":"mysub1","user_id":"1","balance":"1209","notification_email":"example@gmail.com","default_dial_code":"234","timezone_offset":"1","default_sender_id":"ediaro"}
Below is a sample response to a failed process, a JSON Object
{"error":"Incorrect sub_account name or password","error_code":"4"}
http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key can be either stop_sms , delete_sms or get_total_units |
stop_sms |
|
Optional Filters
IMPORTANT: When deleting or stopping SMS, you must specify some kind of filter(s), otherwise your entire sms records will be premanently deleted/stopped | ||
| batch_id |
Typically a batch_id returned from a send_sms action.An attempt will be made to stop all SMS in this batch. |
1_1_1437039374 |
| sms_ids | Typically one or more sms_id from the SMS objects array returned from a fetch_sms action. |
572,228 |
| stage | This can be pending, sent or failed. | sent |
| type | 0 means normal sms, while 1 means flash-message. | 0 |
| recipient | The recipient number, to which the SMS had been sent, e.g 08095029999 or 2348095029999 or +2348095029999 | 2348095029999 |
| sender_id | 3 to 11 characters (or 3 to 14 digits if numeric) | President |
| start_date | The minimum: time sent, or scheduled time, of the messages to be returned. |
2016-04-22 13:45
or
2016-04-22
|
| end_date | The maximum: time sent, or scheduled time, of the messages to be returned. |
28-04-2016 13:45
or
28-04-2016
|
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=stop_sms&batch_id=1_1_1437039374
<?php
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0R',
'action'=>'stop_sms',
'batch_id'=>'1_1_1437039374'
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
$msg=$json['total']." messages stopped";
}
}
echo $msg;
?>
{"total":"10"}
Below is a sample response to a failed process, a JSON Object
{"error":"no record found.","error_code":"10"}
http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key must be save_contacts |
save_contacts |
|
Optional/Elective Fields
At least one of 'phone_numbers' or 'contacts' must be supplied.
|
||
| phone_numbers |
A string of phone numbers (multiple numbers can be separated by comma)
E.G: 08080000000,+2348095029999,4478128372838 Any mobile numbers starting with zero will have the zero stripped and replaced with the sub-account's default dial code.
|
+2348095029999 |
| contacts |
A JSON Array of contacts, E.G: [{"phone":"08080000000","firstname":"Ibukun","lastname":"Oladipo","group_name":"Client"},{"phone":"+2348095029999","firstname":"Pearl"}] 'phone' is the only compulsory field, when sending contacts in JSON format.
|
|
| group_name | All the supplied numbers/contacts will be saved under this group_name, except those contacts in JSON Array, that also has a group_name defined. If group_name was not supplied via any means, the contacts will automatically be added under 'default' group_name. |
My Customers |
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=save_contacts&group_name=My+Customers&contacts=08080000000,2348095029999
<?php
$contacts=array(
0=>array('phone'=>'08080000000','firstname'=>'Ibukun','lastname'=>'Oladipo','group_name'=>'Client'),
1=>array('phone'=>'+2348095029999','firstname'=>'Pearl'),
);
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0Rd',
'action'=>'save_contacts',
'contacts'=>json_encode($contacts),
'group_name'=>'My Customers',
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
$msg=$json['total']." contact(s) has been saved.";
}
}
echo $msg;
?>
save_contacts request will be a JSON Object, containing the batch_id, and the total number of recipient numbers that are successfully parsed.
{"total":"2"}
Below is a sample JSON response to a failed process:
{"error_code":4,"error":"Incorrect sub_account name or password."}
http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key must be fetch_contacts |
fetch_contacts |
|
Filters (Optional Fields)
Only those contacts that matches the specified criteria will be returned.
| ||
| group_name | Return only those contacts in this group | My Customers |
| search_term | This can be any of phone number, firstname, lastname to find, e.g: 08095029999 or ibukun or 08095029999 ibukun | 2348095029999 |
| contact_ids | If the specific contact_id(s) to be fetch were already known, it can be used for filtering. | 5,7 |
| perpage |
To fetch large records, it's essential to paginate. If supplied, maximum value is 300 while minimum is 1. |
100 |
| p | This is only useful when paginating. It indicates the current page (e.g 1st page) of the record to be fetched. | 1 |
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=fetch_contacts&group_name=My+Customers
<?php
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0Rd',
'action'=>'fetch_contacts',
'group_name'=>'My Customers',
'search_term'=>'ibukun'
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
//you can now do whatever with the contact records returned
//(e.g check list the contacts, or even fetch the next page by running the same request with p=1)
$msg=$json['total']." Contacts in total, page ".$json['p']." of ".$json['totalpages'];
$msg.= "<br/> <ol>";
foreach($json['contacts'] as $contact)
{
$msg.= "<li>+".$contact['phone']."<br/> ".$contact['firstname']." ".$contact['lastname']." (".$contact['group_name'].")</li>";
}
$msg.= "</ol>";
}
}
echo $msg;
?>
{
"filter":{"user_id":"1","sub_account_id":"1","perpage":10,"group_name":"My Customers","search_term":null,"offset":0},
"total":2,"p":1,"totalpages":1,
"records":[{"contact_id":"20","user_id":"1","sub_account_id":"1","phone":"2348080000000","firstname":"","lastname":"","group_name":"My Customers","time":"1445721399"},
{"contact_id":"21","user_id":"1","sub_account_id":"1","phone":"2348095029999","firstname":"","lastname":"","group_name":"My Customers","time":"1445721399"}
]
}
http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key must be get_contact_groups |
get_contact_groups |
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=get_contact_groups
<?php
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0R',
'action'=>'get_contact_groups'
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
$msg="Balance: ".$json['balance'];
}
}
echo $msg;
?>
{"contact_groups":{"My Customers":"2","default":"4"}}
http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key must be delete_contacts |
delete_contacts |
|
Filters (Optional Fields)
ALL those contacts that matches the specified criteria will be deleted.
| ||
| group_name | Return only those contacts in this group | My Customers |
| search_term | This can be any of phone number, firstname, lastname to find, e.g: 08095029999 or ibukun or 08095029999 ibukun | 2348095029999 |
| contact_ids | Typically one or more contact_id, from the array of contact objects returned from a fetch_contacts action. |
5,7 |
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=delete_contacts&contact_ids=5%2C7
<?php
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0R',
'action'=>'delete_contacts',
'contact_ids'=>'5,7'
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
$msg="Total deleted contacts: ".$json['total'];
}
}
echo $msg;
?>
{"total":"4"}
Below is a sample response to a failed process, a JSON Object
{"error":"No contact_ids supplied to be deleted","error_code":"7"}
| HTTP POST KEY | Description | Example Value |
|---|---|---|
| sender | The phone number that sent the SMS (without the leading +) | 2348093216754 |
| recipient | Your phone number (that has been configured here), to which the SMS has been sent | 2348030000000 or 23451007 |
| campaign_id | ID of the campaign that captured/intercept this message for you | 121 |
| message | The full content of the message sent | STOP SERVICE1 James Richard |
| pages | Number of SMS pages covered by this message | 1 |
| keyword | The keyword that you specified while setting up the campaign | STOP |
| sub_keyword | The keyword that you specified while setting up the campaign | SERVICE1 |
| clean_message | The remaining part of the message, after the keyword and sub_keyword (if available) | James Richard |
http://ediarosms.com/api_v1| Input Field Name | Description | Example Value |
|---|---|---|
| sub_account | A sub_account name that you have created. | 001_mysub1 |
| sub_account_pass | Sub account password | pa55w0Rd |
| action | The value for this key must be fetch_inbox or delete_inbox |
fetch_inbox |
|
Filters (Optional Fields)
When fetching messages, only those messages that matches the specified criteria will be returned.
IMPORTANT: When deleting or stopping SMS, you must specify some kind of filter(s), otherwise your entire sms records will be premanently deleted/stopped
| ||
| perpage |
To fetch large records, it's essential to paginate. If supplied, maximum is 300 while minimum is 1. |
100 |
| p | This is only useful when paginating. It indicates the current page (e.g 1st page) of the record to be fetched. | 1 |
| campaign_id | The campaign_id that captured the messages. | 1411 |
| message_ids | If the message_id of the message(s) were already known in advanced, they can be used for filtering. | 572,228 |
| keyword | This keywords that captured the messages | STOP |
| recipient | The number you configured, to which the message was sent, e.g 08095029999 or 2348095029999 or +2348095029999 | 2348095029999 |
| sender | The number that sends in the message | 2348094309923 |
| search_term | If supplied, the records that contains either the recipient, sender or message body that 'roughly' matches the supplied value will be returned | STOP SERVICE1 |
| start_date | The minimum time-received of the messages to be returned. |
2016-04-22 13:45
or
2016-04-22
|
| end_date | The maximum time received of the messages to be returned. |
28-04-2016 13:45
or
28-04-2016
|
http://ediarosms.com/api_v1?sub_account=001_mysub1&sub_account_pass=pa55w0Rd&action=fetch_inbox&campaign_id=1411
<?php
$post_data=array(
'sub_account'=>'001_mysub1',
'sub_account_pass'=>'pa55w0Rd',
'action'=>'fetch_inbox',
'batch_id'=>'1411',
);
$api_url='http://ediarosms.com/api_v1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($response_code != 200)$response=curl_error($ch);
curl_close($ch);
if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
else
{
$json=@json_decode($response,true);
if($json===null)$msg="INVALID RESPONSE: $response";
elseif(!empty($json['error']))$msg=$json['error'];
else
{
//you can now do whatever with the records
//(e.g check the sender, fetch the next page or display a message)
$msg=$json['total']." messages, page ".$json['p']." of ".$json['totalpages'];
$msg.= "<br/> <ol>";
foreach($json['records'] as $message)
{
$msg.= "<li>From: ".$sms['sender']."<br/> ".$sms['message']."</li>";
}
$msg.= "</ol>";
}
}
echo $msg;
?>
{
"total":19,"totalpages":1,"p":1,"perpage":100,"timezone_offset":"1",
"records":[
{"sms_id":"68",
"sender":"ibukun",
"recipient":"2022451175",
"message":"checking wrong number",
"sub_account_id":"1",
"user_id":"1",
"time_scheduled":"1448224505",
"batch_id":"1_1_1448224505",
"status":"-2",
"type":"0",
"units":"1",
"reference":"",
"time_submitted":"1448224505",
"time_sent":"1448224505",
"units_confirmed":"0",
"locked":"1",
"info":"Network is forbidden",
"firstname":"Gotv",
"lastname":"NUMBER",
"group_name":"default",
"status_msg":"REJECTED",
"submitted_at":"2015-11-22 20:35",
"scheduled_to":"2015-11-22 20:35",
"sent_at":"2015-11-22 20:35",
"extra_data":""
},
{"sms_id":"67","sender":"ibukun","recipient":"2348095029999","message":"hello; how're you doing","sub_account_id":"1","user_id":"1","time_scheduled":"1448223878","batch_id":"1_1_1448223878","status":"2","type":"0","units":"2","reference":"","time_submitted":"1448223878","time_sent":"1448223878","units_confirmed":"1","locked":"0","info":"Message delivered to handset","firstname":null,"lastname":null,"group_name":null,"status_msg":"DELIVERED","submitted_at":"2015-11-22 20:24","scheduled_to":"2015-11-22 20:24","sent_at":"2015-11-22 20:24","extra_data":""},
...
,"filter":{"sub_account_id":"1","batch_id":"","sms_id":"","sms_ids":"","type":"","recipient":"","search_term":"","sender":"","stage":"","start_date":"","end_date":"","p":"","perpage":100,"offset":0}
}
| Error Code | Description |
|---|---|
| 1 | sub_account not supplied |
| 2 | sub_account_pass not supplied |
| 3 | action not supplied |
| 4 | Incorrect sub_account name or password |
| 5 | The sub-account is currently disabled |
| 6 | Invalid action |
| 7 | missing request parameter |
| 8 | incorrect request parameter |
| 9 | confusing request parameters |
| 10 | no record found |
| 11 | operation failed |