---
title: "List agent session items"
method: GET
path: "/agents/sessions/{session_id}/items"
tags: ["Agents"]
---

# List agent session items

`GET /agents/sessions/{session_id}/items`

Lists items produced by the session's root agent, including its interactions with subagents. Each subagent has its own item history. See [inspecting agent output](https://developers.openai.com/api/docs/guides/agents-api/observability).

## Path parameters

- `session_id` string, required

## Query parameters

- `limit` integer
- `order` 'asc' | 'desc' — The order in which paginated resources are returned.
- `after` string

## Response `200`

A page of session items.

- SessionItemListResource — A page of messages, reasoning, and tool calls from a session's item history.
  - `object` 'list', required — The object type, which is always `list`.
  - `data` SessionTurnItemResource[], required — The resources returned in this page, in the requested sort order.
    - union — An item associated with a session turn.
      - object — A user or assistant message recorded in a session.
        - `type` 'message', required — The item type. Always `message`.
        - `id` string, nullable, required — The ID of this item, or null for legacy user messages whose ID was not recorded.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `role` 'user' | 'assistant', required — The author of a session message.
        - `content` MessageContentResource[], required — The content of the message. User messages contain input text or images; assistant messages contain output text.
          - union — A content part in a session message.
            - object — Text supplied by the user.
              - …
            - object — An image supplied by the user.
              - …
            - object — Text produced by the assistant.
              - …
        - `status` 'in_progress' | 'completed' | 'incomplete', required — The status of an agent output item.
        - `phase` 'commentary' | 'final_answer', required — The phase of an assistant message.
      - object — A reasoning item produced by the agent.
        - `type` 'reasoning', required — The item type. Always `reasoning`.
        - `id` string, required — The ID of the reasoning item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `summary` SummaryTextResource[], required — The reasoning summaries produced by the agent.
          - `type` 'summary_text', required — The content type. Always `summary_text`.
          - `text` string, required — The reasoning summary text.
        - `status` 'in_progress' | 'completed' | 'incomplete', required — The status of an agent output item.
      - object — A function call produced by the agent.
        - `type` 'function_call', required — The item type. Always `function_call`.
        - `id` string, required — The ID of the function call item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `call_id` string, required — The ID used to submit the function result.
        - `name` string, required — The name of the function to call.
        - `arguments` unknown, required
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
      - object — The result supplied for a function call.
        - `id` string, required — The ID of the function call output item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `type` 'function_call_output', required — The item type. Always `function_call_output`.
        - `call_id` string, required — The ID of the function call that produced this output.
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `output` union, required — The text or model-input content supplied as a function result.
          - string
          - InputContentResource[]
            - union — User-provided content recorded in a session item.
              - …
        - `error` string, nullable, required — The error message, if the call failed.
      - object — A message exchanged between agent threads.
        - `id` string, required — The ID of the message.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `type` 'agent_message', required — The item type. Always `agent_message`.
        - `sender_agent_id` string, required — The ID or name of the sending agent.
        - `recipient_agent_id` string, required — The ID or name of the receiving agent.
        - `content` AgentContentResource[], required — The content exchanged between the agents.
          - union — A plaintext or encrypted content part exchanged between agents.
            - object — A text content part produced by the agent.
              - …
            - object — Encrypted content exchanged between agents.
              - …
      - object — A call to a tool on an MCP server.
        - `type` 'mcp_call', required — The item type. Always `mcp_call`.
        - `id` string, required — The ID of the MCP call item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `server_label` string, required — The label of the MCP server.
        - `name` string, required — The name of the MCP tool.
        - `arguments` unknown, required
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `output` unknown, required
        - `error` unknown, required
      - object — A web search call produced by the agent.
        - `type` 'web_search_call', required — The item type. Always `web_search_call`.
        - `id` string, required — The ID of the web search call.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `status` 'in_progress' | 'completed' | 'incomplete', required — The status of an agent output item.
        - `action` union, required — An action performed by the web search tool.
          - object — A search query or group of search queries.
            - `type` 'search', required — The type of the object. Always `search`.
            - `query` string, nullable, required — The search query, when a single query was used.
            - `queries` string[], nullable, required — The search queries, when multiple queries were used.
          - object — Opens a web page.
            - `type` 'open_page', required — The type of the object. Always `open_page`.
            - `url` string, nullable, required — The URL of the page that was opened.
          - object — Finds text within a web page.
            - `type` 'find_in_page', required — The type of the object. Always `find_in_page`.
            - `url` string, nullable, required — The URL of the page that was searched.
            - `pattern` string, nullable, required — The text pattern that was searched for.
          - object — Another web search action.
            - `type` 'other', required — The type of the object. Always `other`.
      - object — A command execution produced by the agent.
        - `type` 'command_execution', required — The item type. Always `command_execution`.
        - `id` string, required — The ID of the command execution item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `command` string, required — The command that was executed.
        - `cwd` string, nullable, required — The working directory used to execute the command.
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `output` string, nullable, required — The command output, if available.
        - `exit_code` integer, nullable, required — The process exit code, if the command completed.
        - `duration_ms` integer, nullable, required — The command duration in milliseconds.
      - object — A request to spawn a subagent.
        - `type` 'create_subagent_call', required — The item type. Always `create_subagent_call`.
        - `id` string, required — The ID of the tool call item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `agent_id` string, required — The ID of the agent that requested the subagent.
        - `content` AgentContentResource[], required — The task given to the spawned agent.
          - union — A plaintext or encrypted content part exchanged between agents.
            - object — A text content part produced by the agent.
              - …
            - object — Encrypted content exchanged between agents.
              - …
        - `model` string, nullable, required — The model requested for the spawned agent.
        - `reasoning_effort` string, nullable, required — The reasoning effort requested for the spawned agent.
      - object — A request to send input to another agent.
        - `type` 'send_subagent_input_call', required — The item type. Always `send_subagent_input_call`.
        - `id` string, required — The ID of the tool call item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `sender_agent_id` string, required — The ID of the agent sending the input.
        - `recipient_agent_id` string, required — The ID of the agent receiving the input.
        - `content` AgentContentResource[], required — The input sent to the receiving agent.
          - union — A plaintext or encrypted content part exchanged between agents.
            - object — A text content part produced by the agent.
              - …
            - object — Encrypted content exchanged between agents.
              - …
      - object — A request to resume a subagent.
        - `type` 'resume_subagent_call', required — The item type. Always `resume_subagent_call`.
        - `id` string, required — The ID of the tool call item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `sender_agent_id` string, required — The ID of the agent requesting the resume.
        - `recipient_agent_id` string, required — The ID of the agent to resume.
      - object — A request to wait for one or more subagents.
        - `type` 'wait_for_subagents_call', required — The item type. Always `wait_for_subagents_call`.
        - `id` string, required — The ID of the tool call item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `sender_agent_id` string, required — The ID of the agent waiting for results.
        - `recipient_agent_ids` string[], required — The IDs of the agents to wait for.
      - object — A request to interrupt a subagent's current turn. The subagent remains available.
        - `type` 'interrupt_subagent_call', required — The item type. Always `interrupt_subagent_call`.
        - `id` string, required — The ID of the tool call item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `sender_agent_id` string, required — The ID of the agent requesting the interrupt.
        - `recipient_agent_id` string, required — The ID of the agent to interrupt.
      - object — A request to close a subagent.
        - `type` 'close_subagent_call', required — The item type. Always `close_subagent_call`.
        - `id` string, required — The ID of the tool call item.
        - `turn_id` string, required — The ID of the turn that contains this item.
        - `status` 'in_progress' | 'completed' | 'failed' | 'incomplete', required — The status of a tool call.
        - `sender_agent_id` string, required — The ID of the agent requesting the close.
        - `recipient_agent_id` string, required — The ID of the agent to close.
  - `first_id` string, nullable, required — The ID of the first resource in `data`, or `null` if the page is empty.
  - `last_id` string, nullable, required — The ID of the last resource in `data`, or `null` if the page is empty. Pass this as `after` with the same order and filters.
  - `has_more` boolean, required — Whether there are more resources to retrieve after this page.

## Other responses

- `400` — The request was invalid.
- `401` — Authentication or project context was missing.
- `403` — The API key lacks the required permission.
- `404` — The requested session or event was not found.
- `409` — The request conflicted with the current session state.
- `500` — An internal error occurred.
- `503` — The service is temporarily unavailable.

## Changes

- **2026-09-10** `f2dae1a9aced` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openai/apis/openapi/changes/agents/sessions/:session_id/items/get.md)

---

[API](https://skmtc.dev/openai/apis/openapi.md) · [All operations](https://skmtc.dev/openai/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc.dev/openai/apis/openapi/revisions/c8bd56db4095?raw)
