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

GET

https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/sms-campaign/<campaign_id>/sms-details

  • Replace <your_api_key> and <your_api_token> with the API key and token created by you.
  • Replace <your_sid> with your “Account sid”
  • Replace <subdomain> with the region of your account
    1. <subdomain> of Singapore cluster is @api.exotel.com
    2. <subdomain> of Mumbai cluster is @api.in.exotel.com
  • Replace <campaign-id> with the campaign sid of the campaign that you want to view

<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 

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>/sms-campaigns/sms-details?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”

      }

    }

  ]

}