This API allows you to update all the parameters of a campaign that has not started. Campaign details can be updated before send_at time is passed. Once send_at time is passed only action, status_callback, call_status_callback and call_schedule_callback can be updated.
https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/campaigns/<id>
Replace <your_api_key>
and <your_api_token>
with the API key and token created by you. Similarly, replace <your_sid>
with your “Account sid” value. These values are available in the API settings page of your Exotel Dashboard. Replace <id>
with the campaign id.
This API only supports a JSON response.
curl --location --request PUT 'https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/campaigns/<id>' --header 'Content-Type: application/json' --data-raw '{ "campaigns": [ { "name": "holi_campaign", "type": "trans", "caller_id": "03349360005", "url": "https://my.exotel.com/<your_sid>/exoml/start_voice/123", "from": [ "+917987616844" ], "retries": { "number_of_retries": 2, "interval_mins": 1, "mechanism": "Exponential", "on_status": [ "busy" ] }, "status_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", "call_status_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", "call_schedule_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d" } ] }'
var request = require("request"); var accountSid = "XXXXXXXXX"; var accountToken = "YYYYYYYYY"; var authKey = "ZZZZZZZZZZ"; var encoding = Buffer.from(authKey + ':' + accountToken).toString('base64') var options = { method: 'PUT', url: 'https://api.exotel.com/v2/accounts/'+ accountSid +'/campaigns/6d49fb6fe1ee4abc8b2c4ea5d2f4015a', headers: { Authorization: 'Basic ' + encoding, 'Content-Type': 'application/json' }, body: { campaigns: [ { name: "holi_campaign", type: "trans", caller_id: "03349360005", url: "https://my.exotel.com/<your_sid>/exoml/start_voice/123", from: [ "+917987616844" ], retries: { "number_of_retries": 2, "interval_mins": 1, "mechanism": "Exponential", "on_status": [ "busy" ] }, status_callback: "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", call_status_callback: "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", call_schedule_callback: "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d" } ] }, json: true }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); console.log(JSON.stringify(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."/campaigns/6d49fb6fe1ee4abc8b2c4ea5d2f4015a", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_POSTFIELDS => '{ "campaigns": [ { "name": "holi_campaign", "type": "trans", "caller_id": "03349360005", "url": "https://my.exotel.com/<your_sid>/exoml/start_voice/123", "from": [ "+917987616844" ], "retries": { "number_of_retries": 2, "interval_mins": 1, "mechanism": "Exponential", "on_status": [ "busy" ] }, "status_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", "call_status_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", "call_schedule_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d" } ] }', CURLOPT_HTTPHEADER => array( "Authorization: Basic ".$encoding, "Content-Type: application/json" ), )); $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+"/campaigns/6d49fb6fe1ee4abc8b2c4ea5d2f4015a" payload = json.dumps({ { "campaigns": [ { "name": "holi_campaign", "type": "trans", "caller_id": "03349360005", "url": "https://my.exotel.com/<your_sid>/exoml/start_voice/123", "from": [ "+917987616844" ], "retries": { "number_of_retries": 2, "interval_mins": 1, "mechanism": "Exponential", "on_status": [ "busy" ] }, "status_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", "call_status_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", "call_schedule_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d" } ] } }) headers = { 'Content-Type': "application/json", 'Authorization': "Basic " + encoding } response = requests.request("PUT", 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" "strings" ) 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 + "/campaigns/6d49fb6fe1ee4abc8b2c4ea5d2f4015a" payload := strings.NewReader(`{ "campaigns": [{ "action": "pause", "url": "http://my.exotel.com/<your_sid>/exoml/start_voice/<app_id>" payload := strings.NewReader( { { "campaigns": [ { "name": "holi_campaign", "type": "trans", "caller_id": "03349360005", "url": "https://my.exotel.com/<your_sid>/exoml/start_voice/123", "from": [ "+917987616844" ], "retries": { "number_of_retries": 2, "interval_mins": 1, "mechanism": "Exponential", "on_status": [ "busy" ] }, "status_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", "call_status_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d", "call_schedule_callback": "https://webhook.site/a5b59df3-c1b6-4a93-aa1a-75f2c8a3721d" } ] } }) }] }`) req, _ := http.NewRequest("PUT", url, payload) req.Header.Add("Content-Type", "application/json") req.Header.Add("Authorization", "Basic "+encoding) req.Header.Add("cache-control", "no-cache") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
{ "request_id": "745d624f47004b71bf72e6cb7d58a25b", "method": "POST", "http_code": 200, "response": [ { "code": 200, "error_data": null, "status": "success", "data": { "name": "diwali_campaign", "type": "trans", "id": "909d2a2ba53ce07f3784668b938eb44914bo", "account_sid": "<your_sid>", "caller_id": "03349360005", "lists": [ "71ee118172044804ac5ed2271167c02b" ], "url": "https://my.exotel.com/<your_sid>/exoml/start_voice/4", "retries": { "number_of_retries": 1, "interval_mins": 1, "mechanism": "Exponential", "on_status": [ "failed", "busy" ] }, "schedule": { "send_at": "2020-11-24T23:53:19+05:30", "end_at": "2020-12-24T23:53:19+05:30" }, "status_callback": "https://webhook.site/21a6f658-10d4-4b95-9001-c7bf00239502", "call_status_callback": "https://webhook.site/21a6f658-10d4-4b95-9001-c7bf00239502", "call_schedule_callback": "https://webhook.site/21a6f658-10d4-4b95-9001-c7bf00239502", "custom_field": "{"name": "yo"}", "date_created": "2020-11-24T23:52:19+05:30", "date_updated": "2020-11-24T23:52:19+05:30", "status": "Created", "call_status_callback_params": null }, "summary": { "campaign_sid": "909d2a2ba53ce07f3784668b938eb44914bo", "call_scheduled": 0, "call_initialized": 0, "call_completed": 0, "call_failed": 0, "call_inprogress": 0, "DateCreated": "2020-11-24T23:52:19.625541789+05:30" } } ] }