> ## 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.

# Chat App API

> API for Chatbot and Agent apps, covering chat messages, conversation management, file uploads, voice, and annotations

[Chatbot apps](/en/cloud/use-dify/build/chatbot) (`chat` mode) and [Agent apps](/en/cloud/use-dify/build/agent) (`agent-chat` mode) share the same endpoints to send messages, manage conversations, handle files, and retrieve app settings. Only the streamed reply differs: Chatbot apps stream the reply as `message` events, while Agent apps stream `agent_thought` and `agent_message` events.

<Info>
  Authentication, the base URL, and the `user` field that scopes end-user data are covered in [Get Started](/en/api-reference/guides/get-started) and [End User Identity](/en/api-reference/guides/end-user-identity).
</Info>

## Send Messages and Stream Replies

* **[Send Chat Message](/en/api-reference/chat-messages/send-chat-message)**: send a query to your Chatbot or Agent app. Blocking mode returns the full reply once it finishes; Agent apps support streaming mode only.
* **[Stop Chat Message Generation](/en/api-reference/chat-messages/stop-chat-message-generation)**: interrupt a streaming reply before it finishes.
* **[Get Next Suggested Questions](/en/api-reference/chat-messages/get-next-suggested-questions)**: propose follow-up questions after a reply completes, based on the conversation so far.

## Manage Conversations

Conversations created through the API stay isolated from conversations started in the app's WebApp.

* **[List Conversations](/en/api-reference/conversations/list-conversations)**: the current user's conversations, ordered by most recent activity.
* **[List Conversation Messages](/en/api-reference/conversations/list-conversation-messages)**: one conversation's message history, for a scrolling chat UI.
* **[Rename Conversation](/en/api-reference/conversations/rename-conversation)**: set or auto-generate a display name.
* **[Delete Conversation](/en/api-reference/conversations/delete-conversation)**: remove a conversation.
* **[List Conversation Variables](/en/api-reference/conversations/list-conversation-variables)**: read the values the session persists across turns.
* **[Update Conversation Variable](/en/api-reference/conversations/update-conversation-variable)**: change one of those values directly.

## Handle Files

* **[Upload File](/en/api-reference/files/upload-file)**: upload an image, document, audio, or video file for [Send Chat Message](/en/api-reference/chat-messages/send-chat-message) to reference. Files are scoped to the uploading end user.
* **[Download File](/en/api-reference/files/download-file)**: preview or download an uploaded file, as long as it belongs to a message in your app.
* **[Get End User Info](/en/api-reference/end-users/get-end-user-info)**: look up an end user's details from an end-user ID, such as the `created_by` in the Upload File response.

## Transcribe and Synthesize Speech

* **[Convert Audio to Text](/en/api-reference/audio/convert-audio-to-text)**: transcribe an uploaded audio file (MP3, M4A, WAV, AMR, or MPGA, up to 30 MB) so end users can speak their input instead of typing it.
* **[Convert Text to Audio](/en/api-reference/audio/convert-text-to-audio)**: synthesize a reply back into speech.

## Retrieve App Info and Settings

* **[Get App Info](/en/api-reference/applications/get-app-info)**: the app's name, description, tags, and mode.
* **[Get App Parameters](/en/api-reference/applications/get-app-parameters)**: the fields your calls send in `inputs` (names, types, defaults) plus the app's feature switches—the basis for building requests or a client UI.
* **[Get App Meta](/en/api-reference/applications/get-app-meta)**: tool icons and other configuration metadata.
* **[Get App WebApp Settings](/en/api-reference/applications/get-app-webapp-settings)**: the WebApp's site configuration, theme, and customization options.

## Collect Feedback

* **[Submit Message Feedback](/en/api-reference/feedback/submit-message-feedback)**: end users rate a reply as `like` or `dislike`, with an optional text comment.
* **[List App Feedbacks](/en/api-reference/feedback/list-app-feedbacks)**: every feedback submitted across the app, from both end users and admins.

## Manage Annotations

Annotations pair a question with a fixed answer that the app returns directly instead of generating a new response:

* **[Create Annotation](/en/api-reference/annotations/create-annotation)**, **[List Annotations](/en/api-reference/annotations/list-annotations)**, **[Update Annotation](/en/api-reference/annotations/update-annotation)**, **[Delete Annotation](/en/api-reference/annotations/delete-annotation)**: manage the annotation set.
* **[Configure Annotation Reply](/en/api-reference/annotations/configure-annotation-reply)**: turn annotation matching on or off. The change runs asynchronously.
* **[Get Annotation Reply Job Status](/en/api-reference/annotations/get-annotation-reply-job-status)**: poll with the returned job ID to confirm the change finished.
