# JobRecord

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

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

The summary of a queued job. The header of its items (JobItemRecord).

**Shape:** `object`

| Property | Required | Type | Description | Rules |
|---|---|---|---|---|
| `id` | yes | `string (uuid)` | The job identifier. | — |
| `tenantId` | yes | `string` | The tenant the job belongs to. | — |
| `scheduleId` | no | `string (uuid)` | The identifier of the schedule that produced this job. `null` for manually created (one-off) jobs. | — |
| `handlerKey` | yes | `string` | The key of the IJobHandler that executes this job. See JobHandlerKeys. | — |
| `lane` | no | `string` | The lane this job runs in. See JobLanes. A worker only leases jobs from the lanes it subscribes to (`TraconSchedulingOptions.Lanes`). | — |
| `targetName` | yes | `string` | The agent or workflow name to run. | — |
| `status` | yes | [`JobStatus`](/http-api/schemas/jobstatus/) | The job's current status. | — |
| `payload` | no | [`JsonElement`](/http-api/schemas/jsonelement/) | The input set or parameters. | — |
| `totalItems` | no | `integer (int32)` | The total number of items. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `doneItems` | no | `integer (int32)` | The number of items that completed successfully. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `failedItems` | no | `integer (int32)` | The number of items that failed. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `attempt` | no | `integer (int32)` | The number of lease attempts. Increments each time a worker leases the job. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `maxAttempts` | no | `integer (int32)` | The maximum number of attempts specific to this job. If `null`, `TraconSchedulingOptions.MaxAttempts` applies. | pattern `^-?(?:0\\|[1-9]\d*)$` |
| `maxDuration` | no | `string` | The longest time one attempt of this job may run. If `null`, `TraconSchedulingOptions.MaxDurationByHandlerKey` applies to the job's handler key, and a key the map does not list has no limit. | pattern `^-?(\d+\.)?\d{2}:\d{2}:\d{2}(\.\d{1,7})?$` |
| `leaseOwner` | no | `string` | The identifier of the worker currently leasing the job. `null` if not leased. | — |
| `leaseUntil` | no | `string (date-time)` | The time the current lease expires (UTC). The job may be re-leased once it expires. | — |
| `scheduledFor` | yes | `string (date-time)` | The earliest time the job is eligible to run (UTC). | — |
| `startedAt` | no | `string (date-time)` | The time the first lease happened (UTC). | — |
| `completedAt` | no | `string (date-time)` | The completion time (UTC). `null` while the job is in progress. | — |
| `errorMessage` | no | `string` | The failure message. Populated only for JobStatus.Failed. | — |
| `createdAt` | yes | `string (date-time)` | The creation time (UTC). | — |
