Calls
Read calls with their analysis. Requires a Full access key.
List calls
GET https://api.voix.tech/public/v1/callsReturns calls newest first, paginated. Each item carries the summary, scores and topics; fetch a single call for the transcript and check results.
| Query parameter | Type | Description |
|---|---|---|
page | integer | Page number, from 1. |
pageSize | integer | Items per page, 1 to 100. Default 20. |
dateFrom | date | Calls started on or after this date, e.g. 2026-10-01. |
dateTo | date | Calls started on or before this date. |
direction | string | inbound or outbound. |
agentId | uuid | Calls handled by this team member. |
contactId | uuid | Calls with this contact. |
topicIds | uuid list | Calls tagged with any of these topics, comma separated. |
lensId | uuid | Calls where this lens applied. |
checkId | uuid | With checkOutcome: calls where this check had that result. |
checkOutcome | string | passed, failed or unknown. |
curl "https://api.voix.tech/public/v1/calls?dateFrom=2026-10-01&pageSize=50" \
-H "Authorization: Bearer vx_your_api_key"{
"data": [
{
"id": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"teamId": "3f2a1c4e-6b7d-4e8f-9a0b-1c2d3e4f5a6b",
"direction": "outbound",
"from": "+31201234567",
"to": "+31612345678",
"counterparty": "+31612345678",
"startedAt": "2026-10-09T14:01:43.000Z",
"endedAt": "2026-10-09T14:04:12.000Z",
"duration": 149,
"title": "Payment plan agreed in five instalments",
"summary": "The customer agrees to pay the outstanding invoice in five monthly instalments, the first on 20 October.",
"agent": { "id": "8c1e2f3a-4b5c-4d6e-8f7a-9b0c1d2e3f4a", "name": "Sam de Vries", "email": "sam@example.com" },
"contact": {
"id": "5d6e7f8a-9b0c-4d1e-8f2a-3b4c5d6e7f8a",
"name": "Alex Jansen",
"company": "Jansen Installaties",
"email": null,
"phone": "+31612345678",
"jobTitle": null
},
"scores": {
"success": true,
"sentiment": 72,
"efficiency": 81,
"understanding": 88,
"agreeableness": 79,
"balance": 68,
"motivation": 74
},
"topics": [{ "id": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d", "name": "Payment plan" }],
"createdAt": "2026-10-09T14:04:20.000Z",
"updatedAt": "2026-10-09T14:06:02.000Z"
}
],
"total": 75,
"page": 1,
"pageSize": 50,
"totalPages": 2
}scores is null until the call has been analysed. Scores run from 0 to 100,
higher is better; see Analysis & scores for what each measures.
Get a call
GET https://api.voix.tech/public/v1/calls/{id}Returns everything in the list item, plus:
| Field | Description |
|---|---|
advice | One coaching suggestion for the agent. |
explanations | A short explanation per score. |
checks | The result of each check that ran: passed is true, false or null when the call had too little evidence, with a supporting quote in evidence. |
lenses | For each lens: whether it applied to this call and why. |
transcript | The speaker-separated transcript: speaker, text and start (seconds from the start of the call). |
{
"id": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"title": "Payment plan agreed in five instalments",
"scores": { "success": true, "sentiment": 72, "efficiency": 81, "understanding": 88, "agreeableness": 79, "balance": 68, "motivation": 74 },
"advice": "Confirm the agreed dates in writing at the end of the call.",
"explanations": { "efficiency": "The agent moved to a concrete proposal within two minutes." },
"checks": [
{
"checkId": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"lensId": "9e8d7c6b-5a4f-4e3d-8c2b-1a0f9e8d7c6b",
"subject": "Payment arrangement confirmed",
"passed": true,
"evidence": "So that's five payments of 104 euros, starting on the twentieth."
}
],
"lenses": [
{
"lensId": "9e8d7c6b-5a4f-4e3d-8c2b-1a0f9e8d7c6b",
"name": "Collections",
"mode": "auto",
"applied": true,
"reason": "The call is about settling an outstanding invoice."
}
],
"transcript": [
{ "speaker": "Sam de Vries", "text": "Good afternoon, this is Sam calling about your invoice.", "start": 1.3 },
{ "speaker": "Alex Jansen", "text": "Yes, I was expecting your call.", "start": 4.8 }
]
}The example is shortened; the response also contains every field of the list item.
Last updated on