dify/api/openapi/markdown/web-swagger.md
Asuka Minato 38a419d073
ci: auto gen api doc and download link (#35919)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: WH-2099 <wh2099@pm.me>
2026-05-09 03:01:47 +00:00

27 KiB

Web API

Public APIs for web applications including file uploads, chat interactions, and app management

Version: 1.0

Security

Bearer

apiKey API Key
Description Type: Bearer {your-api-key}
In header
Name Authorization

web

Web application API operations

/audio-to-text

POST

Summary

Convert audio to text

Description

Convert audio file to text using speech-to-text service.

Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
413 Audio file too large
415 Unsupported audio type
500 Internal Server Error

/chat-messages

POST

Description

Create a chat message for conversational applications.

Parameters
Name Located in Description Required Schema
payload body Yes ChatMessagePayload
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 App Not Found
500 Internal Server Error

/chat-messages/{task_id}/stop

POST

Description

Stop a running chat message task.

Parameters
Name Located in Description Required Schema
task_id path Task ID to stop Yes string
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 Task Not Found
500 Internal Server Error

/completion-messages

POST

Description

Create a completion message for text generation applications.

Parameters
Name Located in Description Required Schema
payload body Yes CompletionMessagePayload
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 App Not Found
500 Internal Server Error

/completion-messages/{task_id}/stop

POST

Description

Stop a running completion message task.

Parameters
Name Located in Description Required Schema
task_id path Task ID to stop Yes string
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 Task Not Found
500 Internal Server Error

/conversations

GET

Description

Retrieve paginated list of conversations for a chat application.

Parameters
Name Located in Description Required Schema
last_id query Last conversation ID for pagination No string
limit query Number of conversations to return (1-100) No integer
pinned query Filter by pinned status No string
sort_by query Sort order No string
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 App Not Found or Not a Chat App
500 Internal Server Error

/conversations/{c_id}

DELETE

Description

Delete a specific conversation.

Parameters
Name Located in Description Required Schema
c_id path Conversation UUID Yes string
Responses
Code Description
204 Conversation deleted successfully
400 Bad Request
401 Unauthorized
403 Forbidden
404 Conversation Not Found or Not a Chat App
500 Internal Server Error

/conversations/{c_id}/name

POST

Description

Rename a specific conversation with a custom name or auto-generate one.

Parameters
Name Located in Description Required Schema
c_id path Conversation UUID Yes string
auto_generate query Auto-generate conversation name No boolean
name query New conversation name No string
Responses
Code Description
200 Conversation renamed successfully
400 Bad Request
401 Unauthorized
403 Forbidden
404 Conversation Not Found or Not a Chat App
500 Internal Server Error

/conversations/{c_id}/pin

PATCH

Description

Pin a specific conversation to keep it at the top of the list.

Parameters
Name Located in Description Required Schema
c_id path Conversation UUID Yes string
Responses
Code Description
200 Conversation pinned successfully
400 Bad Request
401 Unauthorized
403 Forbidden
404 Conversation Not Found or Not a Chat App
500 Internal Server Error

/conversations/{c_id}/unpin

PATCH

Description

Unpin a specific conversation to remove it from the top of the list.

Parameters
Name Located in Description Required Schema
c_id path Conversation UUID Yes string
Responses
Code Description
200 Conversation unpinned successfully
400 Bad Request
401 Unauthorized
403 Forbidden
404 Conversation Not Found or Not a Chat App
500 Internal Server Error

/email-code-login

POST

Description

Send email verification code for login

Parameters
Name Located in Description Required Schema
payload body Yes EmailCodeLoginSendPayload
Responses
Code Description
200 Email code sent successfully
400 Bad request - invalid email format
404 Account not found

/email-code-login/validity

POST

Description

Verify email code and complete login

Parameters
Name Located in Description Required Schema
payload body Yes EmailCodeLoginVerifyPayload
Responses
Code Description
200 Email code verified and login successful
400 Bad request - invalid code or token
401 Invalid token or expired code
404 Account not found

/files/upload

POST

Summary

Upload a file for use in web applications

Description

Upload a file for use in web applications Accepts file uploads for use within web applications, supporting multiple file types with automatic validation and storage.

Args: app_model: The associated application model end_user: The end user uploading the file

Form Parameters: file: The file to upload (required) source: Optional source type (datasets or None)

Returns: dict: File information including ID, URL, and metadata int: HTTP status code 201 for success

Raises: NoFileUploadedError: No file provided in request TooManyFilesError: Multiple files provided (only one allowed) FilenameNotExistsError: File has no filename FileTooLargeError: File exceeds size limit UnsupportedFileTypeError: File type not supported

Responses
Code Description Schema
201 File uploaded successfully FileResponse
400 Bad request - invalid file or parameters
413 File too large
415 Unsupported file type

/forgot-password

POST

Description

Send password reset email

Parameters
Name Located in Description Required Schema
payload body Yes ForgotPasswordSendPayload
Responses
Code Description
200 Password reset email sent successfully
400 Bad request - invalid email format
404 Account not found
429 Too many requests - rate limit exceeded

/forgot-password/resets

POST

Description

Reset user password with verification token

Parameters
Name Located in Description Required Schema
payload body Yes ForgotPasswordResetPayload
Responses
Code Description
200 Password reset successfully
400 Bad request - invalid parameters or password mismatch
401 Invalid or expired token
404 Account not found

/forgot-password/validity

POST

Description

Verify password reset token validity

Parameters
Name Located in Description Required Schema
payload body Yes ForgotPasswordCheckPayload
Responses
Code Description
200 Token is valid
400 Bad request - invalid token format
401 Invalid or expired token

/form/human_input/{form_token}

GET

Summary

Get human input form definition by token

Description

GET /api/form/human_input/<form_token>

Parameters
Name Located in Description Required Schema
form_token path Yes string
Responses
Code Description
200 Success

POST

Summary

Submit human input form by token

Description

POST /api/form/human_input/<form_token>

Request body: { "inputs": { "content": "User input content" }, "action": "Approve" }

Parameters
Name Located in Description Required Schema
form_token path Yes string
Responses
Code Description
200 Success

/login

POST

Summary

Authenticate user and login

Description

Authenticate user for web application access

Parameters
Name Located in Description Required Schema
payload body Yes LoginPayload
Responses
Code Description
200 Authentication successful
400 Bad request - invalid email or password format
401 Authentication failed - email or password mismatch
403 Account banned or login disabled
404 Account not found

/login/status

GET

Description

Check login status

Responses
Code Description
200 Login status
401 Login status

/logout

POST

Description

Logout user from web application

Responses
Code Description
200 Logout successful

/messages

GET

Description

Retrieve paginated list of messages from a conversation in a chat application.

Parameters
Name Located in Description Required Schema
conversation_id query Conversation UUID Yes string
first_id query First message ID for pagination No string
limit query Number of messages to return (1-100) No integer
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 Conversation Not Found or Not a Chat App
500 Internal Server Error

/messages/{message_id}/feedbacks

POST

Description

Submit feedback (like/dislike) for a specific message.

Parameters
Name Located in Description Required Schema
message_id path Message UUID Yes string
content query Feedback content No string
rating query Feedback rating No string
Responses
Code Description
200 Feedback submitted successfully
400 Bad Request
401 Unauthorized
403 Forbidden
404 Message Not Found
500 Internal Server Error

/messages/{message_id}/more-like-this

GET

Description

Generate a new completion similar to an existing message (completion apps only).

Parameters
Name Located in Description Required Schema
message_id path Yes string
payload body Yes MessageMoreLikeThisQuery
Responses
Code Description
200 Success
400 Bad Request - Not a completion app or feature disabled
401 Unauthorized
403 Forbidden
404 Message Not Found
500 Internal Server Error

/messages/{message_id}/suggested-questions

GET

Description

Get suggested follow-up questions after a message (chat apps only).

Parameters
Name Located in Description Required Schema
message_id path Message UUID Yes string
Responses
Code Description
200 Success
400 Bad Request - Not a chat app or feature disabled
401 Unauthorized
403 Forbidden
404 Message Not Found or Conversation Not Found
500 Internal Server Error

/meta

GET

Summary

Get app meta

Description

Retrieve the metadata for a specific app.

Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 App Not Found
500 Internal Server Error

/parameters

GET

Summary

Retrieve app parameters

Description

Retrieve the parameters for a specific app.

Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 App Not Found
500 Internal Server Error

/passport

GET

Description

Get authentication passport for web application access

Responses
Code Description
200 Passport retrieved successfully
401 Unauthorized - missing app code or invalid authentication
404 Application or user not found

/remote-files/upload

POST

Summary

Upload a file from a remote URL

Description

Upload a file from a remote URL Downloads a file from the provided remote URL and uploads it to the platform storage for use in web applications.

Args: app_model: The associated application model end_user: The end user making the request

JSON Parameters: url: The remote URL to download the file from (required)

Returns: dict: File information including ID, signed URL, and metadata int: HTTP status code 201 for success

Raises: RemoteFileUploadError: Failed to fetch file from remote URL FileTooLargeError: File exceeds size limit UnsupportedFileTypeError: File type not supported

Responses
Code Description Schema
201 Remote file uploaded successfully FileWithSignedUrl
400 Bad request - invalid URL or parameters
413 File too large
415 Unsupported file type
500 Failed to fetch remote file

/remote-files/{url}

GET

Summary

Get information about a remote file

Description

Get information about a remote file Retrieves basic information about a file located at a remote URL, including content type and content length.

Args: app_model: The associated application model end_user: The end user making the request url: URL-encoded path to the remote file

Returns: dict: Remote file information including type and length

Raises: HTTPException: If the remote file cannot be accessed

Parameters
Name Located in Description Required Schema
url path Yes string
Responses
Code Description Schema
200 Remote file information retrieved successfully RemoteFileInfo
400 Bad request - invalid URL
404 Remote file not found
500 Failed to fetch remote file

/saved-messages

GET

Description

Retrieve paginated list of saved messages for a completion application.

Parameters
Name Located in Description Required Schema
last_id query Last message ID for pagination No string
limit query Number of messages to return (1-100) No integer
Responses
Code Description
200 Success
400 Bad Request - Not a completion app
401 Unauthorized
403 Forbidden
404 App Not Found
500 Internal Server Error

POST

Description

Save a specific message for later reference.

Parameters
Name Located in Description Required Schema
message_id query Message UUID to save Yes string
Responses
Code Description
200 Message saved successfully
400 Bad Request - Not a completion app
401 Unauthorized
403 Forbidden
404 Message Not Found
500 Internal Server Error

/saved-messages/{message_id}

DELETE

Description

Remove a message from saved messages.

Parameters
Name Located in Description Required Schema
message_id path Message UUID to delete Yes string
Responses
Code Description
204 Message removed successfully
400 Bad Request - Not a completion app
401 Unauthorized
403 Forbidden
404 Message Not Found
500 Internal Server Error

/site

GET

Summary

Retrieve app site info

Description

Retrieve app site information and configuration.

Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 App Not Found
500 Internal Server Error

/system-features

GET

Summary

Get system feature flags and configuration

Description

Get system feature flags and configuration Returns the current system feature flags and configuration that control various functionalities across the platform.

Returns: dict: System feature configuration object

This endpoint is akin to the SystemFeatureApi endpoint in api/controllers/console/feature.py, except it is intended for use by the web app, instead of the console dashboard.

NOTE: This endpoint is unauthenticated by design, as it provides system features data required for webapp initialization.

Authentication would create circular dependency (can't authenticate without webapp loading).

Only non-sensitive configuration data should be returned by this endpoint.

Responses
Code Description
200 System features retrieved successfully
500 Internal server error

/text-to-audio

POST

Summary

Convert text to audio

Description

Convert text to audio using text-to-speech service.

Parameters
Name Located in Description Required Schema
payload body Yes TextToAudioPayload
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error

/webapp/access-mode

GET

Description

Retrieve the access mode for a web application (public or restricted).

Parameters
Name Located in Description Required Schema
appCode query Application code No string
appId query Application ID No string
Responses
Code Description
200 Success
400 Bad Request
500 Internal Server Error

/webapp/permission

GET

Description

Check if user has permission to access a web application.

Parameters
Name Located in Description Required Schema
appId query Application ID Yes string
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
500 Internal Server Error

/workflows/run

POST

Summary

Run workflow

Description

Execute a workflow with provided inputs and files.

Parameters
Name Located in Description Required Schema
payload body Yes WorkflowRunPayload
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 App Not Found
500 Internal Server Error

/workflows/tasks/{task_id}/stop

POST

Summary

Stop workflow task

Description

Stop a running workflow task.

Parameters
Name Located in Description Required Schema
task_id path Task ID to stop Yes string
Responses
Code Description
200 Success
400 Bad Request
401 Unauthorized
403 Forbidden
404 Task Not Found
500 Internal Server Error

default

Default namespace

/workflow/{task_id}/events

GET

Summary

Get workflow execution events stream after resume

Description

GET /api/workflow/<task_id>/events

Returns Server-Sent Events stream.

Parameters
Name Located in Description Required Schema
task_id path Yes string
Responses
Code Description
200 Success

Models

AppAccessModeQuery

Name Type Description Required
appCode Application code No
appId Application ID No

ChatMessagePayload

Name Type Description Required
conversation_id Conversation ID No
files Files to be processed No
inputs object Input variables for the chat Yes
parent_message_id Parent message ID No
query string User query/message Yes
response_mode Response mode: blocking or streaming No
retriever_from string Source of retriever No

CompletionMessagePayload

Name Type Description Required
files Files to be processed No
inputs object Input variables for the completion Yes
query string Query text for completion No
response_mode Response mode: blocking or streaming No
retriever_from string Source of retriever No

ConversationListQuery

Name Type Description Required
last_id No
limit integer No
pinned No
sort_by string Enum: "-created_at", "-updated_at", "created_at", "updated_at" No

ConversationRenamePayload

Name Type Description Required
auto_generate boolean No
name No

EmailCodeLoginSendPayload

Name Type Description Required
email string Yes
language No

EmailCodeLoginVerifyPayload

Name Type Description Required
code string Yes
email string Yes
token string Yes

FileResponse

Name Type Description Required
conversation_id No
created_at No
created_by No
extension No
file_key No
id string Yes
mime_type No
name string Yes
original_url No
preview_url No
size integer Yes
source_url No
tenant_id No
user_id No

FileWithSignedUrl

Name Type Description Required
created_at No
created_by No
extension No
id string Yes
mime_type No
name string Yes
size integer Yes
url No

ForgotPasswordCheckPayload

Name Type Description Required
code string Yes
email string Yes
token string Yes

ForgotPasswordResetPayload

Name Type Description Required
new_password string Yes
password_confirm string Yes
token string Yes

ForgotPasswordSendPayload

Name Type Description Required
email string Yes
language No

LoginPayload

Name Type Description Required
email string Yes
password string Yes

MessageFeedbackPayload

Name Type Description Required
content No
rating No

MessageListQuery

Name Type Description Required
conversation_id string Conversation UUID Yes
first_id First message ID for pagination No
limit integer Number of messages to return (1-100) No

MessageMoreLikeThisQuery

Name Type Description Required
response_mode string Response mode
Enum: "blocking", "streaming"
Yes

RemoteFileInfo

Name Type Description Required
file_length integer Yes
file_type string Yes

RemoteFileUploadPayload

Name Type Description Required
url string (uri) Remote file URL Yes

SavedMessageCreatePayload

Name Type Description Required
message_id string Yes

SavedMessageListQuery

Name Type Description Required
last_id No
limit integer No

TextToAudioPayload

Name Type Description Required
message_id Message ID No
streaming Enable streaming response No
text Text to convert to audio No
voice Voice to use for TTS No

WorkflowRunPayload

Name Type Description Required
files No
inputs object Yes