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

# Send an "agent is typing" indicator

> Broadcast an ephemeral "agent is typing" indicator to the live chat widget for a specific conversation. Use this to show a typing animation in the messenger while your agent composes a reply in your own interface. The signal is not persisted: send it with isTyping=true while the agent is typing and isTyping=false when they stop or send a message. To avoid noise, send true at most once every ~5 seconds. The indicator is hidden automatically after 10 seconds without a fresh signal, so a missed false is self-healing. userId is optional — omit it to attribute the typing to the workspace owner.



## OpenAPI

````yaml post /api/v2/conversations/{conversationId}/typing
openapi: 3.0.1
info:
  title: LiveChatAI API v2
  description: >-
    LiveChatAI API v2 - Build powerful AI-powered customer support experiences.
    This API follows REST principles with predictable, resource-oriented URLs,
    JSON responses, and standard HTTP methods.
  version: 2.0.0
servers:
  - url: https://app.livechatai.com
    description: Production server
security:
  - bearerAuth: []
paths:
  /api/v2/conversations/{conversationId}/typing:
    post:
      tags:
        - Conversations
      summary: Send an "agent is typing" indicator
      description: >-
        Broadcast an ephemeral "agent is typing" indicator to the live chat
        widget for a specific conversation. Use this to show a typing animation
        in the messenger while your agent composes a reply in your own
        interface. The signal is not persisted: send it with isTyping=true while
        the agent is typing and isTyping=false when they stop or send a message.
        To avoid noise, send true at most once every ~5 seconds. The indicator
        is hidden automatically after 10 seconds without a fresh signal, so a
        missed false is self-healing. userId is optional — omit it to attribute
        the typing to the workspace owner.
      parameters:
        - in: path
          name: conversationId
          schema:
            type: string
            example: chat_1234567890
          required: true
          description: Unique identifier of the conversation
      requestBody:
        required: true
        description: Typing signal details
        content:
          application/json:
            schema:
              type: object
              required:
                - isTyping
              properties:
                userId:
                  type: string
                  example: user_1234567890
                  description: >-
                    ID of the agent who is typing. Optional — defaults to the
                    workspace owner when omitted.
                isTyping:
                  type: boolean
                  example: true
                  description: true while composing, false when the agent stops typing
      responses:
        '200':
          description: Typing signal broadcast successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
        '400':
          description: Bad request - Missing or invalid parameters
        '401':
          description: Unauthorized access
        '403':
          description: Access denied - Invalid conversation access
        '404':
          description: Conversation not found
        '500':
          description: Internal server error occurred
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````