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

# Chatflow App API

> API for Chatflow apps, covering chat messages, workflow-level streaming, conversation management, and Human Input pauses

[Chatflow apps](/en/cloud/use-dify/build/workflow-chatflow) run in `advanced-chat` mode, streaming workflow-level events (node starts, finishes, iterations, and pauses) alongside the reply. Previous turns persist as context, so later messages can reference earlier ones.

<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 Chatflow app. Streaming mode carries workflow and node events alongside the answer text; blocking mode returns once the run finishes.
* **[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

* **[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.

## Pause for Human Input

When a run reaches a [Human Input node](/en/cloud/use-dify/nodes/human-input) whose delivery method is WebApp, complete the pause over the API:

<Steps>
  <Step title="Listen for the pause">
    The event stream emits `human_input_required` carrying a `form_token` and the run's `workflow_run_id`, then ends with the `workflow_paused` event.
  </Step>

  <Step title="Fetch the form">
    Load the form's contents with [Get Human Input Form](/en/api-reference/human-input/get-human-input-form), using the `form_token`.
  </Step>

  <Step title="Submit the response">
    Send the recipient's input with [Submit Human Input Form](/en/api-reference/human-input/submit-human-input-form). Submitting resumes the run.
  </Step>

  <Step title="Resume the stream">
    Open a new stream with [Stream Workflow Events](/en/api-reference/workflow-runs/stream-workflow-events), using the `workflow_run_id` from the paused stream, and follow the remaining events through the final answer.
  </Step>
</Steps>

For file-attached submissions and the full event sequence, see the [Human Input Flow](/en/api-reference/guides/human-input-flow) guide.

## Inspect Workflow Runs

* **[Get Workflow Run Detail](/en/api-reference/workflow-runs/get-workflow-run-detail)**: a run's status and outputs, by the `workflow_run_id` that appears in the workflow and node events streamed alongside a chat reply.
* **[List Workflow Logs](/en/api-reference/workflow-runs/list-workflow-logs)**: run-level summaries covering status, token usage, step count, and timing, rather than a node-by-node execution log.

## 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 and Annotations

* **[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.

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.
