# `ReqLLM.Response.OutputItem`
[🔗](https://github.com/agentjido/req_llm/blob/main/lib/req_llm/response/output_item.ex#L1)

A computed, canonical view of one value produced by a model call.

Output items are projections over values already retained by
`ReqLLM.Response`; they are not stored on the response and do not change its
serialization. The `data` field contains the existing value, such as text,
a `ReqLLM.Message.ContentPart`, or a `ReqLLM.ToolCall`.

# `channel`

```elixir
@type channel() ::
  :message
  | :reasoning
  | :tools
  | :media
  | :sources
  | :annotations
  | :refusals
  | :provider
```

# `t`

```elixir
@type t() :: %ReqLLM.Response.OutputItem{
  data: nil | any(),
  metadata: map(),
  type:
    :text
    | :thinking
    | :image
    | :image_url
    | :video_url
    | :file
    | :tool_call
    | :source
    | :annotation
    | :refusal
    | :provider_item
}
```

# `channel`

```elixir
@spec channel(t()) :: channel()
```

Returns the stable result channel for an output item.

# `channels`

```elixir
@spec channels() :: [channel()]
```

Returns all stable output channels in display order.

# `schema`

Returns the Zoi schema for output item projections.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
