---
title: "Summarize Endpoint"
method: POST
path: "/agents/{agent_id}/sessions/{session_id}/summary"
tags: ["chat"]
---

# Summarize Endpoint

`POST /agents/{agent_id}/sessions/{session_id}/summary`

## Path parameters

- `agent_id` string, required
- `session_id` string, required

## Request body

- SummarizeRequest — Body for POST /agents/{agent_id}/sessions/{session_id}/summary. Carries the Vercel-style messages array; the backend owns the prompt and the structured-output tool schema.
  - `ingestTraces` boolean
  - `exportRemoteTraces` boolean
  - `attachUserId` boolean — When true and the request is authenticated as a PhoenixUser, attaches the user's email as the OpenInference ``user.id`` span attribute on all traced work for this request.
  - `messages` UIMessage[], required
    - `id` string, required
    - `role` 'system' | 'user' | 'assistant', required
    - `metadata` unknown
    - `parts` union[], required
      - union
        - TextUIPart — A text part of a message.
          - `type` 'text'
          - `text` string, required
          - `state` 'streaming' | 'done', nullable
          - `providerMetadata` object, nullable
        - ReasoningUIPart — A reasoning part of a message.
          - `type` 'reasoning'
          - `text` string, required
          - `state` 'streaming' | 'done', nullable
          - `providerMetadata` object, nullable
        - ToolInputStreamingPart — Tool part in input-streaming state.
          - `type` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'input-streaming'
          - `input` unknown
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - ToolInputAvailablePart — Tool part in input-available state.
          - `type` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'input-available'
          - `input` unknown
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - ToolOutputAvailablePart — Tool part in output-available state.
          - `type` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'output-available'
          - `input` unknown
          - `output` unknown
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `preliminary` boolean, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - ToolOutputErrorPart — Tool part in output-error state.
          - `type` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'output-error'
          - `input` unknown
          - `rawInput` unknown
          - `errorText` string, required
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - ToolApprovalRequestedPart — Tool part in approval-requested state (awaiting user decision).
          - `type` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'approval-requested'
          - `input` unknown
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - ToolApprovalRespondedPart — Tool part in approval-responded state (user approved/denied, execution pending).
          - `type` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'approval-responded'
          - `input` unknown
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - ToolOutputDeniedPart — Tool part in output-denied state (tool was denied, terminal state).
          - `type` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'output-denied'
          - `input` unknown
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - DynamicToolInputStreamingPart — Dynamic tool part in input-streaming state.
          - `type` 'dynamic-tool'
          - `toolName` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'input-streaming'
          - `input` unknown
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - DynamicToolInputAvailablePart — Dynamic tool part in input-available state.
          - `type` 'dynamic-tool'
          - `toolName` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'input-available'
          - `input` unknown, required
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - DynamicToolOutputAvailablePart — Dynamic tool part in output-available state.
          - `type` 'dynamic-tool'
          - `toolName` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'output-available'
          - `input` unknown, required
          - `output` unknown, required
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `preliminary` boolean, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - DynamicToolOutputErrorPart — Dynamic tool part in output-error state.
          - `type` 'dynamic-tool'
          - `toolName` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'output-error'
          - `input` unknown, required
          - `errorText` string, required
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - DynamicToolApprovalRequestedPart — Dynamic tool part in approval-requested state (awaiting user decision).
          - `type` 'dynamic-tool'
          - `toolName` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'approval-requested'
          - `input` unknown, required
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - DynamicToolApprovalRespondedPart — Dynamic tool part in approval-responded state (user approved/denied, execution pending).
          - `type` 'dynamic-tool'
          - `toolName` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'approval-responded'
          - `input` unknown, required
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - DynamicToolOutputDeniedPart — Dynamic tool part in output-denied state (tool was denied, terminal state).
          - `type` 'dynamic-tool'
          - `toolName` string, required
          - `toolCallId` string, required
          - `title` string, nullable
          - `state` 'output-denied'
          - `input` unknown, required
          - `providerExecuted` boolean, nullable
          - `callProviderMetadata` object, nullable
          - `approval` union
            - ToolApprovalRequested — Tool approval in requested state (awaiting user response).
              - …
            - ToolApprovalResponded — Tool approval in responded state (user has approved or denied).
              - …
        - SourceUrlUIPart — A source part of a message.
          - `type` 'source-url'
          - `sourceId` string, required
          - `url` string, required
          - `title` string, nullable
          - `providerMetadata` object, nullable
        - SourceDocumentUIPart — A document source part of a message.
          - `type` 'source-document'
          - `sourceId` string, required
          - `mediaType` string, required
          - `title` string, required
          - `filename` string, nullable
          - `providerMetadata` object, nullable
        - FileUIPart — A file part of a message.
          - `type` 'file'
          - `mediaType` string, required
          - `filename` string, nullable
          - `url` string, required
          - `providerMetadata` object, nullable
        - DataUIPart — Data part with dynamic type based on data name.
          - `type` string, required
          - `id` string, nullable
          - `data` unknown, required
        - StepStartUIPart — A step boundary part of a message.
          - `type` 'step-start'
  - `model` union, required
    - CustomProviderModelSelection — Chat against a stored custom provider record.
      - `providerType` 'custom', required
      - `providerId` string, required
      - `modelName` string, required
    - BuiltInProviderModelSelection — Chat against a Phoenix built-in provider. Credentials and connection details (base URL, Azure endpoint, AWS region) are resolved from the secret store first and the process environment second. ``openai_api_type`` is honoured by the OpenAI and Azure OpenAI branches; other providers ignore it.
      - `providerType` 'builtin', required
      - `provider` 'OPENAI' | 'AZURE_OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'DEEPSEEK' | 'XAI' | 'OLLAMA' | 'AWS' | 'CEREBRAS' | 'FIREWORKS' | 'GROQ' | 'MOONSHOT' | 'PERPLEXITY' | 'TOGETHER', required
      - `modelName` string, required
      - `openaiApiType` 'chat_completions' | 'responses'

## Response `200`

Successful Response

- SummarizeResponse
  - `summary` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/arize-ai/apis/arize-phoenix-rest-api.md) · [All operations](https://skmtc.net/arize-ai/apis/arize-phoenix-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/arize-ai/arize-phoenix-rest-api/versions/a14d8ad6f708/schema)
