Admin Call Logs
curl --request POST \
--url https://api.voxo.co/v2/admin/reporting/calls/logs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tenantId": 123,
"startDate": "<string>",
"endDate": "<string>"
}
'import requests
url = "https://api.voxo.co/v2/admin/reporting/calls/logs"
payload = {
"tenantId": 123,
"startDate": "<string>",
"endDate": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({tenantId: 123, startDate: '<string>', endDate: '<string>'})
};
fetch('https://api.voxo.co/v2/admin/reporting/calls/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voxo.co/v2/admin/reporting/calls/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'tenantId' => 123,
'startDate' => '<string>',
'endDate' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voxo.co/v2/admin/reporting/calls/logs"
payload := strings.NewReader("{\n \"tenantId\": 123,\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.voxo.co/v2/admin/reporting/calls/logs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tenantId\": 123,\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voxo.co/v2/admin/reporting/calls/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tenantId\": 123,\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"records": [
{
"callId": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"direction": "<string>",
"cidNum": "<string>",
"cidName": "<string>",
"dialedNum": "<string>",
"dialedName": "<string>",
"disposition": "<string>",
"geolocation": "<string>",
"peerName": "<string>",
"recorded": 123,
"presented": 123,
"isTollFree": 123,
"isInternational": 123,
"tag": "<string>",
"tenantId": 123,
"branchId": 123,
"outcome": 123,
"outcomeName": "<string>",
"queueCall": 123,
"userAgent": "<string>",
"ringAttempts": 123,
"answeredAt": "<string>",
"transferredTo": "<string>",
"uniqueId": "<string>",
"isTransferred": 123,
"mos": 123
}
],
"page": 123,
"maxPage": 123,
"totalRecords": 123
}Reporting - Calls
Admin Call Logs
Get paginated call logs for a tenant with optional filters
POST
/
v2
/
admin
/
reporting
/
calls
/
logs
Admin Call Logs
curl --request POST \
--url https://api.voxo.co/v2/admin/reporting/calls/logs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tenantId": 123,
"startDate": "<string>",
"endDate": "<string>"
}
'import requests
url = "https://api.voxo.co/v2/admin/reporting/calls/logs"
payload = {
"tenantId": 123,
"startDate": "<string>",
"endDate": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({tenantId: 123, startDate: '<string>', endDate: '<string>'})
};
fetch('https://api.voxo.co/v2/admin/reporting/calls/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voxo.co/v2/admin/reporting/calls/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'tenantId' => 123,
'startDate' => '<string>',
'endDate' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voxo.co/v2/admin/reporting/calls/logs"
payload := strings.NewReader("{\n \"tenantId\": 123,\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.voxo.co/v2/admin/reporting/calls/logs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tenantId\": 123,\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voxo.co/v2/admin/reporting/calls/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tenantId\": 123,\n \"startDate\": \"<string>\",\n \"endDate\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"records": [
{
"callId": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"direction": "<string>",
"cidNum": "<string>",
"cidName": "<string>",
"dialedNum": "<string>",
"dialedName": "<string>",
"disposition": "<string>",
"geolocation": "<string>",
"peerName": "<string>",
"recorded": 123,
"presented": 123,
"isTollFree": 123,
"isInternational": 123,
"tag": "<string>",
"tenantId": 123,
"branchId": 123,
"outcome": 123,
"outcomeName": "<string>",
"queueCall": 123,
"userAgent": "<string>",
"ringAttempts": 123,
"answeredAt": "<string>",
"transferredTo": "<string>",
"uniqueId": "<string>",
"isTransferred": 123,
"mos": 123
}
],
"page": 123,
"maxPage": 123,
"totalRecords": 123
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Tenant ID
Start date for the report period
End date for the report period
Call direction filter (IN or OUT)
Available options:
IN Filter by call tags
Minimum array length:
1Filter by call outcome IDs
Minimum array length:
1Filter by user peer names, or 'ALL' for all users
Filter by groups (queue, huntlist, or branch)
Show child attributes
Show child attributes
Report type (Scheduled, Export, or Live)
Available options:
Scheduled Filter by recorded calls only
Filter by caller ID number
Search calls by caller/dialed number or name
1 = paginated response, 0 = full list
Required range:
0 <= x <= 1Page number
Records per page
Sort column
Maximum string length:
50Sort direction
Available options:
asc, desc Was this page helpful?