This API allows you to get the details of all the SMS of a Campaign. It's like a summary page or Inbox per campaign.
The SMS level data consists of Name (if saved in Contacts), Number, Date Created, Status, Sender ID & SMSsid
https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/message-campaigns/id/message-details?channel=sms&limit=10&offset=0
This API supports JSON response only
<your_api_key> and <your_api_token> with the API key and token created by you.<your_sid> with your “Account sid”<subdomain> with the region of your account
<your_api_key> , <your_api_token> and <your_sid> are available in the API settings page of your Exotel Dashboard
Path parameters-
| Parameter | Mandatory/Optional | Value |
| campaign_id | Mandatory | Campaign SID |
| channel | Mandatory | SMS |
The following are the Query parameters:
| Parameter Name | Mandatory/Optional | Value |
|
offset |
optional |
This is the position in the dataset of a particular record. By specifying offset, you retrieve a subset of records starting with the offset value. Offset is zero-based i.e. the 10th record is at offset 9 |
|
limit |
optional |
number of records on single page, default:20 |
|
number |
optional |
Search by phone number. Exact match |
|
sort_by |
optional |
sort by the scheduled time. for example: schedule_time:asc, schedule_time:desc
|
curl https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/message-campaigns/id/message-details?channel=sms&sort_by=date_created:desc&limit=3&offset=0
var request = require("request");
var accountSid = "XXXXXXXXX";
var accountToken = "YYYYYYYYY";
var authKey = "ZZZZZZZZZZ";
var encoding = Buffer.from(authKey + ':' + accountToken).toString('base64')
var options = { method: 'GET',
url: 'https://api.exotel.com/v2/accounts/'+ accountSid +'/sms-campaigns/491dd6c97d64475ba0ce346a18530ce5/sms-details?sort_by=date_created:desc&limit=3&offset=0',
headers:
{
Authorization: 'Basic ' + encoding
} };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
<?php
$curl = curl_init();
$accountSid = "XXXXXXXXXX";
$accountToken = "YYYYYYYYYY";
$authKey = "ZZZZZZZZZZ";
$encoding = base64_encode($authKey .":". $accountToken);
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.exotel.com/v2/accounts/".$accountSid."/sms-campaigns/491dd6c97d64475ba0ce346a18530ce5/sms-details?sort_by=date_created:desc&limit=3&offset=0",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic ".$encoding
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
import requests, base64, json
accountSid = "XXXXXXXXX"
authToken = "YYYYYYYYY"
authKey = "ZZZZZZZZZZ"
encoding = base64.b64encode(authKey + ":" + authToken)
url = "https://api.exotel.com/v2/accounts/"+ accountSid +"/sms-campaigns/491dd6c97d64475ba0ce346a18530ce5/sms-details?sort_by=date_created:desc&limit=3&offset=0"
payload = ""
headers = {
'Authorization': "Basic " + encoding
}
response = requests.request("DELETE", url, data=payload, headers=headers)
print(response.text)
print(json.dumps(json.loads(response.text), indent = 4, sort_keys = True))
package main import ( b64 "encoding/base64" "fmt" "io/ioutil" "net/http" ) func main() { // Please provide accountSid, authToken from your Exotel account accountSid := "XXXXXXXXX" authToken := "YYYYYYYY" authKey := "ZZZZZZZZZZ" // Encoding the accountSid and authToken, used in Authorization header encoding := b64.StdEncoding.EncodeToString([]byte(authKey + ":" + authToken)) url := "https://api.exotel.com/v2/accounts/" + accountSid + "/sms-campaigns/491dd6c97d64475ba0ce346a18530ce5/sms-details?sort_by=date_created:desc&limit=3&offset=0" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Basic "+encoding) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
{
"request_id": "4dee72175b514f3591e153df7c89285d",
"method": "GET",
"http_code": 200,
"metadata": {
"count": 5,
"offset": 0,
"total": 5,
"limit": 10
},
"response": [
{
"code": 200,
"error_data": null,
"status": "success",
"data": {
"number": "XXXXXXXXXX",
"name": "shubham_t",
"message": "your account is activated",
"status": "sent",
"detailed_status": "DELIVERED_TO_OPERATOR",
"schedule_time": "2021-11-24T14:55:19+05:30",
"sender_id": "EXOTEL",
"direction": "outgoing-api",
"sid": "34d67d290cb761c0606b7fe9590015bo"
}
},
{
"code": 200,
"error_data": null,
"status": "success",
"data": {
"number": "XXXXXXXXXX",
"name": "shubham_t",
"body": "your account is activated",
"status": "failed",
"detailed_status: "FAILED_SPAM_DETECTED",
"schedule_time": "2021-11-24T14:55:19+05:30",
"sender_id": "EXOTEL",
"direction": "outgoing-api",
"sid": "34d67d290cb761c0606b7fe9590015bo"
}
},
{
"code": 200,
"error_data": null,
"status": "success",
"data": {
"number": "XXXXXXXXXX",
"name": "shubham_t",
"body": "your account is activated",
"status": "failed_dnd"",
"detailed_status": "FAILED_REJECTED_DND",
"schedule_time": "2021-11-24T14:55:19+05:30",
"sender_id": "EXOTEL",
"direction": outgoing-api,
"sid": “34d67d290cb761c0606b7fe9590015bf”
}
}
]
}