---
title: "PUT /threads/{id}/messages/{messageId}/component-state"
method: PUT
path: "/threads/{id}/messages/{messageId}/component-state"
tags: ["threads"]
---

# PUT /threads/{id}/messages/{messageId}/component-state

`PUT /threads/{id}/messages/{messageId}/component-state`

## Path parameters

- `id` string, required
- `messageId` string, required

## Request body

- UpdateComponentStateRequest
  - `state` object, required

## Response `200`

- ThreadMessage
  - `parentMessageId` string — The id of the parent message, if the message was created during the generation of another message, such as during an agent call, MCP Elicitation, or MCP Sample
  - `metadata` object
  - `reasoning` string[] — Reasoning text from the LLM, if the model supports it.
  - `reasoningDurationMS` number — Duration of reasoning in milliseconds
  - `componentState` object, required
  - `toolCallRequest` ToolCallRequest
    - `tool_call_id` string — The unique id of the tool call, no longer used.
    - `parameters` ToolParameter[], required — The parameters of the function to call.
      - `parameterName` string, required
      - `parameterValue` object, required
    - `toolName` string, required — The name of the function to call.
  - `tool_call_id` string — The unique id of the tool call. This is filled in only if the tool call is a client-side tool call.
  - `actionType` 'tool_call' | 'tool_response' — Deprecated: use the role and the presence of tool calls to determine the action type
  - `error` string
  - `isCancelled` boolean — Whether the message has been cancelled
  - `additionalContext` object — Additional context to provide to the AI beyond the user query, such as the info about the current page the user is visiting.
  - `id` string, required
  - `threadId` string, required
  - `role` 'user' | 'assistant' | 'system' | 'tool', required
  - `content` ChatCompletionContentPart[], required
    - `type` 'text' | 'image_url' | 'input_audio' | 'resource', required — The type of content part
    - `text` string — Text content (when type is 'text')
    - `image_url` ImageUrl
      - `url` string, required
      - `detail` 'auto' | 'high' | 'low'
    - `input_audio` InputAudio
      - `data` string, required
      - `format` 'wav' | 'mp3', required
    - `resource` Resource
      - `uri` string — URI identifying the resource (e.g., file://, https://, s3://)
      - `name` string — Human-readable name for the resource
      - `description` string — Optional description of the resource
      - `mimeType` string — MIME type of the resource
      - `text` string — Inline text content (alternative to uri)
      - `blob` string — Base64-encoded blob data (alternative to uri or text)
      - `annotations` ResourceAnnotations
        - `audience` string[] — Target audience for this resource
        - `priority` number — Priority level for this resource
  - `component` ComponentDecisionV2
    - `props` object, required
    - `componentState` object, nullable, required
    - `toolCallRequest` ToolCallRequest
      - `tool_call_id` string — The unique id of the tool call, no longer used.
      - `parameters` ToolParameter[], required — The parameters of the function to call.
        - `parameterName` string, required
        - `parameterValue` object, required
      - `toolName` string, required — The name of the function to call.
    - `toolCallId` string — The unique id of the tool call. This is filled in whether the tool call is a server-side or client-side tool call.
    - `componentName` string, nullable, required
    - `message` string, required
    - `statusMessage` string
    - `completionStatusMessage` string
  - `tool_calls` object[]
  - `createdAt` string, date-time, required

---

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