Application Management
Register, retrieve, list, and delete WebRTC calling applications.
Register Application
Create a new WebRTC calling application.
Endpoint
POST https://integrationscore.mum1.exotel.com/v2/integrations/app
Headers
| Header | Value |
|---|---|
Authorization | Bearer token (entity=customer) |
Content-Type | application/json |
Request Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
AppName | Yes | String | Name for the application |
ExotelAccountSid | Yes | String | Your Exotel Account SID from the dashboard |
ExotelApiKey | Yes | String | Your Exotel API key from the dashboard |
ExotelApiToken | Yes | String | Your Exotel API token from the dashboard |
ExotelDomain | Yes | String | Region domain: "mumbai" or "singapore" |
IsActive | Yes | Boolean | Set to true to enable the app for calling |
Code Examples
- cURL
- Python
- Node.js
- PHP
- Go
curl --location --request POST 'https://integrationscore.mum1.exotel.com/v2/integrations/app' \
--header 'Authorization: NmUxNGIyN2ItY2YzYy00MzRhLThlNzItYWNjMWFiNWQzY2Vi' \
--header 'Content-Type: application/json' \
--data-raw '{
"AppName": "WebRTC",
"ExotelAccountSid": "exoteldemo",
"ExotelApiKey": "your_api_key",
"ExotelApiToken": "your_api_token",
"ExotelDomain": "mumbai",
"IsActive": true
}'
import requests
import json
url = "https://integrationscore.mum1.exotel.com/v2/integrations/app"
payload = json.dumps({
"AppName": "WebRTC",
"ExotelAccountSid": "exoteldemo",
"ExotelApiKey": "your_api_key",
"ExotelApiToken": "your_api_token",
"ExotelDomain": "mumbai",
"IsActive": True
})
headers = {
'Authorization': '<customer_auth_token>',
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, data=payload)
print(response.json())
const url = 'https://integrationscore.mum1.exotel.com/v2/integrations/app';
const response = await fetch(url, {
method: 'POST',
headers: {
'Authorization': '<customer_auth_token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
AppName: 'WebRTC',
ExotelAccountSid: 'exoteldemo',
ExotelApiKey: 'your_api_key',
ExotelApiToken: 'your_api_token',
ExotelDomain: 'mumbai',
IsActive: true,
}),
});
const data = await response.json();
console.log(data);
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://integrationscore.mum1.exotel.com/v2/integrations/app',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode(array(
'AppName' => 'WebRTC',
'ExotelAccountSid' => 'exoteldemo',
'ExotelApiKey' => 'your_api_key',
'ExotelApiToken' => 'your_api_token',
'ExotelDomain' => 'mumbai',
'IsActive' => true
)),
CURLOPT_HTTPHEADER => array(
'Authorization: NmUxNGIyN2ItY2YzYy00MzRhLThlNzItYWNjMWFiNWQzY2Vi',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
url := "https://integrationscore.mum1.exotel.com/v2/integrations/app"
payload := strings.NewReader(`{
"AppName": "WebRTC",
"ExotelAccountSid": "exoteldemo",
"ExotelApiKey": "your_api_key",
"ExotelApiToken": "your_api_token",
"ExotelDomain": "mumbai",
"IsActive": true
}`)
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "NmUxNGIyN2ItY2YzYy00MzRhLThlNzItYWNjMWFiNWQzY2Vi")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Response
{
"RequestId": "2405acfd-1ad3-486b-92d5-233965d8c204",
"Status": "Success",
"Code": 200,
"Error": "",
"Data": {
"AppID": "2e6440ed-ff62-49d7-bb00-5494b313a863",
"AppSecret": "61b1f4c2-30d5-4819-9a5c-006ed9784313",
"CustomerID": "99fa98a1-2ce0-457c-9371-0d3a01eb6ef0",
"AppName": "WebRTC",
"ExotelAccountSid": "exoteldemo",
"ExotelApiKey": "your_api_key",
"ExotelApiToken": "your_api_token",
"ExotelDomain": "mumbai",
"IsActive": true,
"CreatedAt": "2023-03-23T11:47:46+05:30",
"UpdatedAt": "2023-03-23T11:47:46+05:30"
}
}
note
Save the AppID and AppSecret from the response. You will need them to generate an app-level authentication token.
Get Application Details
Retrieve details of a specific application using an app-level token.
Endpoint
GET https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=app
Headers
| Header | Value |
|---|---|
Authorization | Bearer token (entity=app) |
Code Examples
- cURL
- Python
- Node.js
- PHP
- Go
curl --location --request GET 'https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=app' \
--header 'Authorization: <app_auth_token>'
import requests
url = "https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=app"
headers = {
'Authorization': '<app_auth_token>'
}
response = requests.get(url, headers=headers)
print(response.json())
const url = 'https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=app';
const response = await fetch(url, {
headers: {
'Authorization': '<app_auth_token>',
},
});
const data = await response.json();
console.log(data);
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=app',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Authorization: <app_auth_token>'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=app"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<app_auth_token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Response
{
"RequestId": "c0897a32-372e-4f82-ac18-eaa2d3451d52",
"Status": "Success",
"Code": 200,
"Error": "",
"Data": {
"AppID": "2e6440ed-ff62-49d7-bb00-5494b313a863",
"CustomerID": "99fa98a1-2ce0-457c-9371-0d3a01eb6ef0",
"AppName": "WebRTC",
"ExotelAccountSid": "exoteldemo",
"ExotelDomain": "mumbai",
"IsActive": true,
"CreatedAt": "2023-03-23T11:47:46+05:30",
"UpdatedAt": "2023-03-23T11:47:46+05:30"
}
}
List All Applications
List all applications registered under a customer.
Endpoint
GET https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=customer
Headers
| Header | Value |
|---|---|
Authorization | Bearer token (entity=customer) |
Code Examples
- cURL
- Python
- Node.js
- PHP
- Go
curl --location --request GET 'https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=customer' \
--header 'Authorization: <customer_auth_token>'
import requests
url = "https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=customer"
headers = {
'Authorization': '<customer_auth_token>'
}
response = requests.get(url, headers=headers)
print(response.json())
const url = 'https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=customer';
const response = await fetch(url, {
headers: {
'Authorization': '<customer_auth_token>',
},
});
const data = await response.json();
console.log(data);
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=customer',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'Authorization: <customer_auth_token>'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://integrationscore.mum1.exotel.com/v2/integrations/app?entity=customer"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<customer_auth_token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Response
{
"RequestId": "1b13a16a-ad03-443e-83e7-0bb1b9297578",
"Status": "Success",
"Code": 200,
"Error": "",
"Data": [
{
"AppID": "2e6440ed-ff62-49d7-bb00-5494b313a863",
"CustomerID": "99fa98a1-2ce0-457c-9371-0d3a01eb6ef0",
"AppName": "WebRTC",
"ExotelAccountSid": "exoteldemo",
"ExotelDomain": "mumbai",
"IsActive": true,
"CreatedAt": "2023-03-23T11:47:46+05:30",
"UpdatedAt": "2023-03-23T11:47:46+05:30"
}
]
}
Delete Application
Delete a registered application. This action is irreversible.
Endpoint
DELETE https://integrationscore.mum1.exotel.com/v2/integrations/app
Headers
| Header | Value |
|---|---|
Authorization | Bearer token (entity=app) |
Code Examples
- cURL
- Python
- Node.js
- PHP
- Go
curl --location --request DELETE 'https://integrationscore.mum1.exotel.com/v2/integrations/app' \
--header 'Authorization: <app_auth_token>'
import requests
url = "https://integrationscore.mum1.exotel.com/v2/integrations/app"
headers = {
'Authorization': '<app_auth_token>'
}
response = requests.delete(url, headers=headers)
print(response.json())
const url = 'https://integrationscore.mum1.exotel.com/v2/integrations/app';
const response = await fetch(url, {
method: 'DELETE',
headers: {
'Authorization': '<app_auth_token>',
},
});
const data = await response.json();
console.log(data);
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://integrationscore.mum1.exotel.com/v2/integrations/app',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => array(
'Authorization: <app_auth_token>'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://integrationscore.mum1.exotel.com/v2/integrations/app"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "<app_auth_token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
Response
{
"RequestId": "0e8beb2c-5682-4718-a4ba-b3b7aa2d3c72",
"Status": "Success",
"Code": 200,
"Error": "",
"Data": "Deleted Successfully"
}
Response Fields
| Field | Type | Description |
|---|---|---|
AppID | String (UUID) | Unique application identifier |
AppSecret | String (UUID) | Application secret (only returned on creation) |
CustomerID | String (UUID) | Parent customer identifier |
AppName | String | Application display name |
ExotelAccountSid | String | Linked Exotel account SID |
ExotelApiKey | String | Linked API key (only on creation) |
ExotelApiToken | String | Linked API token (only on creation) |
ExotelDomain | String | Region: "mumbai" or "singapore" |
IsActive | Boolean | Whether the app is active for calling |
CreatedAt | DateTime | Creation timestamp (ISO 8601) |
UpdatedAt | DateTime | Last update timestamp (ISO 8601) |