Get analytics overview
curl --request GET \
--url https://agents.labs.bandwidth.com/api/v1/organizations/reports/overview \
--header 'Authorization: Bearer <token>'import requests
url = "https://agents.labs.bandwidth.com/api/v1/organizations/reports/overview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://agents.labs.bandwidth.com/api/v1/organizations/reports/overview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"end_utc": "<string>",
"period": "<string>",
"start_utc": "<string>",
"summary": {
"avg_call_duration_seconds": 123,
"avg_tokens_per_call": 123,
"calls_prior_period": 123,
"calls_total": 123,
"median_call_duration_seconds": 123,
"p90_call_duration_seconds": 123,
"repeat_dial_phone_numbers": 123,
"talk_time_seconds": 123,
"total_spend_usd": 123,
"total_tokens_used": 123,
"unique_phone_numbers": 123,
"avg_cast_score": 123,
"avg_cast_score_delta_pct": 123,
"calls_delta_pct": 123,
"cast_scored_count": 0,
"connect_rate_pct": 123,
"cost_per_connected_call_usd": 123,
"end_call_tool_rate_pct": 123,
"negative_sentiment_rate_pct": 123,
"neutral_sentiment_rate_pct": 123,
"positive_sentiment_rate_pct": 123,
"priced_runs": 0,
"qualified_rate_pct": 123,
"repeat_dial_rate_pct": 123,
"spend_delta_pct": 123,
"success_rate_delta_pct": 123,
"success_rate_pct": 123,
"talk_time_delta_pct": 123,
"tokens_per_minute": 123,
"total_tokens_delta_pct": 123,
"transfer_attempt_rate_pct": 123,
"transfer_success_rate_pct": 123,
"voicemail_rate_pct": 123
},
"timezone": "<string>",
"workflow_id": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Reports
Get analytics overview
Retrieve workspace analytics totals and comparison data.
GET
/
api
/
v1
/
organizations
/
reports
/
overview
Get analytics overview
curl --request GET \
--url https://agents.labs.bandwidth.com/api/v1/organizations/reports/overview \
--header 'Authorization: Bearer <token>'import requests
url = "https://agents.labs.bandwidth.com/api/v1/organizations/reports/overview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://agents.labs.bandwidth.com/api/v1/organizations/reports/overview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"end_utc": "<string>",
"period": "<string>",
"start_utc": "<string>",
"summary": {
"avg_call_duration_seconds": 123,
"avg_tokens_per_call": 123,
"calls_prior_period": 123,
"calls_total": 123,
"median_call_duration_seconds": 123,
"p90_call_duration_seconds": 123,
"repeat_dial_phone_numbers": 123,
"talk_time_seconds": 123,
"total_spend_usd": 123,
"total_tokens_used": 123,
"unique_phone_numbers": 123,
"avg_cast_score": 123,
"avg_cast_score_delta_pct": 123,
"calls_delta_pct": 123,
"cast_scored_count": 0,
"connect_rate_pct": 123,
"cost_per_connected_call_usd": 123,
"end_call_tool_rate_pct": 123,
"negative_sentiment_rate_pct": 123,
"neutral_sentiment_rate_pct": 123,
"positive_sentiment_rate_pct": 123,
"priced_runs": 0,
"qualified_rate_pct": 123,
"repeat_dial_rate_pct": 123,
"spend_delta_pct": 123,
"success_rate_delta_pct": 123,
"success_rate_pct": 123,
"talk_time_delta_pct": 123,
"tokens_per_minute": 123,
"total_tokens_delta_pct": 123,
"transfer_attempt_rate_pct": 123,
"transfer_success_rate_pct": 123,
"voicemail_rate_pct": 123
},
"timezone": "<string>",
"workflow_id": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Supply an IANA
timezone, such as Europe/Dublin. Use period=7d or 30d, or custom with start and end in YYYY-MM-DD format. Invalid periods/date ranges return 400. Use the same range and timezone across related charts. Optional workflow_id limits the results to one agent.Authorizations
LabsAuthLabsApiKey
Bandwidth Labs OAuth access token. Uses the user's selected workspace; the workspace header is not required. Do not also send an API key. Bearer-only operations may additionally require the Labs super_user role.
Headers
Required with X-BW-LABS-AGENTS-API-KEY: the positive local workspace ID to access. The key owner must be a current member. Missing or invalid IDs return 400; non-member workspaces return 403. Not required for bearer authentication, which uses the user's selected workspace.
Query Parameters
One of: 7d, 30d, custom
IANA timezone (e.g., 'America/New_York')
YYYY-MM-DD (required for custom)
YYYY-MM-DD (required for custom)