> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-fix-template-upload-size-guidance.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Conversation Variable

> **Available for**: Chatflow, Chatbot, Legacy Agent apps.

Updates a conversation variable's value. The new value must match the variable's existing type.



## OpenAPI

````yaml /en/api-reference/openapi_service.json put /conversations/{conversation_id}/variables/{variable_id}
openapi: 3.0.1
info:
  description: >-
    REST API for Dify applications and knowledge bases. Application endpoints
    authenticate with an app API key; knowledge endpoints authenticate with a
    dataset API key.
  title: Dify Service API
  version: 1.0.0
servers:
  - description: >-
      Base URL of the Dify Service API. For self-hosted deployments, replace it
      with your own API base URL.
    url: https://{api_base_url}
    variables:
      api_base_url:
        default: api.dify.ai/v1
        description: Host and path of the API base URL, without the `https://` prefix.
security:
  - ApiKeyAuth: []
tags:
  - description: Operations related to chat messages and interactions.
    name: Chat Messages
  - description: File upload and preview operations.
    name: Files
  - description: Operations related to end user information.
    name: End Users
  - description: User feedback operations.
    name: Feedback
  - description: Operations related to managing conversations.
    name: Conversations
  - description: Text-to-Speech and Speech-to-Text operations.
    name: Audio
  - description: Operations to retrieve application settings and information.
    name: Applications
  - description: Operations related to managing annotations for direct replies.
    name: Annotations
  - description: Endpoints for resuming paused workflows that require human input.
    name: Human Input
  - description: Operations for executing and managing workflows.
    name: Workflow Runs
  - description: Operations related to text generation and completion.
    name: Completion Messages
  - description: >-
      Operations for managing knowledge bases, including creation,
      configuration, and retrieval.
    name: Knowledge Bases
  - description: >-
      Operations for creating, updating, and managing documents within a
      knowledge base.
    name: Documents
  - description: Operations for managing document chunks and child chunks.
    name: Chunks
  - description: >-
      Operations for managing knowledge base metadata fields and document
      metadata values.
    name: Metadata
  - description: Operations for managing knowledge base tags and tag bindings.
    name: Tags
  - description: Operations for retrieving available models.
    name: Models
  - description: >-
      Operations for managing and running knowledge pipelines, including
      datasource plugins and pipeline execution.
    name: Knowledge Pipeline
paths:
  /conversations/{conversation_id}/variables/{variable_id}:
    put:
      tags:
        - Conversations
      summary: Update Conversation Variable
      description: >-
        **Available for**: Chatflow, Chatbot, Legacy Agent apps.


        Updates a conversation variable's value. The new value must match the
        variable's existing type.
      operationId: updateChatConversationVariable
      parameters:
        - description: >-
            ID of the conversation that owns the variable. Get conversation IDs
            from [List
            Conversations](/en/api-reference/conversations/list-conversations).
          in: path
          name: conversation_id
          required: true
          schema:
            format: uuid
            type: string
        - description: >-
            ID of the variable to update. Get variable IDs from [List
            Conversation
            Variables](/en/api-reference/conversations/list-conversation-variables).
          in: path
          name: variable_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            examples:
              updateStringVariable:
                summary: Request Example
                value:
                  user: abc-123
                  value: new value
            schema:
              $ref: '#/components/schemas/ConversationVariableUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              examples:
                updatedVariable:
                  summary: Response Example
                  value:
                    created_at: 1705407629
                    description: User preference setting
                    id: a1b2c3d4-5678-90ab-cdef-1234567890ab
                    name: user_preference
                    updated_at: 1705411229
                    value: new value
                    value_type: string
              schema:
                $ref: '#/components/schemas/ConversationVariableItem'
          description: Variable updated successfully.
        '400':
          content:
            application/json:
              examples:
                not_chat_app:
                  summary: not_chat_app
                  value:
                    code: not_chat_app
                    message: Please check if your app mode matches the right API route.
                    status: 400
                type_mismatch:
                  summary: bad_request
                  value:
                    code: bad_request
                    message: >-
                      Type mismatch: variable 'user_preference' expects string,
                      but got number type
                    status: 400
          description: |-
            - `not_chat_app` : App mode does not match the API route.
            - `bad_request` : Variable value type mismatch.
        '404':
          content:
            application/json:
              examples:
                conversation_not_exists:
                  summary: not_found
                  value:
                    code: not_found
                    message: Conversation Not Exists.
                    status: 404
                variable_not_exists:
                  summary: not_found
                  value:
                    code: not_found
                    message: Conversation Variable Not Exists.
                    status: 404
          description: |-
            - `not_found` : Conversation does not exist.
            - `not_found` : Conversation variable does not exist.
components:
  schemas:
    ConversationVariableUpdateRequest:
      description: Request body for updating a conversation variable.
      properties:
        user:
          description: >-
            End-user identifier, defined by your app and unique within it. See
            [End User Identity](/en/api-reference/guides/end-user-identity).
          type: string
        value:
          description: >-
            The new value for the variable. Must match the variable's expected
            type.
      required:
        - value
      type: object
    ConversationVariableItem:
      properties:
        created_at:
          description: Creation timestamp.
          format: int64
          type: integer
        description:
          description: Variable description.
          type: string
        id:
          description: Variable ID.
          format: uuid
          type: string
        name:
          description: Variable name.
          type: string
        updated_at:
          description: Last update timestamp.
          format: int64
          type: integer
        value:
          description: Variable value (can be a JSON string for complex types).
          type: string
        value_type:
          description: >-
            Variable value type. Possible values: `string`, `number`, `object`,
            `secret`, `file`, `boolean`, `array[any]`, `array[string]`,
            `array[number]`, `array[object]`, `array[file]`, `array[boolean]`.
          type: string
      type: object
  securitySchemes:
    ApiKeyAuth:
      bearerFormat: API_KEY
      description: >-
        Every request authenticates with an API key: `Authorization: Bearer
        {API_KEY}`. App endpoints take an app API key; knowledge endpoints take
        a knowledge base API key ([Get
        Started](/en/api-reference/guides/get-started)).


        Keep keys server-side; never embed them in client code. Requests with a
        missing or invalid key fail with HTTP `401` (`unauthorized`).
      scheme: bearer
      type: http

````