curl --request GET \
--url https://api.tryhamsa.com/v1/agent-analytics/overview \
--header 'Authorization: <api-key>'import requests
url = "https://api.tryhamsa.com/v1/agent-analytics/overview"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.tryhamsa.com/v1/agent-analytics/overview', 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.tryhamsa.com/v1/agent-analytics/overview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tryhamsa.com/v1/agent-analytics/overview"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tryhamsa.com/v1/agent-analytics/overview")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tryhamsa.com/v1/agent-analytics/overview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"liveSessionsNumber": 15,
"totalSessionsNumber": 50,
"averageSessionDuration": 6,
"averageMessagesPerSession": 6,
"totalSessionDuration": 6,
"averageWordsPerAiResponse": 6,
"forwardToHumanAgent": 60,
"callsOverTime": [
{
"timeBucket": "2025-09-15 20:00:00",
"count": "6"
}
],
"callsByDurationBuckets": {
"shortDurationBucketCalls": 6,
"mediumDurationBucketCalls": 6,
"longDurationBucketCalls": 6
}
}
}{
"code": 123,
"message": "<string>"
}{
"code": 123,
"message": "<string>"
}{
"code": 123,
"message": "<string>"
}Get Overview Analytics
Retrieves overview analytics for voice agents including live sessions, total sessions, average session duration, and calls over time.
curl --request GET \
--url https://api.tryhamsa.com/v1/agent-analytics/overview \
--header 'Authorization: <api-key>'import requests
url = "https://api.tryhamsa.com/v1/agent-analytics/overview"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.tryhamsa.com/v1/agent-analytics/overview', 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.tryhamsa.com/v1/agent-analytics/overview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tryhamsa.com/v1/agent-analytics/overview"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tryhamsa.com/v1/agent-analytics/overview")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tryhamsa.com/v1/agent-analytics/overview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"liveSessionsNumber": 15,
"totalSessionsNumber": 50,
"averageSessionDuration": 6,
"averageMessagesPerSession": 6,
"totalSessionDuration": 6,
"averageWordsPerAiResponse": 6,
"forwardToHumanAgent": 60,
"callsOverTime": [
{
"timeBucket": "2025-09-15 20:00:00",
"count": "6"
}
],
"callsByDurationBuckets": {
"shortDurationBucketCalls": 6,
"mediumDurationBucketCalls": 6,
"longDurationBucketCalls": 6
}
}
}{
"code": 123,
"message": "<string>"
}{
"code": 123,
"message": "<string>"
}{
"code": 123,
"message": "<string>"
}Authorizations
Pass the API key in the Authorization header, You need to put Token keyword before the API key. e.g. 'Authorization: Token '
Query Parameters
The unique identifier of the voice agent. If not sent, the statistics will be for all voice agents.
"48f7656f-098b-4c43-b165-7cfd2cc8ac30"
The period filter option. Defaults to TODAY.
LAST_HOUR, TODAY, YESTERDAY, THIS_WEEK, THIS_MONTH, CUSTOM "TODAY"
The start period timestamp in milliseconds sent in string format. Must be sent with CUSTOM date filter.
"1737590399000"
The end period timestamp in milliseconds sent in string format. Must be sent with CUSTOM date filter.
"1737590399000"
The time difference between the timezone of the user's machine to the UTC/GMT timezone.
"-3"
Was this page helpful?