This API allows you to update more than one contact at a time.
https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/contacts
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
curl --location --request PUT 'https://<your_api_key>:<your_api_token>@<subdomain>/v2/accounts/<account_sid>/contacts' \ --header 'Content-Type: application/json' \ --data-raw ' { "contacts": [ { "sid":"83ba26b7f11c4e75b4043c8b33ceba49", "first_name": "XYZ" } { "sid":"93ba26b7f11c4e75b4043c8b33ceba59", "first_name": "ABC" } { "sid":"73ba26b7f11c4e75b4043c8b33ceba69", "first_name": "LMN" } ] }'
var unirest = require('unirest'); var unirest = require('unirest'); var accountSid = "XXXXXXXXX"; var accountToken = "YYYYYYYYY"; var authKey = "ZZZZZZZZZZ"; var encoding = Buffer.from(authKey + ':' + accountToken).toString('base64'); var req = unirest('PUT', 'https://<subdomain>/v2/accounts/exotel8u3/contacts') .headers({ Authorization: 'Basic ' + encoding, 'Content-Type': 'application/json' }) .send(JSON.stringify( { "contacts": [ { "sid":"83ba26b7f11c4e75b4043c8b33ceba49", "first_name": "XYZ" } { "sid":"93ba26b7f11c4e75b4043c8b33ceba59", "first_name": "ABC" } { "sid":"73ba26b7f11c4e75b4043c8b33ceba69", "first_name": "LMN" } ] } ) .end(function (res) { if (res.error) throw new Error(res.error); console.log(res.raw_body); });
<?php $curl = curl_init(); $accountSid = "XXXXXXXXXX"; $accountToken = "YYYYYYYYYY"; $authKey = "ZZZZZZZZZZ"; $encoding = base64_encode($authKey .":". $accountToken); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://<subdomain>/v2/accounts/exotel8u3/contacts/<contact_sid>', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS =>' { "contacts": [ { "sid":"83ba26b7f11c4e75b4043c8b33ceba49", "first_name": "XYZ" } { "sid":"93ba26b7f11c4e75b4043c8b33ceba59", "first_name": "ABC" } { "sid":"73ba26b7f11c4e75b4043c8b33ceba69", "first_name": "LMN" } ] }', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', "Authorization: Basic ".$encoding ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
import requests import base64 import json accountSid = "XXXXXXXXX" authToken = "YYYYYYYYY" authKey = "ZZZZZZZZZZ" encoding = base64.b64encode(authKey + ":" + authToken) url = "https://<subdomain>/v2/accounts/exotel8u3/contacts/<contact_sid>" payload = json.dumps( { "contacts": [ { "sid":"83ba26b7f11c4e75b4043c8b33ceba49", "first_name": "XYZ" } { "sid":"93ba26b7f11c4e75b4043c8b33ceba59", "first_name": "ABC" } { "sid":"73ba26b7f11c4e75b4043c8b33ceba69", "first_name": "LMN" } ] } ) headers = { 'Content-Type': 'application/json', 'Authorization': "Basic " + encoding } response = requests.request("PUT", url, headers=headers, data=payload) print(response.text)
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://<subdomain>/v2/accounts/" + accountSid + "/contacts/<contact_sid>" method := "PUT" payload := strings.NewReader( { "contacts": [ { "sid":"83ba26b7f11c4e75b4043c8b33ceba49", "first_name": "XYZ" } { "sid":"93ba26b7f11c4e75b4043c8b33ceba59", "first_name": "ABC" } { "sid":"73ba26b7f11c4e75b4043c8b33ceba69", "first_name": "LMN" } ] } ) client := &http.Client{} req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json") req.Header.Add("Authorization", "Basic "+encoding) res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) }
{ "request_id":"a325d397a29f49698113ad56715dcf23", "method":"PUT", "http_code":207, "metadata": { "failed":2, "total":3, "success":1 }, "response":[ { "code":200, "error_data":null, "status":"success", "data":{ "sid":"83ba26b7f11c4e75b4043c8b33ceba49", "date_created":"2017-11-30T11:22:39Z", "date_updated":"2017-12-05T14:24:11Z", "account_sid":"Exotel", "number":"+67420336456", "first_name":"XYZ", "last_name":"ABC", "company_name":"Exotel", "email":"shiva@exotel.in", "tag":"Member", "custom_field":{ "key":{ "a":"b", "c":[1,2,3] } }, "uri":"/v2/Accounts/Exotel/Contacts/4675ce5f21994bcca8cf07c7e0426be7" } }, { "code":404, "error_data": { "code":1000, "description":"Contact not found", "message":"Not Found" }, "status":"failure" }, { "code":404, "error_data": { "code":1000, "description":"Contact not found", "message":"Not Found" }, "status":"failure" } ] }