# VoiceSessionRecord

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/http-api/schemas/voicesessionrecord/
> Summary: OpenAPI request or response schema for VoiceSessionRecord, including required fields, defaults, constraints, and linked nested types.

[← All HTTP schemas](/http-api/schemas/)

The summary record of a real-time voice connection.

**Shape:** `object`

| Property | Required | Type | Description | Rules |
|---|---|---|---|---|
| `id` | yes | `string (uuid)` | The connection's identifier. | — |
| `tenantId` | yes | `string` | The tenant. Resolved when the connection is established and <strong>fixed</strong> for the connection's lifetime. | — |
| `sessionId` | yes | `string` | The identifier of the agent session the conversation runs in. | — |
| `agentName` | yes | `string` | The name of the agent being talked to. | — |
| `startedAt` | yes | `string (date-time)` | The moment the connection opened. | — |
| `endedAt` | no | `string (date-time)` | The moment the connection closed; `null` while still open. | — |
| `turns` | no | `integer (int32)` | The number of completed conversation turns. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `inputSeconds` | no | `number (double)` | The total resolved audio duration (seconds). Stays `null` if the provider does not report duration — Tracon does not fabricate a duration. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?$` |
| `outputChars` | no | `integer (int64)` | The total characters synthesized to speech. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `endReason` | no | `null` oneOf [`VoiceSessionEndReason`](/http-api/schemas/voicesessionendreason/) | — | — |
| `createdBy` | no | `string` | The actor who opened the connection. | — |
| `provider` | no | `string` | The provider that hosted the conversation, e.g. `openai`; `null` when Tracon ran the conversation itself. | — |
| `model` | no | `string` | The model the conversation ran on; `null` when unknown. | — |
| `liveSeconds` | no | `number (double)` | The billable wall-clock duration of a provider-hosted live session, in seconds. | pattern `^-?(?:0\\|[1-9]\d*)(?:\.\d+)?$` |
| `cost` | no | `null` oneOf [`VoiceSessionCost`](/http-api/schemas/voicesessioncost/) | — | — |
