Usage in a period for billing: voice conversations (phone and web voice) in time, text chats in input and output tokens. Lines are per agent and knowledge-base state, and every total is split into with and without knowledge base, so different per-minute prices can be applied.
With includeSubtenants=true the response nests all sub-tenants (to any depth) with their own lines and totals,
plus totalIncludingSubtenants at every level; sub-tenant branches without usage are left out.
Conversations are counted in the period they started in. Use durationSeconds for exact billing or
durationMinutes (decimal minutes) to multiply by a per-minute price.
Required permission: usage:read
BearerAuthorizationBearer <token>Tenant API key (evk_…), created in Studio → Vault → API keys.
tenantId*stringTenant id, or current for the key's own tenant. Must be the key's tenant or one of its sub-tenants.
from*stringStart of the period, inclusive, ISO 8601 UTC, e.g. 2026-09-01T00:00:00Z.
date-timeto*stringEnd of the period, exclusive, ISO 8601 UTC, e.g. 2026-10-01T00:00:00Z for all of September. At most 366 days after from.
date-timeincludeSubtenants?booleanAlso report all sub-tenants. Default false: only this tenant.
falseThe usage report.
Usage of a tenant (and optionally its sub-tenants) in a period, for billing. Voice conversations (phone,
voice_chat) are measured in time; text chats (text_chat) in input and output tokens. Everything is split by
whether the agent had a knowledge base during the conversation.
generatedAtUtc?stringWhen this report was generated (UTC).
date-timeperiod*The requested period.
includeSubtenants?booleanWhether sub-tenants are included.
tenant*The requested tenant with its usage, and its sub-tenants when included.
curl -X GET 'https://api.envocal.ai/v1/tenants/string/usage?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z'{ "generatedAtUtc": "2019-08-24T14:15:22Z", "period": { "from": "2019-08-24T14:15:22Z", "to": "2019-08-24T14:15:22Z" }, "includeSubtenants": true, "tenant": { "id": "string", "name": "string", "extraId": "string", "agents": [ { "agentId": "string", "agentName": "string", "hasKnowledgeBase": true, "voice": { "conversations": 0, "durationSeconds": 0, "durationMinutes": 0.1, "durationMmss": "string" }, "text": { "conversations": 0, "inputTokens": 0, "outputTokens": 0 } } ], "totalDirect": { "all": { "voice": { "conversations": 0, "durationSeconds": 0, "durationMinutes": 0.1, "durationMmss": "string" }, "text": { "conversations": 0, "inputTokens": 0, "outputTokens": 0 } }, "withKnowledgeBase": { "voice": { "conversations": 0, "durationSeconds": 0, "durationMinutes": 0.1, "durationMmss": "string" }, "text": { "conversations": 0, "inputTokens": 0, "outputTokens": 0 } }, "withoutKnowledgeBase": { "voice": { "conversations": 0, "durationSeconds": 0, "durationMinutes": 0.1, "durationMmss": "string" }, "text": { "conversations": 0, "inputTokens": 0, "outputTokens": 0 } } }, "totalIncludingSubtenants": { "all": { "voice": { "conversations": 0, "durationSeconds": 0, "durationMinutes": 0.1, "durationMmss": "string" }, "text": { "conversations": 0, "inputTokens": 0, "outputTokens": 0 } }, "withKnowledgeBase": { "voice": { "conversations": 0, "durationSeconds": 0, "durationMinutes": 0.1, "durationMmss": "string" }, "text": { "conversations": 0, "inputTokens": 0, "outputTokens": 0 } }, "withoutKnowledgeBase": { "voice": { "conversations": 0, "durationSeconds": 0, "durationMinutes": 0.1, "durationMmss": "string" }, "text": { "conversations": 0, "inputTokens": 0, "outputTokens": 0 } } }, "subtenants": [ {} ] }}curl -X GET 'https://api.envocal.ai/v1/tenants/string/usage?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z'{
"generatedAtUtc": "2019-08-24T14:15:22Z",
"period": {
"from": "2019-08-24T14:15:22Z",
"to": "2019-08-24T14:15:22Z"
},
"includeSubtenants": true,
"tenant": {
"id": "string",
"name": "string",
"extraId": "string",
"agents": [
{
"agentId": "string",
"agentName": "string",
"hasKnowledgeBase": true,
"voice": {
"conversations": 0,
"durationSeconds": 0,
"durationMinutes": 0.1,
"durationMmss": "string"
},
"text": {
"conversations": 0,
"inputTokens": 0,
"outputTokens": 0
}
}
],
"totalDirect": {
"all": {
"voice": {
"conversations": 0,
"durationSeconds": 0,
"durationMinutes": 0.1,
"durationMmss": "string"
},
"text": {
"conversations": 0,
"inputTokens": 0,
"outputTokens": 0
}
},
"withKnowledgeBase": {
"voice": {
"conversations": 0,
"durationSeconds": 0,
"durationMinutes": 0.1,
"durationMmss": "string"
},
"text": {
"conversations": 0,
"inputTokens": 0,
"outputTokens": 0
}
},
"withoutKnowledgeBase": {
"voice": {
"conversations": 0,
"durationSeconds": 0,
"durationMinutes": 0.1,
"durationMmss": "string"
},
"text": {
"conversations": 0,
"inputTokens": 0,
"outputTokens": 0
}
}
},
"totalIncludingSubtenants": {
"all": {
"voice": {
"conversations": 0,
"durationSeconds": 0,
"durationMinutes": 0.1,
"durationMmss": "string"
},
"text": {
"conversations": 0,
"inputTokens": 0,
"outputTokens": 0
}
},
"withKnowledgeBase": {
"voice": {
"conversations": 0,
"durationSeconds": 0,
"durationMinutes": 0.1,
"durationMmss": "string"
},
"text": {
"conversations": 0,
"inputTokens": 0,
"outputTokens": 0
}
},
"withoutKnowledgeBase": {
"voice": {
"conversations": 0,
"durationSeconds": 0,
"durationMinutes": 0.1,
"durationMmss": "string"
},
"text": {
"conversations": 0,
"inputTokens": 0,
"outputTokens": 0
}
}
},
"subtenants": [
{}
]
}
}