---
title: "Item"
description: "the atomic unit of input and output on the wire, typed by kind, with a lifecycle of started, streaming and completed; a tool call completes with its response card"
section: concepts
address: /concepts/item
contract: 0476e35e6e275db5
---

# Item

the atomic unit of input and output on the wire, typed by kind, with a lifecycle of started, streaming and completed; a tool call completes with its response card

[figure: Item is a value at none scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | value |
| scope | none |
| key | none |
| store | none |
| family | harness |



## Fields


| field | type | required | note |
|---|---|---|---|
| `id` | `id` | yes |  |
| `kind` | `one of user-message \| agent-message \| tool-call \| task \| approval-request \| question \| notification \| document` | yes |  |
| `state` | `one of started \| streaming \| completed` | yes |  |
| `payload` | `json` | yes | the owning type of the kind: UserMessage for a user-message, ToolCall for a tool-call, Task for a task, ApprovalRequest, TaskQuestion, Notification and Document for theirs; never a shape made at the site |
| `started_at` | `time` | yes |  |
| `completed_at` | `time` | no |  |



## Routes that use it
No route takes or returns Item directly. The record holds it, and the objects that point at it reach it.
