Endpoints
Dashboard & Analytics
Access aggregated usage metrics and date-range analytics across your Vobiz reseller ecosystem - live dashboard summary and flexible reporting endpoints.
GET
/
api
/
v1
/
partner
/
dashboard
Get dashboard summary
curl --request GET \
--url https://api.vobiz.ai/api/v1/partner/dashboard \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>'import requests
url = "https://api.vobiz.ai/api/v1/partner/dashboard"
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Auth-ID': '<api-key>', 'X-Auth-Token': '<api-key>'}
};
fetch('https://api.vobiz.ai/api/v1/partner/dashboard', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"total_customers": 42,
"active_customers": 38,
"pending_kyc": 4,
"total_balance_held": 250000,
"currency": "INR",
"mtd_revenue": 18450.5
}← Partner API Reference
Two endpoints provide aggregated intelligence across your entire reseller ecosystem - a live dashboard summary for high-level health checks, and a flexible analytics endpoint for date-range performance reporting.
All Partner API requests use
X-Auth-ID and X-Auth-Token headers. See Authentication for details.Overview
| Endpoint | What it returns | Best for |
|---|---|---|
/dashboard | Live counts, balances, today’s call volume | Main UI landing page, health checks |
/analytics | Aggregated call metrics, cost, top spenders | Billing cycles, customer reports, trend analysis |
Partner Dashboard
Returns a high-level snapshot of your partner account, including total active customer accounts, combined wallet balances, total calls today, and platform-level status indicators.curl -X GET \
"https://api.vobiz.ai/api/v1/partner/dashboard" \
-H "X-Auth-ID: {your_partner_id}" \
-H "X-Auth-Token: {your_auth_token}" \
-H "Accept: application/json"
{
"partner": {
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": 500000,
"name": "John Doe",
"slug": "acme-partner",
"company": "Acme Corp",
"auth_id": "PA_XXXXXXXX",
"email": "admin@example.com",
"phone": "+919876543210",
"billing_model": "direct",
"is_active": true,
"is_verified": false,
"max_accounts": 1000,
"can_create_accounts": true,
"can_create_pricing_tiers": true,
"can_view_cdrs": true,
"can_transfer_balance": true,
"default_pricing_tier_id": "11223344-1234-5678-90ab-cdef12345678",
"account_count": 23,
"balance": null,
"created_at": "2026-01-19T18:39:14.529435Z",
"updated_at": "2026-05-11T13:31:06.283235Z"
},
"period": {
"from": "2026-04-12",
"to": "2026-05-12"
},
"accounts": {
"total": 23,
"active": 23,
"customers": [
{
"auth_id": "MA_XXXXXXXX",
"name": "John Doe",
"email": "john@example.com",
"phone": "+919876543210",
"is_active": true,
"created_at": "2026-02-06T06:50:07.722963+00:00"
},
{
"auth_id": "MA_YYYYYYYY",
"name": "Acme Corp",
"email": "admin@example.com",
"phone": "+919876543210",
"is_active": true,
"created_at": "2026-02-09T09:34:48.330015+00:00"
}
]
},
"total_balance": "1003058.82000",
"currency": "INR",
"calls": {
"total_calls": 210,
"answered_calls": 178,
"total_minutes": 157.2,
"total_cost": "108.24"
},
"traffic": {
"inbound": {
"total_calls": 28,
"answered_calls": 20,
"total_minutes": 25.5,
"total_cost": "17.26"
},
"outbound": {
"total_calls": 182,
"answered_calls": 158,
"total_minutes": 131.7,
"total_cost": "90.98"
}
},
"by_product": {
"sip_trunking": {
"total_calls": 8,
"answered_calls": 0,
"total_minutes": 0,
"total_cost": "0.16"
},
"voice_api": {
"total_calls": 202,
"answered_calls": 178,
"total_minutes": 157.2,
"total_cost": "108.08"
}
},
"time_series": [
{
"date": "2026-04-15",
"total_calls": 38,
"answered_calls": 23,
"total_minutes": 5.8,
"total_cost": "7.21",
"inbound": {
"total_calls": 2,
"answered_calls": 0,
"total_minutes": 0
},
"outbound": {
"total_calls": 36,
"answered_calls": 23,
"total_minutes": 5.8
}
},
{
"date": "2026-04-16",
"total_calls": 69,
"answered_calls": 60,
"total_minutes": 30.7,
"total_cost": "26.48",
"inbound": {
"total_calls": 2,
"answered_calls": 0,
"total_minutes": 0
},
"outbound": {
"total_calls": 67,
"answered_calls": 60,
"total_minutes": 30.7
}
}
]
}
Response fields
| Field | Notes |
|---|---|
partner | Your partner profile snapshot. Note partner.balance is null here - read total_balance (below) for the aggregate held across customers. |
period | The from / to window the metrics cover. |
accounts | total, active, and a customers[] list (each with auth_id, name, email, phone, is_active, created_at). |
total_balance | Combined wallet balance held across all customers, as a string. |
calls | Roll-up: total_calls, answered_calls, total_minutes, total_cost. |
traffic | The same roll-up split into inbound and outbound. |
by_product | The same roll-up split into sip_trunking and voice_api. |
time_series[] | Per-day metrics with nested inbound / outbound counts. |
To find customers at risk of running out of balance, there is no single “low balance” field - page through
GET /accounts (each row carries cash_credits) or call Get Customer Balance per account, then recharge proactively so calls don’t start failing.Partner Analytics
Returns aggregated call analytics across all customer accounts. Defaults to the last 30 days. Passfrom_date and to_date for a custom window. Use for billing cycle audits, identifying top-spending customers, and call volume trend analysis.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
from_date | string | Optional | Start date in YYYY-MM-DD format. Defaults to 30 days ago. |
to_date | string | Optional | End date in YYYY-MM-DD format. Defaults to today. |
Default - Last 30 Days
curl -X GET \
"https://api.vobiz.ai/api/v1/partner/analytics" \
-H "X-Auth-ID: {your_partner_id}" \
-H "X-Auth-Token: {your_auth_token}" \
-H "Accept: application/json"
Custom Date Range
curl -X GET \
"https://api.vobiz.ai/api/v1/partner/analytics?from_date=2026-01-01&to_date=2026-03-31" \
-H "X-Auth-ID: {your_partner_id}" \
-H "X-Auth-Token: {your_auth_token}" \
-H "Accept: application/json"
Response
{
"partner": {
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": 500000,
"name": "John Doe",
"slug": "acme-partner",
"company": "Acme Corp",
"auth_id": "PA_XXXXXXXX",
"email": "admin@example.com",
"phone": "+919876543210",
"billing_model": "direct",
"is_active": true,
"is_verified": false,
"max_accounts": 1000,
"can_create_accounts": true,
"can_create_pricing_tiers": true,
"can_view_cdrs": true,
"can_transfer_balance": true,
"default_pricing_tier_id": "11223344-1234-5678-90ab-cdef12345678",
"account_count": 23,
"balance": null,
"created_at": "2026-01-19T18:39:14.529435Z",
"updated_at": "2026-05-11T13:31:06.283235Z"
},
"period": {
"from": "2026-01-01",
"to": "2026-03-31"
},
"accounts": {
"total": 23,
"active": 23,
"customers": [
{
"auth_id": "MA_XXXXXXXX",
"name": "John Doe",
"email": "john@example.com",
"phone": "+919876543210",
"is_active": true,
"created_at": "2026-02-06T06:50:07.722963+00:00"
}
]
},
"total_balance": "1003058.82000",
"currency": "INR",
"calls": {
"total_calls": 210,
"answered_calls": 178,
"total_minutes": 157.2,
"total_cost": "108.24"
},
"traffic": {
"inbound": {
"total_calls": 28,
"answered_calls": 20,
"total_minutes": 25.5,
"total_cost": "17.26"
},
"outbound": {
"total_calls": 182,
"answered_calls": 158,
"total_minutes": 131.7,
"total_cost": "90.98"
}
},
"by_product": {
"sip_trunking": {
"total_calls": 8,
"answered_calls": 0,
"total_minutes": 0,
"total_cost": "0.16"
},
"voice_api": {
"total_calls": 202,
"answered_calls": 178,
"total_minutes": 157.2,
"total_cost": "108.08"
}
},
"time_series": [
{
"date": "2026-01-15",
"total_calls": 38,
"answered_calls": 23,
"total_minutes": 5.8,
"total_cost": "7.21",
"inbound": {
"total_calls": 2,
"answered_calls": 0,
"total_minutes": 0
},
"outbound": {
"total_calls": 36,
"answered_calls": 23,
"total_minutes": 5.8
}
}
]
}
Use Cases
- Monthly billing cycle - Pull analytics for the billing month to calculate total usage (
calls.total_cost,calls.total_minutes), generate invoices, and reconcile against your transaction ledger. - Answer-rate analysis - Track
calls.answered_calls / calls.total_callsover time (or per-day viatime_series) to spot network quality or configuration problems. - Inbound vs. outbound split - Use
traffic.inboundvstraffic.outboundto understand your base - outbound-heavy customers have different pricing and capacity needs than inbound-heavy ones. - Product mix - Use
by_productto see how usage splits betweensip_trunkingandvoice_apiacross your ecosystem.
Authorizations
Your Vobiz account Auth ID
Your Vobiz account Auth Token
Response
200 - application/json
Dashboard summary
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I
Get dashboard summary
curl --request GET \
--url https://api.vobiz.ai/api/v1/partner/dashboard \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>'import requests
url = "https://api.vobiz.ai/api/v1/partner/dashboard"
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Auth-ID': '<api-key>', 'X-Auth-Token': '<api-key>'}
};
fetch('https://api.vobiz.ai/api/v1/partner/dashboard', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"total_customers": 42,
"active_customers": 38,
"pending_kyc": 4,
"total_balance_held": 250000,
"currency": "INR",
"mtd_revenue": 18450.5
}