Arize Phoenix chat API

The chat API from Arize Phoenix — 2 operation(s) for chat.

Operations 2

POST /agents/{agent_id}/sessions/{session_id}/chat Chat #
POST /agents/{agent_id}/sessions/{session_id}/summary Summarize Endpoint #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/phoenix-chat-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

phoenix-chat-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Arize-Phoenix REST annotation_configs Chat API
  description: Schema for Arize-Phoenix REST API
  version: '1.0'
servers:
- url: https://app.phoenix.arize.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: chat
paths:
  /agents/{agent_id}/sessions/{session_id}/chat:
    post:
      tags:
      - chat
      summary: Chat
      operationId: chat_agents__agent_id__sessions__session_id__chat_post
      parameters:
      - name: agent_id
        in: path
        required: true
        schema:
          type: string
          title: Agent Id
      - name: session_id
        in: path
        required: true
        schema:
          type: string
          title: Session Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /agents/{agent_id}/sessions/{session_id}/summary:
    post:
      tags:
      - chat
      summary: Summarize Endpoint
      operationId: summarize_endpoint_agents__agent_id__sessions__session_id__summary_post
      parameters:
      - name: agent_id
        in: path
        required: true
        schema:
          type: string
          title: Agent Id
      - name: session_id
        in: path
        required: true
        schema:
          type: string
          title: Session Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/_SummarizeRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/_SummarizeResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ToolApprovalResponded:
      properties:
        id:
          type: string
          title: Id
        approved:
          type: boolean
          title: Approved
        reason:
          type:
          - string
          - 'null'
          title: Reason
      additionalProperties: false
      type: object
      required:
      - id
      - approved
      title: ToolApprovalResponded
      description: Tool approval in responded state (user has approved or denied).
    AssistantMessageMetadata:
      properties:
        sessionId:
          type: string
          title: Sessionid
        trace:
          $ref: '#/components/schemas/AssistantMessageMetadataTraceIds'
        usage:
          $ref: '#/components/schemas/AssistantMessageMetadataUsage'
      type: object
      required:
      - sessionId
      title: AssistantMessageMetadata
      description: Wire schema for the chat stream's `message_metadata` payload.
    ToolInputAvailablePart:
      properties:
        type:
          type: string
          pattern: ^tool-
          title: Type
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: input-available
          title: State
          default: input-available
        input:
          title: Input
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - type
      - toolCallId
      title: ToolInputAvailablePart
      description: Tool part in input-available state.
    ToolOutputAvailablePart:
      properties:
        type:
          type: string
          pattern: ^tool-
          title: Type
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: output-available
          title: State
          default: output-available
        input:
          title: Input
        output:
          title: Output
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        preliminary:
          type:
          - boolean
          - 'null'
          title: Preliminary
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - type
      - toolCallId
      title: ToolOutputAvailablePart
      description: Tool part in output-available state.
    DynamicToolInputAvailablePart:
      properties:
        type:
          type: string
          const: dynamic-tool
          title: Type
          default: dynamic-tool
        toolName:
          type: string
          title: Toolname
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: input-available
          title: State
          default: input-available
        input:
          title: Input
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - toolName
      - toolCallId
      - input
      title: DynamicToolInputAvailablePart
      description: Dynamic tool part in input-available state.
    AssistantMessageMetadataUsageTokens:
      properties:
        prompt:
          type: integer
          title: Prompt
        completion:
          type: integer
          title: Completion
        total:
          type: integer
          title: Total
      type: object
      required:
      - prompt
      - completion
      - total
      title: AssistantMessageMetadataUsageTokens
    ChatContext:
      oneOf:
      - $ref: '#/components/schemas/AppContext'
      - $ref: '#/components/schemas/ProjectContext'
      - $ref: '#/components/schemas/TraceContext'
      - $ref: '#/components/schemas/AgentSpanContext'
      - $ref: '#/components/schemas/PlaygroundContext'
      - $ref: '#/components/schemas/CodeEvaluatorContext'
      - $ref: '#/components/schemas/LlmEvaluatorContext'
      - $ref: '#/components/schemas/DatasetContext'
      - $ref: '#/components/schemas/GraphQLContext'
      - $ref: '#/components/schemas/WebAccessContext'
      - $ref: '#/components/schemas/SubagentsContext'
      title: ChatContext
      description: Discriminated union of every UI-state context the agent understands.
      discriminator:
        propertyName: type
        mapping:
          app: '#/components/schemas/AppContext'
          code_evaluator: '#/components/schemas/CodeEvaluatorContext'
          dataset: '#/components/schemas/DatasetContext'
          graphql: '#/components/schemas/GraphQLContext'
          llm_evaluator: '#/components/schemas/LlmEvaluatorContext'
          playground: '#/components/schemas/PlaygroundContext'
          project: '#/components/schemas/ProjectContext'
          span: '#/components/schemas/AgentSpanContext'
          subagents: '#/components/schemas/SubagentsContext'
          trace: '#/components/schemas/TraceContext'
          web_access: '#/components/schemas/WebAccessContext'
    ToolInputStreamingPart:
      properties:
        type:
          type: string
          pattern: ^tool-
          title: Type
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: input-streaming
          title: State
          default: input-streaming
        input:
          title: Input
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - type
      - toolCallId
      title: ToolInputStreamingPart
      description: Tool part in input-streaming state.
    TraceContext:
      properties:
        type:
          type: string
          const: trace
          title: Type
        projectNodeId:
          type: string
          title: Projectnodeid
        otelTraceId:
          type: string
          title: Oteltraceid
      type: object
      required:
      - type
      - projectNodeId
      - otelTraceId
      title: TraceContext
    DatasetContext:
      properties:
        type:
          type: string
          const: dataset
          title: Type
        datasetNodeId:
          type: string
          title: Datasetnodeid
        datasetVersionNodeId:
          type:
          - string
          - 'null'
          title: Datasetversionnodeid
      type: object
      required:
      - type
      - datasetNodeId
      title: DatasetContext
      description: 'Dataset the user is currently viewing or has bound to a workflow.


        Carries the dataset''s relay node id and, when known, the active version

        node id. These IDs scope the create-form handoff link and the sampling of

        active dataset examples used as prompt context; the dataset schema itself

        is open.'
    PlaygroundInstanceContext:
      properties:
        instanceId:
          type: integer
          title: Instanceid
        model:
          oneOf:
          - $ref: '#/components/schemas/PlaygroundBuiltinModelContext'
          - $ref: '#/components/schemas/PlaygroundCustomProviderModelContext'
          discriminator:
            propertyName: type
            mapping:
              builtin: '#/components/schemas/PlaygroundBuiltinModelContext'
              custom: '#/components/schemas/PlaygroundCustomProviderModelContext'
          title: Model
        experimentId:
          type:
          - string
          - 'null'
          title: Experimentid
      type: object
      required:
      - instanceId
      title: PlaygroundInstanceContext
      description: 'One mounted playground instance and its current model selection.


        ``experiment_id`` carries the relay node id of the experiment produced by

        this instance''s last dataset-backed run, or ``None`` when the instance has

        not produced one. Ephemeral experiments are included: they remain queryable

        until the server sweeps them ~24h after their last update.'
    ChatRequest:
      oneOf:
      - $ref: '#/components/schemas/ChatSubmitMessage'
      - $ref: '#/components/schemas/ChatRegenerateMessage'
      title: ChatRequest
      description: Discriminated union of chat request payloads.
      discriminator:
        propertyName: trigger
        mapping:
          regenerate-message: '#/components/schemas/ChatRegenerateMessage'
          submit-message: '#/components/schemas/ChatSubmitMessage'
    SourceDocumentUIPart:
      properties:
        type:
          type: string
          const: source-document
          title: Type
          default: source-document
        sourceId:
          type: string
          title: Sourceid
        mediaType:
          type: string
          title: Mediatype
        title:
          type: string
          title: Title
        filename:
          type:
          - string
          - 'null'
          title: Filename
        providerMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Providermetadata
      additionalProperties: false
      type: object
      required:
      - sourceId
      - mediaType
      - title
      title: SourceDocumentUIPart
      description: A document source part of a message.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    FileUIPart:
      properties:
        type:
          type: string
          const: file
          title: Type
          default: file
        mediaType:
          type: string
          title: Mediatype
        filename:
          type:
          - string
          - 'null'
          title: Filename
        url:
          type: string
          title: Url
        providerMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Providermetadata
      additionalProperties: false
      type: object
      required:
      - mediaType
      - url
      title: FileUIPart
      description: A file part of a message.
    PlaygroundExperimentScaffoldContext:
      properties:
        name:
          type:
          - string
          - 'null'
          title: Name
        description:
          type:
          - string
          - 'null'
          title: Description
        hasMetadata:
          type: boolean
          title: Hasmetadata
          default: false
      type: object
      title: PlaygroundExperimentScaffoldContext
      description: "Experiment name/description/metadata the user has staged for the playground's\n*next* dataset-backed run, before that run has started.\n\nThe playground UI lets the user pre-set how the next recorded run's experiment\nwill be named, described, and tagged (via the ``set_playground_experiment_recording``\ntool or the recording form). That staged state is surfaced here so the agent can\nsee what is already set and avoid re-staging it.\n\nField semantics:\n- ``name`` / ``description``: the staged values, surfaced to the model verbatim,\n  or ``None`` when the user has not staged them.\n- ``has_metadata``: a presence flag, not the value. Only *whether* metadata has\n  been staged is model-relevant (so the agent knows not to re-attach it); the\n  metadata object itself is deliberately kept out of the prompt.\n\nA field left unstaged (``None`` / ``False``) falls back to the server default when\nthe run starts. The scaffold is consumed once that next run begins."
    AppContext:
      properties:
        type:
          type: string
          const: app
          title: Type
        currentDateTime:
          type: string
          title: Currentdatetime
        timeZone:
          type: string
          title: Timezone
      type: object
      required:
      - type
      - currentDateTime
      - timeZone
      title: AppContext
      description: Per-turn browser clock context for resolving relative time requests.
    DynamicToolOutputErrorPart:
      properties:
        type:
          type: string
          const: dynamic-tool
          title: Type
          default: dynamic-tool
        toolName:
          type: string
          title: Toolname
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: output-error
          title: State
          default: output-error
        input:
          title: Input
        errorText:
          type: string
          title: Errortext
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - toolName
      - toolCallId
      - input
      - errorText
      title: DynamicToolOutputErrorPart
      description: Dynamic tool part in output-error state.
    ToolOutputDeniedPart:
      properties:
        type:
          type: string
          pattern: ^tool-
          title: Type
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: output-denied
          title: State
          default: output-denied
        input:
          title: Input
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - type
      - toolCallId
      title: ToolOutputDeniedPart
      description: Tool part in output-denied state (tool was denied, terminal state).
    DynamicToolOutputAvailablePart:
      properties:
        type:
          type: string
          const: dynamic-tool
          title: Type
          default: dynamic-tool
        toolName:
          type: string
          title: Toolname
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: output-available
          title: State
          default: output-available
        input:
          title: Input
        output:
          title: Output
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        preliminary:
          type:
          - boolean
          - 'null'
          title: Preliminary
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - toolName
      - toolCallId
      - input
      - output
      title: DynamicToolOutputAvailablePart
      description: Dynamic tool part in output-available state.
    WebAccessContext:
      properties:
        type:
          type: string
          const: web_access
          title: Type
        enabled:
          type: boolean
          title: Enabled
      type: object
      required:
      - type
      - enabled
      title: WebAccessContext
      description: User's per-turn request to expose web search / fetch tools.
    ProjectContext:
      properties:
        type:
          type: string
          const: project
          title: Type
        projectNodeId:
          type: string
          title: Projectnodeid
        spanFilter:
          type:
          - string
          - 'null'
          title: Spanfilter
        rootSpansOnly:
          type:
          - boolean
          - 'null'
          title: Rootspansonly
      type: object
      required:
      - type
      - projectNodeId
      title: ProjectContext
      description: 'Project the user is currently viewing.


        ``span_filter`` carries the project-scoped span filter expression when the

        span filter field is mounted — empty string when the field is mounted with

        no condition applied, ``None`` when the field is not present at all.


        ``root_spans_only`` carries the current state of the spans-table root vs.

        all toggle when that toggle is mounted — ``True`` when the table is

        restricted to root spans, ``False`` when it shows every span, ``None``

        when the toggle is not present (e.g. on the traces tab).'
    StepStartUIPart:
      properties:
        type:
          type: string
          const: step-start
          title: Type
          default: step-start
      additionalProperties: false
      type: object
      title: StepStartUIPart
      description: A step boundary part of a message.
    DynamicToolApprovalRequestedPart:
      properties:
        type:
          type: string
          const: dynamic-tool
          title: Type
          default: dynamic-tool
        toolName:
          type: string
          title: Toolname
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: approval-requested
          title: State
          default: approval-requested
        input:
          title: Input
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - toolName
      - toolCallId
      - input
      title: DynamicToolApprovalRequestedPart
      description: Dynamic tool part in approval-requested state (awaiting user decision).
    BuiltInProviderModelSelection:
      properties:
        providerType:
          type: string
          const: builtin
          title: Providertype
        provider:
          $ref: '#/components/schemas/ModelProvider'
        modelName:
          type: string
          title: Modelname
        openaiApiType:
          type: string
          enum:
          - chat_completions
          - responses
          title: Openaiapitype
          default: responses
      type: object
      required:
      - providerType
      - provider
      - modelName
      title: BuiltInProviderModelSelection
      description: '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.'
    ToolOutputErrorPart:
      properties:
        type:
          type: string
          pattern: ^tool-
          title: Type
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: output-error
          title: State
          default: output-error
        input:
          title: Input
        rawInput:
          title: Rawinput
        errorText:
          type: string
          title: Errortext
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - type
      - toolCallId
      - errorText
      title: ToolOutputErrorPart
      description: Tool part in output-error state.
    GraphQLContext:
      properties:
        type:
          type: string
          const: graphql
          title: Type
        mutationsEnabled:
          type: boolean
          title: Mutationsenabled
      type: object
      required:
      - type
      - mutationsEnabled
      title: GraphQLContext
      description: GraphQL runtime state.
    TextUIPart:
      properties:
        type:
          type: string
          const: text
          title: Type
          default: text
        text:
          type: string
          title: Text
        state:
          type:
          - string
          - 'null'
          enum:
          - streaming
          - done
          title: State
        providerMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Providermetadata
      additionalProperties: false
      type: object
      required:
      - text
      title: TextUIPart
      description: A text part of a message.
    SourceUrlUIPart:
      properties:
        type:
          type: string
          const: source-url
          title: Type
          default: source-url
        sourceId:
          type: string
          title: Sourceid
        url:
          type: string
          title: Url
        title:
          type:
          - string
          - 'null'
          title: Title
        providerMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Providermetadata
      additionalProperties: false
      type: object
      required:
      - sourceId
      - url
      title: SourceUrlUIPart
      description: A source part of a message.
    ChatRegenerateMessage:
      properties:
        trigger:
          type: string
          const: regenerate-message
          title: Trigger
        id:
          type: string
          title: Id
        messages:
          items:
            $ref: '#/components/schemas/AssistantMetadataUIMessage'
          type: array
          title: Messages
        messageId:
          type:
          - string
          - 'null'
          title: Messageid
        ingestTraces:
          type: boolean
          title: Ingesttraces
          default: false
        exportRemoteTraces:
          type: boolean
          title: Exportremotetraces
          default: false
        contexts:
          items:
            $ref: '#/components/schemas/ChatContext'
          type: array
          title: Contexts
        editPermission:
          type: string
          enum:
          - manual
          - bypass
          title: Editpermission
          default: manual
        requestedSkills:
          items:
            type: string
          type: array
          title: Requestedskills
          description: Skills the user explicitly requested via the prompt's slash-command affordance. The server force-loads each available skill by injecting a synthetic load_skill tool call/result at the tail of the message history. Unknown or context-unavailable names are ignored.
        model:
          oneOf:
          - $ref: '#/components/schemas/CustomProviderModelSelection'
          - $ref: '#/components/schemas/BuiltInProviderModelSelection'
          title: Model
          discriminator:
            propertyName: providerType
            mapping:
              builtin: '#/components/schemas/BuiltInProviderModelSelection'
              custom: '#/components/schemas/CustomProviderModelSelection'
      additionalProperties: true
      type: object
      required:
      - trigger
      - id
      - messages
      - model
      title: ChatRegenerateMessage
      description: Regenerate message extended with Phoenix-specific fields.
    DynamicToolApprovalRespondedPart:
      properties:
        type:
          type: string
          const: dynamic-tool
          title: Type
          default: dynamic-tool
        toolName:
          type: string
          title: Toolname
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: approval-responded
          title: State
          default: approval-responded
        input:
          title: Input
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolApprovalRequested'
          - $ref: '#/components/schemas/ToolApprovalResponded'
          - type: 'null'
          title: Approval
      additionalProperties: false
      type: object
      required:
      - toolName
      - toolCallId
      - input
      title: DynamicToolApprovalRespondedPart
      description: Dynamic tool part in approval-responded state (user approved/denied, execution pending).
    DynamicToolOutputDeniedPart:
      properties:
        type:
          type: string
          const: dynamic-tool
          title: Type
          default: dynamic-tool
        toolName:
          type: string
          title: Toolname
        toolCallId:
          type: string
          title: Toolcallid
        title:
          type:
          - string
          - 'null'
          title: Title
        state:
          type: string
          const: output-denied
          title: State
          default: output-denied
        input:
          title: Input
        providerExecuted:
          type:
          - boolean
          - 'null'
          title: Providerexecuted
        callProviderMetadata:
          additionalProperties:
            additionalProperties: true
            type: object
          type:
          - object
          - 'null'
          title: Callprovidermetadata
        approval:
          anyOf:
          - $ref: '#/components/schemas/ToolA

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/phoenix/refs/heads/main/openapi/phoenix-chat-api-openapi.yml