openapi: 3.0.3 info: title: Arize-Phoenix REST annotation_configs chat API description: Schema for Arize-Phoenix REST API version: '1.0' 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: PlaygroundBuiltinModelContext: properties: type: type: string const: builtin title: Type default: builtin provider: type: string title: Provider modelName: type: string title: Modelname type: object required: - provider - modelName title: PlaygroundBuiltinModelContext description: Built-in playground model selection. 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. 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 nullable: true title: Title providerMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Providermetadata additionalProperties: false type: object required: - sourceId - url title: SourceUrlUIPart description: A source part of a message. UIMessage: properties: id: type: string title: Id role: type: string enum: - system - user - assistant title: Role metadata: nullable: true title: Metadata parts: items: anyOf: - $ref: '#/components/schemas/TextUIPart' - $ref: '#/components/schemas/ReasoningUIPart' - $ref: '#/components/schemas/ToolInputStreamingPart' - $ref: '#/components/schemas/ToolInputAvailablePart' - $ref: '#/components/schemas/ToolOutputAvailablePart' - $ref: '#/components/schemas/ToolOutputErrorPart' - $ref: '#/components/schemas/ToolApprovalRequestedPart' - $ref: '#/components/schemas/ToolApprovalRespondedPart' - $ref: '#/components/schemas/ToolOutputDeniedPart' - $ref: '#/components/schemas/DynamicToolInputStreamingPart' - $ref: '#/components/schemas/DynamicToolInputAvailablePart' - $ref: '#/components/schemas/DynamicToolOutputAvailablePart' - $ref: '#/components/schemas/DynamicToolOutputErrorPart' - $ref: '#/components/schemas/DynamicToolApprovalRequestedPart' - $ref: '#/components/schemas/DynamicToolApprovalRespondedPart' - $ref: '#/components/schemas/DynamicToolOutputDeniedPart' - $ref: '#/components/schemas/SourceUrlUIPart' - $ref: '#/components/schemas/SourceDocumentUIPart' - $ref: '#/components/schemas/FileUIPart' - $ref: '#/components/schemas/DataUIPart' - $ref: '#/components/schemas/StepStartUIPart' type: array title: Parts additionalProperties: false type: object required: - id - role - parts title: UIMessage description: A message as displayed in the UI by Vercel AI Elements. ToolOutputAvailablePart: properties: type: type: string pattern: ^tool- title: Type toolCallId: type: string title: Toolcallid title: type: string nullable: true title: Title state: type: string const: output-available title: State default: output-available input: nullable: true title: Input output: nullable: true title: Output providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Callprovidermetadata preliminary: type: boolean nullable: true 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. AssistantMessageMetadataUsageTokenDetails: properties: cacheRead: type: integer title: Cacheread cacheWrite: type: integer title: Cachewrite type: object required: - cacheRead - cacheWrite title: AssistantMessageMetadataUsageTokenDetails ToolApprovalResponded: properties: id: type: string title: Id approved: type: boolean title: Approved reason: type: string nullable: true title: Reason additionalProperties: false type: object required: - id - approved title: ToolApprovalResponded description: Tool approval in responded state (user has approved or denied). PlaygroundEvaluatorContext: properties: datasetEvaluatorId: type: string title: Datasetevaluatorid name: type: string title: Name kind: type: string enum: - LLM - CODE - BUILTIN title: Kind isBuiltin: type: boolean title: Isbuiltin isApplied: type: boolean title: Isapplied type: object required: - datasetEvaluatorId - name - kind - isBuiltin - isApplied title: PlaygroundEvaluatorContext description: 'One dataset evaluator on the mounted playground''s roster. ``name`` is user-controlled; sanitize at every model-visible boundary.' 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 nullable: true title: Title state: type: string const: approval-requested title: State default: approval-requested input: title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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). 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' ToolInputAvailablePart: properties: type: type: string pattern: ^tool- title: Type toolCallId: type: string title: Toolcallid title: type: string nullable: true title: Title state: type: string const: input-available title: State default: input-available input: nullable: true title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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. DatasetContext: properties: type: type: string const: dataset title: Type datasetNodeId: type: string title: Datasetnodeid datasetVersionNodeId: type: string nullable: true 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' nullable: true title: Model experimentId: type: string nullable: true 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.' HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError AssistantMetadataUIMessage: properties: id: type: string title: Id role: type: string enum: - system - user - assistant title: Role metadata: $ref: '#/components/schemas/AssistantMessageMetadata' nullable: true parts: items: anyOf: - $ref: '#/components/schemas/TextUIPart' - $ref: '#/components/schemas/ReasoningUIPart' - $ref: '#/components/schemas/ToolInputStreamingPart' - $ref: '#/components/schemas/ToolInputAvailablePart' - $ref: '#/components/schemas/ToolOutputAvailablePart' - $ref: '#/components/schemas/ToolOutputErrorPart' - $ref: '#/components/schemas/ToolApprovalRequestedPart' - $ref: '#/components/schemas/ToolApprovalRespondedPart' - $ref: '#/components/schemas/ToolOutputDeniedPart' - $ref: '#/components/schemas/DynamicToolInputStreamingPart' - $ref: '#/components/schemas/DynamicToolInputAvailablePart' - $ref: '#/components/schemas/DynamicToolOutputAvailablePart' - $ref: '#/components/schemas/DynamicToolOutputErrorPart' - $ref: '#/components/schemas/DynamicToolApprovalRequestedPart' - $ref: '#/components/schemas/DynamicToolApprovalRespondedPart' - $ref: '#/components/schemas/DynamicToolOutputDeniedPart' - $ref: '#/components/schemas/SourceUrlUIPart' - $ref: '#/components/schemas/SourceDocumentUIPart' - $ref: '#/components/schemas/FileUIPart' - $ref: '#/components/schemas/DataUIPart' - $ref: '#/components/schemas/StepStartUIPart' type: array title: Parts additionalProperties: false type: object required: - id - role - parts title: AssistantMetadataUIMessage description: '`UIMessage` with `metadata` narrowed to `AssistantMessageMetadata`.' ToolApprovalRequestedPart: properties: type: type: string pattern: ^tool- title: Type toolCallId: type: string title: Toolcallid title: type: string nullable: true title: Title state: type: string const: approval-requested title: State default: approval-requested input: nullable: true title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Callprovidermetadata approval: anyOf: - $ref: '#/components/schemas/ToolApprovalRequested' - $ref: '#/components/schemas/ToolApprovalResponded' - type: 'null' title: Approval additionalProperties: false type: object required: - type - toolCallId title: ToolApprovalRequestedPart description: Tool part in approval-requested state (awaiting user decision). ProjectContext: properties: type: type: string const: project title: Type projectNodeId: type: string title: Projectnodeid spanFilter: type: string nullable: true title: Spanfilter rootSpansOnly: type: boolean nullable: true 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).' PlaygroundExperimentScaffoldContext: properties: name: type: string nullable: true title: Name description: type: string nullable: true 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." 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. FileUIPart: properties: type: type: string const: file title: Type default: file mediaType: type: string title: Mediatype filename: type: string nullable: true title: Filename url: type: string title: Url providerMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Providermetadata additionalProperties: false type: object required: - mediaType - url title: FileUIPart description: A file part of a message. SubagentsContext: properties: type: type: string const: subagents title: Type enabled: type: boolean title: Enabled type: object required: - type - enabled title: SubagentsContext description: User's per-turn request to expose the subagent-spawning tool. DataUIPart: properties: type: type: string pattern: ^data- title: Type id: type: string nullable: true title: Id data: title: Data additionalProperties: false type: object required: - type - data title: DataUIPart description: Data part with dynamic type based on data name. 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 nullable: true title: Title state: type: string const: output-denied title: State default: output-denied input: title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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: DynamicToolOutputDeniedPart description: Dynamic tool part in output-denied state (tool was denied, terminal state). ToolApprovalRequested: properties: id: type: string title: Id additionalProperties: false type: object required: - id title: ToolApprovalRequested description: Tool approval in requested state (awaiting user response). _SummarizeResponse: properties: summary: type: string title: Summary type: object required: - summary title: _SummarizeResponse ToolOutputDeniedPart: properties: type: type: string pattern: ^tool- title: Type toolCallId: type: string title: Toolcallid title: type: string nullable: true title: Title state: type: string const: output-denied title: State default: output-denied input: nullable: true title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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). TextUIPart: properties: type: type: string const: text title: Type default: text text: type: string title: Text state: type: string enum: - streaming - done nullable: true title: State providerMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Providermetadata additionalProperties: false type: object required: - text title: TextUIPart description: A text part of a message. LlmEvaluatorContext: properties: type: type: string const: llm_evaluator title: Type evaluatorNodeId: type: string nullable: true title: Evaluatornodeid type: object required: - type title: LlmEvaluatorContext description: LLM-evaluator create/edit form mounted in the current browser route. ReasoningUIPart: properties: type: type: string const: reasoning title: Type default: reasoning text: type: string title: Text state: type: string enum: - streaming - done nullable: true title: State providerMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Providermetadata additionalProperties: false type: object required: - text title: ReasoningUIPart description: A reasoning part of a message. 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 CustomProviderModelSelection: properties: providerType: type: string const: custom title: Providertype providerId: type: string title: Providerid modelName: type: string title: Modelname type: object required: - providerType - providerId - modelName title: CustomProviderModelSelection description: Chat against a stored custom provider record. 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 nullable: true title: Title state: type: string const: input-available title: State default: input-available input: title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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. 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 nullable: true title: Title state: type: string const: output-available title: State default: output-available input: title: Input output: title: Output providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Callprovidermetadata preliminary: type: boolean nullable: true 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. 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 nullable: true title: Title state: type: string const: output-error title: State default: output-error input: title: Input errorText: type: string title: Errortext providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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. 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 nullable: true title: Filename providerMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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 _SummarizeRequest: properties: ingestTraces: type: boolean title: Ingesttraces default: false exportRemoteTraces: type: boolean title: Exportremotetraces default: false messages: items: $ref: '#/components/schemas/UIMessage' type: array title: Messages model: oneOf: - $ref: '#/components/schemas/CustomProviderModelSelection' - $ref: '#/components/schemas/BuiltInProviderModelSelection' title: Model discriminator: propertyName: providerType mapping: builtin: '#/components/schemas/BuiltInProviderModelSelection' custom: '#/components/schemas/CustomProviderModelSelection' type: object required: - messages - model title: _SummarizeRequest description: '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.' 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. 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 nullable: true title: Title state: type: string const: output-error title: State default: output-error input: nullable: true title: Input rawInput: nullable: true title: Rawinput errorText: type: string title: Errortext providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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. ToolInputStreamingPart: properties: type: type: string pattern: ^tool- title: Type toolCallId: type: string title: Toolcallid title: type: string nullable: true title: Title state: type: string const: input-streaming title: State default: input-streaming input: nullable: true title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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. 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' DynamicToolInputStreamingPart: 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 nullable: true title: Title state: type: string const: input-streaming title: State default: input-streaming input: nullable: true title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Callprovidermetadata approval: anyOf: - $ref: '#/components/schemas/ToolApprovalRequested' - $ref: '#/components/schemas/ToolApprovalResponded' - type: 'null' title: Approval additionalProperties: false type: object required: - toolName - toolCallId title: DynamicToolInputStreamingPart description: Dynamic tool part in input-streaming state. ChatSubmitMessage: properties: trigger: type: string const: submit-message title: Trigger default: submit-message id: type: string title: Id messages: items: $ref: '#/components/schemas/AssistantMetadataUIMessage' type: array title: Messages 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: - id - messages - model title: ChatSubmitMessage description: Submit message extended with Phoenix-specific fields. PlaygroundCustomProviderModelContext: properties: type: type: string const: custom title: Type default: custom customProviderId: type: string title: Customproviderid customProviderName: type: string title: Customprovidername provider: type: string title: Provider modelName: type: string title: Modelname type: object required: - customProviderId - customProviderName - provider - modelName title: PlaygroundCustomProviderModelContext description: Custom-provider playground model selection. AgentSpanContext: properties: type: type: string const: span title: Type projectNodeId: type: string nullable: true title: Projectnodeid spanNodeId: type: string nullable: true title: Spannodeid otelSpanId: type: string nullable: true title: Otelspanid type: object required: - type title: AgentSpanContext description: 'Span the user has selected. Exactly one of ``span_node_id`` (relay) or ``otel_span_id`` (OpenTelemetry hex) must be set. ``project_node_id`` is optional because a span can be selected from views outside a project route.' AssistantMessageMetadataTraceIds: properties: traceId: type: string title: Traceid rootSpanId: type: string title: Rootspanid type: object required: - traceId - rootSpanId title: AssistantMessageMetadataTraceIds ToolApprovalRespondedPart: properties: type: type: string pattern: ^tool- title: Type toolCallId: type: string title: Toolcallid title: type: string nullable: true title: Title state: type: string const: approval-responded title: State default: approval-responded input: nullable: true title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true title: Callprovidermetadata approval: anyOf: - $ref: '#/components/schemas/ToolApprovalRequested' - $ref: '#/components/schemas/ToolApprovalResponded' - type: 'null' title: Approval additionalProperties: false type: object required: - type - toolCallId title: ToolApprovalRespondedPart description: Tool part in approval-responded state (user approved/denied, execution pending). 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. PlaygroundContext: properties: type: type: string const: playground title: Type recordExperiments: type: boolean title: Recordexperiments default: true repetitions: type: integer title: Repetitions default: 1 nextExperimentScaffold: $ref: '#/components/schemas/PlaygroundExperimentScaffoldContext' nullable: true instances: items: $ref: '#/components/schemas/PlaygroundInstanceContext' type: array title: Instances evaluators: items: $ref: '#/components/schemas/PlaygroundEvaluatorContext' type: array title: Evaluators type: object required: - type title: PlaygroundContext description: Playground prompt editor state mounted in the current browser route. 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 nullable: true title: Title state: type: string const: approval-responded title: State default: approval-responded input: title: Input providerExecuted: type: boolean nullable: true title: Providerexecuted callProviderMetadata: additionalProperties: additionalProperties: true type: object type: object nullable: true 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). AssistantMessageMetadataUsage: properties: tokens: $ref: '#/components/schemas/AssistantMessageMetadataUsageTokens' promptDetails: $ref: '#/components/schemas/AssistantMessageMetadataUsageTokenDetails' nullable: true type: object required: - tokens title: AssistantMessageMetadataUsage 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 ModelProvider: type: string enum: - OPENAI - AZURE_OPENAI - ANTHROPIC - GOOGLE - DEEPSEEK - XAI - OLLAMA - AWS - CEREBRAS - FIREWORKS - GROQ - MOONSHOT - PERPLEXITY - TOGETHER title: ModelProvider 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 nullable: true 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. CodeEvaluatorContext: properties: type: type: string const: code_evaluator title: Type evaluatorNodeId: type: string nullable: true title: Evaluatornodeid type: object required: - type title: CodeEvaluatorContext description: Code-evaluator create/edit form mounted in the current browser route. AssistantMessageMetadata: properties: sessionId: type: string title: Sessionid trace: $ref: '#/components/schemas/AssistantMessageMetadataTraceIds' nullable: true usage: $ref: '#/components/schemas/AssistantMessageMetadataUsage' nullable: true type: object required: - sessionId title: AssistantMessageMetadata description: Wire schema for the chat stream's `message_metadata` payload.