Users
Map users from your application to Exotel accounts for WebRTC/IP-PSTN calling. Each mapping associates your app's user with an Exotel account, agent number, and virtual number.
Base URL
https://integrationscore.mum1.exotel.com/v2/integrations
Create User Mapping
Map a new user to an Exotel account.
POST /usermapping
Headers
| Header | Value |
|---|---|
Authorization | Your AuthCode |
Content-Type | application/json |
Request Body
[
{
"AppUserId": "123",
"AppUsername": "ABC",
"Email": "xyz@exotel.in",
"ExotelAccountSid": "<your_account_sid>",
"ExotelUserName": "ABC XYZ",
"AgentNumber": "956190XXXX",
"VirtualNumber": "0113512XXXX"
}
]
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
AppUserId | String | Yes | Unique user ID in your application |
AppUsername | String | Yes | Username in your application |
Email | String | Yes | User's email address |
ExotelAccountSid | String | Yes | Your Exotel Account SID |
ExotelUserName | String | Yes | Display name for the Exotel user |
AgentNumber | String | Yes | Agent's PSTN phone number |
VirtualNumber | String | Yes | Virtual number assigned to this user |
Example Request
- cURL
- Python
- Node.js
- PHP
- Go
curl --location --request POST \
'https://integrationscore.mum1.exotel.com/v2/integrations/usermapping' \
--header 'Authorization: <your_auth_code>' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"AppUserId": "123",
"AppUsername": "ABC",
"Email": "xyz@exotel.in",
"ExotelAccountSid": "<your_account_sid>",
"ExotelUserName": "ABC XYZ",
"AgentNumber": "956190XXXX",
"VirtualNumber": "0113512XXXX"
}
]'
import requests
import json
payload = [
{
"AppUserId": "123",
"AppUsername": "ABC",
"Email": "xyz@exotel.in",
"ExotelAccountSid": "<your_account_sid>",
"ExotelUserName": "ABC XYZ",
"AgentNumber": "956190XXXX",
"VirtualNumber": "0113512XXXX",
}
]
response = requests.post(
'https://integrationscore.mum1.exotel.com/v2/integrations/usermapping',
headers={
'Authorization': '<your_auth_code>',
'Content-Type': 'application/json',
},
data=json.dumps(payload)
)
print(response.json())
const url = 'https://integrationscore.mum1.exotel.com/v2/integrations/usermapping';
const payload = [
{
AppUserId: '123',
AppUsername: 'ABC',
Email: 'xyz@exotel.in',
ExotelAccountSid: '<your_account_sid>',
ExotelUserName: 'ABC XYZ',
AgentNumber: '956190XXXX',
VirtualNumber: '0113512XXXX',
},
];
const response = await fetch(url, {
method: 'POST',
headers: {
Authorization: '<your_auth_code>',
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
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/usermapping',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode(array(
array(
'AppUserId' => '123',
'AppUsername' => 'ABC',
'Email' => 'xyz@exotel.in',
'ExotelAccountSid' => '<your_account_sid>',
'ExotelUserName' => 'ABC XYZ',
'AgentNumber' => '956190XXXX',
'VirtualNumber' => '0113512XXXX'
)
)),
CURLOPT_HTTPHEADER => array(
'Authorization: <your_auth_code>',
'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/usermapping"
payload := strings.NewReader(`[
{
"AppUserId": "123",
"AppUsername": "ABC",
"Email": "xyz@exotel.in",
"ExotelAccountSid": "<your_account_sid>",
"ExotelUserName": "ABC XYZ",
"AgentNumber": "956190XXXX",
"VirtualNumber": "0113512XXXX"
}
]`)
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<your_auth_code>")
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))
}
HTTP Status Codes
| Code | Description |
|---|---|
200 | User mapped successfully |
400 | Bad Request — Invalid parameters or duplicate user |
401 | Unauthorized — Invalid or expired auth code |
404 | Not Found — Account SID or virtual number not found |
500 | Internal Server Error |