Get campaign statistics
curl --request GET \
--url https://api.topcalls.ai/v1/campaigns/{campaign_id}/stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.topcalls.ai/v1/campaigns/{campaign_id}/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.topcalls.ai/v1/campaigns/{campaign_id}/stats', 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.topcalls.ai/v1/campaigns/{campaign_id}/stats",
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: Bearer <token>"
],
]);
$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.topcalls.ai/v1/campaigns/{campaign_id}/stats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.topcalls.ai/v1/campaigns/{campaign_id}/stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topcalls.ai/v1/campaigns/{campaign_id}/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stats": {
"contacted_count": 123,
"completed_count": 123,
"success_count": 123,
"failure_count": 123,
"total_duration_seconds": 123,
"updated_at": "2023-11-07T05:31:56Z"
},
"current_run": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"paused_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"leads_processed": 123,
"calls_per_minute": 123,
"pause_reason": "<string>"
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Invalid or missing API key"
}{
"status": 403,
"title": "Forbidden",
"detail": "Missing required scope: calls:write"
}{
"title": "<string>",
"status": 123,
"type": "<string>",
"detail": "<string>",
"code": "<string>",
"instance": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"errors": [
{
"path": "<string>",
"message": "<string>",
"code": "<string>"
}
],
"details": "<string>"
}Campaigns
Get campaign statistics
Returns call counters for the campaign, computed from call records
at request time, plus the current (most recently created) run, if
one exists. stats is all zero when the campaign has no calls yet.
current_run is null when the campaign has never been started.
GET
/
v1
/
campaigns
/
{campaign_id}
/
stats
Get campaign statistics
curl --request GET \
--url https://api.topcalls.ai/v1/campaigns/{campaign_id}/stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.topcalls.ai/v1/campaigns/{campaign_id}/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.topcalls.ai/v1/campaigns/{campaign_id}/stats', 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.topcalls.ai/v1/campaigns/{campaign_id}/stats",
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: Bearer <token>"
],
]);
$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.topcalls.ai/v1/campaigns/{campaign_id}/stats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.topcalls.ai/v1/campaigns/{campaign_id}/stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topcalls.ai/v1/campaigns/{campaign_id}/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stats": {
"contacted_count": 123,
"completed_count": 123,
"success_count": 123,
"failure_count": 123,
"total_duration_seconds": 123,
"updated_at": "2023-11-07T05:31:56Z"
},
"current_run": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"paused_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"leads_processed": 123,
"calls_per_minute": 123,
"pause_reason": "<string>"
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Invalid or missing API key"
}{
"status": 403,
"title": "Forbidden",
"detail": "Missing required scope: calls:write"
}{
"title": "<string>",
"status": 123,
"type": "<string>",
"detail": "<string>",
"code": "<string>",
"instance": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"errors": [
{
"path": "<string>",
"message": "<string>",
"code": "<string>"
}
],
"details": "<string>"
}Authorizations
Use Authorization: Bearer tc_live_xxxxx
Path Parameters
Campaign UUID
Response
Campaign statistics
Call counters for a campaign, computed from call records at request time, plus its most recent run.
Computed live from the campaign's call records on every request; not a cached snapshot.
Show child attributes
Show child attributes
The most recently created run for this campaign, or null if the campaign has never been started.
Show child attributes
Show child attributes
⌘I