# RunRecord

> 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/runrecord/
> Summary: OpenAPI request or response schema for RunRecord, including required fields, defaults, constraints, and linked nested types.

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

Summary of a run. It acts as the header of the event stream.

**Shape:** `object`

| Property | Required | Type | Description | Rules |
|---|---|---|---|---|
| `id` | yes | `string (uuid)` | Gets the run id. A time-ordered UUID (v7). | — |
| `agentName` | yes | `string` | Gets the name of the agent that ran. For workflow runs this is the workflow name: the existing lists, statistics and user interface read this column, and leaving it empty would show workflow rows without a name. | — |
| `kind` | no | [`RunKind`](/http-api/schemas/runkind/) | Gets whether this row records an agent or a workflow. | — |
| `workflowName` | no | `string` | Gets the name of the workflow. Populated only on RunKind.Workflow rows. | — |
| `status` | yes | [`RunStatus`](/http-api/schemas/runstatus/) | Gets the current status of the run. | — |
| `startedAt` | yes | `string (date-time)` | Gets the start time (UTC). | — |
| `completedAt` | no | `string (date-time)` | Gets the completion time (UTC), or `null` while the run is in flight. | — |
| `tenantId` | no | `string` | Gets the tenant the run belongs to. | — |
| `userId` | no | `string` | Gets the user the run belongs to, or `null` when it was not known. | — |
| `labels` | no | `object` | Gets the labels the run carries, or `null` when it carries none. | — |
| `sessionId` | no | `string` | Gets the id of the session that was used. | — |
| `modelId` | no | `string` | Gets the model used by the run. Cost and per-model reports need it. It is `null` when the agent definition carries no model. | — |
| `modelProvider` | no | `string` | Gets the provider of `ModelId`, or `null` for a row written before this column existed. Rows written before are not backfilled — see `POST /api/stats/recalculate-costs`. | — |
| `isStreaming` | no | `boolean` | Gets whether the run streamed. | — |
| `usage` | no | `null` oneOf [`RunUsage`](/http-api/schemas/runusage/) | — | — |
| `error` | no | `null` oneOf [`RunError`](/http-api/schemas/runerror/) | — | — |
| `eventCount` | no | `integer (int64)` | Gets the number of events written for this run. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `parentRunId` | no | `string (uuid)` | Gets the id of the run that started this one, or `null` for a root run. | — |
| `rootRunId` | no | `string (uuid)` | Gets the id of the run at the root of the tree. `null` for a root run and always populated for a child run. | — |
| `depth` | no | `integer (int32)` | Gets the depth in the tree. The root run is 0. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `agentVersion` | no | `integer (int32)` | Gets the definition version this run measured, or `null` when unknown. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `experimentId` | no | `string (uuid)` | Gets the experiment this run belongs to, or `null` outside an experiment. | — |
| `variant` | no | `string` | Gets the experiment variant this run was assigned to, or `null` outside an experiment. | — |
| `childRunCount` | no | `integer (int32)` | Gets the number of <em>direct</em> child runs. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `treeUsage` | no | `null` oneOf [`RunUsage`](/http-api/schemas/runusage/) | — | — |
| `cost` | no | `null` oneOf [`RunCost`](/http-api/schemas/runcost/) | — | — |
| `treeCost` | no | `null` oneOf [`RunTreeCost`](/http-api/schemas/runtreecost/) | — | — |
| `nonTokenCost` | no | `null` oneOf [`RunNonTokenCost`](/http-api/schemas/runnontokencost/) | — | — |
| `treeNonTokenCost` | no | `null` oneOf [`RunNonTokenCost`](/http-api/schemas/runnontokencost/) | — | — |
| `replayOfRunId` | no | `string (uuid)` | Gets the source run id when this run is a replay, otherwise `null`. | — |
| `continuedFromRunId` | no | `string (uuid)` | Gets the id of the run this one continues after an interruption, or `null` for a run that is not a continuation. | — |
