> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobilerun.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rename, archive, or pin a named chat session

> Rename, change status, and/or pin. Title updates apply best-effort. Archiving always clears the pinned flag. `title` is rejected with 409 `code: "session_title_managed_by_workflow"` when this chat is bound to a workflow — a bound chat's title is managed by the workflow. Other fields (description, status, pinned) remain updateable; archiving a bound chat stays allowed.



## OpenAPI

````yaml /api-reference/mobilerun-va-chat.yaml patch /assistant/chat/sessions/{id}
openapi: 3.1.0
info:
  title: Mobilerun VA Chat
  version: v1
servers:
  - description: Droidrun Cloud API
    url: https://api.mobilerun.ai/v1
security:
  - bearerAuth: []
paths:
  /assistant/chat/sessions/{id}:
    patch:
      tags:
        - Chat
      summary: Rename, archive, or pin a named chat session
      description: >-
        Rename, change status, and/or pin. Title updates apply best-effort.
        Archiving always clears the pinned flag. `title` is rejected with 409
        `code: "session_title_managed_by_workflow"` when this chat is bound to a
        workflow — a bound chat's title is managed by the workflow. Other fields
        (description, status, pinned) remain updateable; archiving a bound chat
        stays allowed.
      operationId: chatSessionsUpdate
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                description:
                  maxLength: 280
                  type:
                    - string
                    - 'null'
                pinned:
                  type: boolean
                status:
                  enum:
                    - active
                    - archived
                  type: string
                title:
                  maxLength: 120
                  minLength: 1
                  type: string
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  session:
                    properties:
                      agent:
                        type:
                          - string
                          - 'null'
                      basePromptTokens:
                        type:
                          - number
                          - 'null'
                      contextExhaustedAt:
                        type:
                          - string
                          - 'null'
                      costCents:
                        type: number
                      costUsd:
                        type: number
                      createdAt:
                        type: string
                      createdBy:
                        type:
                          - string
                          - 'null'
                      description:
                        type:
                          - string
                          - 'null'
                      id:
                        type: string
                      lastActiveAt:
                        type: string
                      peakPromptTokens:
                        type:
                          - number
                          - 'null'
                      pinned:
                        type: boolean
                      promptStatus:
                        enum:
                          - ready
                          - machine_replaced
                        type: string
                      status:
                        type: string
                      title:
                        type: string
                      turnActive:
                        type: boolean
                      turnStartedAt:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - title
                      - description
                      - agent
                      - status
                      - createdAt
                      - lastActiveAt
                      - turnActive
                      - turnStartedAt
                      - pinned
                      - costCents
                      - costUsd
                      - peakPromptTokens
                      - basePromptTokens
                      - contextExhaustedAt
                      - promptStatus
                    type: object
                required:
                  - session
                type: object
          description: Updated session
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                required:
                  - message
                type: object
          description: Unknown sessionId for this user
        '409':
          content:
            application/json:
              schema:
                properties:
                  code:
                    enum:
                      - session_title_managed_by_workflow
                    type: string
                  message:
                    type: string
                required:
                  - message
                type: object
          description: >-
            Cannot archive a session with an in-flight turn. Cannot rename a
            workflow-bound session's title (`code:
            "session_title_managed_by_workflow"`).
        '500':
          description: Internal Server Error
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Mobilerun from '@mobilerun/sdk';

            const client = new Mobilerun({
              apiKey: process.env['MOBILERUN_CLOUD_API_KEY'], // This is the default and can be omitted
            });

            const conversation = await client.assistant.conversations.update(
              '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
            );

            console.log(conversation.session);
        - lang: Python
          source: |-
            import os
            from mobilerun_sdk import Mobilerun

            client = Mobilerun(
                api_key=os.environ.get("MOBILERUN_CLOUD_API_KEY"),  # This is the default and can be omitted
            )
            conversation = client.assistant.conversations.update(
                id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
            )
            print(conversation.session)
components:
  securitySchemes:
    bearerAuth:
      bearerFormat: Opaque
      description: Bearer token via Authorization header
      scheme: bearer
      type: http

````