Get campaign progress
curl --request GET \
--url https://voice-api.onclarity.com/v1/projects/{projectId}/campaigns/{id}/analytics \
--header 'Authorization: Bearer <token>'import requests
url = "https://voice-api.onclarity.com/v1/projects/{projectId}/campaigns/{id}/analytics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://voice-api.onclarity.com/v1/projects/{projectId}/campaigns/{id}/analytics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"analytics": {
"campaign_id": "3f1c2a8e-6b0d-4f6e-9a51-0d2b7c9e4a10",
"status": "running",
"total_items": 200,
"by_status": {
"draft": 0,
"scheduled": 118,
"ongoing": 5,
"failed": 3,
"ended": 71,
"rescheduled": 2,
"invalid": 1
},
"in_flight_calls": 5,
"completion": {
"terminal": 77,
"total": 200,
"pct": 38.5
},
"retries_made": 4,
"callbacks_created": 1,
"timeseries": [
{
"ts": "2026-03-02T14:00:00.000Z",
"ended": 12,
"failed": 1,
"rescheduled": 0,
"total": 13
}
]
}
}{
"error": "Invalid or revoked token"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Campaigns
Get campaign progress
Returns a campaign’s progress: contacts per status, calls in progress, completion percentage, retries made, callbacks created, and an activity time series.
GET
/
v1
/
projects
/
{projectId}
/
campaigns
/
{id}
/
analytics
Get campaign progress
curl --request GET \
--url https://voice-api.onclarity.com/v1/projects/{projectId}/campaigns/{id}/analytics \
--header 'Authorization: Bearer <token>'import requests
url = "https://voice-api.onclarity.com/v1/projects/{projectId}/campaigns/{id}/analytics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://voice-api.onclarity.com/v1/projects/{projectId}/campaigns/{id}/analytics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"analytics": {
"campaign_id": "3f1c2a8e-6b0d-4f6e-9a51-0d2b7c9e4a10",
"status": "running",
"total_items": 200,
"by_status": {
"draft": 0,
"scheduled": 118,
"ongoing": 5,
"failed": 3,
"ended": 71,
"rescheduled": 2,
"invalid": 1
},
"in_flight_calls": 5,
"completion": {
"terminal": 77,
"total": 200,
"pct": 38.5
},
"retries_made": 4,
"callbacks_created": 1,
"timeseries": [
{
"ts": "2026-03-02T14:00:00.000Z",
"ended": 12,
"failed": 1,
"rescheduled": 0,
"total": 13
}
]
}
}{
"error": "Invalid or revoked token"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
Your organization API key (it starts with anek_org_). The same key works on the Voice API and the Support API. See Authentication.
Response
The campaign's progress
Show child attributes
Show child attributes