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

# Update Annotation

> Updates the question and answer of an existing annotation.



## OpenAPI

````yaml /en/api-reference/openapi_chatflow.json put /apps/annotations/{annotation_id}
openapi: 3.0.1
info:
  title: Chatflow App API
  description: >-
    Chatflow applications support session persistence, allowing previous chat
    history to be used as context for responses. Chatflow apps use the
    `advanced-chat` mode, providing workflow-level streaming events for detailed
    execution tracking including node starts, finishes, iterations, and workflow
    lifecycle.
  version: 1.0.0
servers:
  - url: '{api_base_url}'
    description: >-
      The base URL for the Chatflow App API. Replace {api_base_url} with the
      actual API base URL provided for your application.
    variables:
      api_base_url:
        default: https://api.dify.ai/v1
        description: Actual base URL of the API
security:
  - ApiKeyAuth: []
tags:
  - name: Chatflows
    description: >-
      Operations for Chatflow apps, including chat messaging, workflow run
      details, and event streaming.
  - name: Files
    description: File upload and preview operations.
  - name: End Users
    description: Operations related to end user information.
  - name: Feedback
    description: User feedback operations.
  - name: Conversations
    description: Operations related to managing conversations.
  - name: TTS
    description: Text-to-Speech and Speech-to-Text operations.
  - name: Applications
    description: Operations to retrieve application settings and information.
  - name: Annotations
    description: Operations related to managing annotations for direct replies.
  - name: Human Input
    description: Endpoints for resuming paused workflows that require human input.
paths:
  /apps/annotations/{annotation_id}:
    put:
      tags:
        - Annotations
      summary: Update Annotation
      description: Updates the question and answer of an existing annotation.
      operationId: updateAdvancedAnnotation
      parameters:
        - name: annotation_id
          in: path
          required: true
          description: The unique identifier of the annotation to update.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAnnotationRequest'
            examples:
              updateAnnotation:
                summary: Request Example
                value:
                  question: What is Dify?
                  answer: >-
                    Dify is an open-source LLM application development platform
                    for building AI-powered apps.
      responses:
        '200':
          description: Annotation updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnnotationItem'
              examples:
                updatedAnnotation:
                  summary: Response Example
                  value:
                    id: a1b2c3d4-5678-90ab-cdef-1234567890ab
                    question: What is Dify?
                    answer: >-
                      Dify is an open-source LLM application development
                      platform for building AI-powered apps.
                    hit_count: 5
                    created_at: 1705407629
        '403':
          description: '`forbidden` : Insufficient permissions to edit annotations.'
          content:
            application/json:
              examples:
                forbidden:
                  summary: forbidden
                  value:
                    status: 403
                    code: forbidden
                    message: Forbidden.
        '404':
          description: '`not_found` : Annotation does not exist.'
          content:
            application/json:
              examples:
                not_found:
                  summary: not_found
                  value:
                    status: 404
                    code: not_found
                    message: Annotation not found.
components:
  schemas:
    UpdateAnnotationRequest:
      type: object
      description: Request body for updating an annotation.
      required:
        - question
        - answer
      properties:
        question:
          type: string
          description: Updated annotation question.
        answer:
          type: string
          description: Updated annotation answer.
    AnnotationItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique annotation identifier.
        question:
          type: string
          nullable: true
          description: Question text that triggers this annotation.
        answer:
          type: string
          nullable: true
          description: Predefined answer returned when the annotation is matched.
        hit_count:
          type: integer
          nullable: true
          description: >-
            Number of times this annotation has been matched and returned as a
            reply.
        created_at:
          type: integer
          format: int64
          nullable: true
          description: Creation timestamp (Unix epoch seconds).
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API_KEY
      description: >-
        API Key authentication. For all API requests, include your API Key in
        the `Authorization` HTTP Header, prefixed with `Bearer `. Example:
        `Authorization: Bearer {API_KEY}`. **Strongly recommend storing your API
        Key on the server-side, not shared or stored on the client-side, to
        avoid possible API-Key leakage that can lead to serious consequences.**

````