This API allows you to get a single user details along with their associated devices.
https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/users/<user_id>
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
<user_id> with the user's unique identifier as generated during Create User or present in GET Bulk user details API.<your_api_key> , <your_api_token> and <your_sid> are available in the API settings page of your Exotel Dashboard
curl --location --request GET 'https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/users/<user_id>' \
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/users/<user_id>',
'headers': {
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/users/<user_id>', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
import requests
url = "https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/users/<user_id>"
payload={}
headers = {
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://<your_api_key>:<your_api_token><subdomain>/v2/accounts/<your_sid>/users/<user_id>"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
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))
}
HTTP Response:
{
"request_id": "87146ab118a548b09d9c9504aad4dd69",
"method": "GET",
"http_code": 200,
"response": {
"code": 200,
"error_data": null,
"status": "success",
"data": {
"date_created": "2021-07-26T18:27:24+05:30",
"date_updated": "2021-07-26T18:27:24+05:30",
"email": "abc@xyz.com",
"email_verified": false,
"first_name": "Jxxxx",
"id": "9f7100ea9a484b75aadefa94303f62eb",
"last_name": "Ayyyy",
"role": "user"
}
}
}
Description of response parameter:
| Parameter Name | Value |
| request_id | This indicates the unique id of the request. Useful for debugging and tracing purpose. |
| method | This indicates the HTTP method for the request such as GET/POST/PUT/DELETE etc |
| http_code | This indicates the HTTP code for the request such as 200, 400, 500 etc. |
| status | failed/success |
| response |
Response block contains the user device record matching the request URI. The block contains
|
Description of parameters under each 'data' block of 'response' array:
| Parameter Name | Description |
| id | User’s unique identifier. To be used as <user-id> while performing a PUT operation on the user. |
| first_name | First name of the user |
| last_name | Last name of the user |
| Email ID of the user | |
| email_verified | Indicate if email of the user is verified or not |
| role | Role of the user |
| devices |
Array of devices associated with the user containing the fields as explained below. This field is only populated if |
Description of parameters under each 'devices' array:
| Parameter Name | Description |
| id | Unique ID of the device of the user. To be used as <device-id> while performing a PUT operation on the user. |
| name | Friendly name of the device |
| contact_uri |
Phone number of the device in E.164 format like +919999XXXXXX or the SIP URI of the device if it is a soft-phone like sip:arjuns2d853099. |
| type |
Type of device. Possible values
|
| available |
Boolean (true/false); |
| verified | Boolean (true/false); Indicates if the device is verified or not on Exotel. If a user needs to verify their device, these steps can be followed. |
| status |
Indicates the current device status. Possible values-
|
Possible error scenarios in case of this GET API -
| HttpCode | Code | Description |
| 400 | 1007 |
Request format is invalid
|
| 401 | 1010 |
Authentication failed
|
| 404 | 10801 | User not found |
| 429 | NA |
Too many requests
|
| 500 | 1004 |
Internal Server Error
|
| 403 | 1003 |
API credentials used are unauthorized
|
| 403 | 10814 |
This account's KYC is incomplete. Operation not permitted
|
| 403 | 10815 |
This is a trial account. Operation not permitted
|
*These will be populated under the `error_data` block of response