Back to Dify

Web API

api/openapi/markdown/web-swagger.md

1.14.127.4 KB
Original Source

Web API

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

Version: 1.0

Security

Bearer

apiKeyAPI Key
DescriptionType: Bearer {your-api-key}
Inheader
NameAuthorization

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
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
413Audio file too large
415Unsupported audio type
500Internal Server Error

/chat-messages

POST

Description

Create a chat message for conversational applications.

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesChatMessagePayload
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404App Not Found
500Internal Server Error

/chat-messages/{task_id}/stop

POST

Description

Stop a running chat message task.

Parameters
NameLocated inDescriptionRequiredSchema
task_idpathTask ID to stopYesstring
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404Task Not Found
500Internal Server Error

/completion-messages

POST

Description

Create a completion message for text generation applications.

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesCompletionMessagePayload
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404App Not Found
500Internal Server Error

/completion-messages/{task_id}/stop

POST

Description

Stop a running completion message task.

Parameters
NameLocated inDescriptionRequiredSchema
task_idpathTask ID to stopYesstring
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404Task Not Found
500Internal Server Error

/conversations

GET

Description

Retrieve paginated list of conversations for a chat application.

Parameters
NameLocated inDescriptionRequiredSchema
last_idqueryLast conversation ID for paginationNostring
limitqueryNumber of conversations to return (1-100)Nointeger
pinnedqueryFilter by pinned statusNostring
sort_byquerySort orderNostring
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404App Not Found or Not a Chat App
500Internal Server Error

/conversations/{c_id}

DELETE

Description

Delete a specific conversation.

Parameters
NameLocated inDescriptionRequiredSchema
c_idpathConversation UUIDYesstring
Responses
CodeDescription
204Conversation deleted successfully
400Bad Request
401Unauthorized
403Forbidden
404Conversation Not Found or Not a Chat App
500Internal Server Error

/conversations/{c_id}/name

POST

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
c_idpathConversation UUIDYesstring
auto_generatequeryAuto-generate conversation nameNoboolean
namequeryNew conversation nameNostring
Responses
CodeDescription
200Conversation renamed successfully
400Bad Request
401Unauthorized
403Forbidden
404Conversation Not Found or Not a Chat App
500Internal Server Error

/conversations/{c_id}/pin

PATCH

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
c_idpathConversation UUIDYesstring
Responses
CodeDescription
200Conversation pinned successfully
400Bad Request
401Unauthorized
403Forbidden
404Conversation Not Found or Not a Chat App
500Internal Server Error

/conversations/{c_id}/unpin

PATCH

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
c_idpathConversation UUIDYesstring
Responses
CodeDescription
200Conversation unpinned successfully
400Bad Request
401Unauthorized
403Forbidden
404Conversation Not Found or Not a Chat App
500Internal Server Error

/email-code-login

POST

Description

Send email verification code for login

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesEmailCodeLoginSendPayload
Responses
CodeDescription
200Email code sent successfully
400Bad request - invalid email format
404Account not found

/email-code-login/validity

POST

Description

Verify email code and complete login

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesEmailCodeLoginVerifyPayload
Responses
CodeDescription
200Email code verified and login successful
400Bad request - invalid code or token
401Invalid token or expired code
404Account 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
CodeDescriptionSchema
201File uploaded successfullyFileResponse
400Bad request - invalid file or parameters
413File too large
415Unsupported file type

/forgot-password

POST

Description

Send password reset email

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesForgotPasswordSendPayload
Responses
CodeDescription
200Password reset email sent successfully
400Bad request - invalid email format
404Account not found
429Too many requests - rate limit exceeded

/forgot-password/resets

POST

Description

Reset user password with verification token

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesForgotPasswordResetPayload
Responses
CodeDescription
200Password reset successfully
400Bad request - invalid parameters or password mismatch
401Invalid or expired token
404Account not found

/forgot-password/validity

POST

Description

Verify password reset token validity

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesForgotPasswordCheckPayload
Responses
CodeDescription
200Token is valid
400Bad request - invalid token format
401Invalid 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
NameLocated inDescriptionRequiredSchema
form_tokenpathYesstring
Responses
CodeDescription
200Success

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
NameLocated inDescriptionRequiredSchema
form_tokenpathYesstring
Responses
CodeDescription
200Success

/login

POST

Summary

Authenticate user and login

Description

Authenticate user for web application access

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesLoginPayload
Responses
CodeDescription
200Authentication successful
400Bad request - invalid email or password format
401Authentication failed - email or password mismatch
403Account banned or login disabled
404Account not found

/login/status

GET

Description

Check login status

Responses
CodeDescription
200Login status
401Login status

/logout

POST

Description

Logout user from web application

Responses
CodeDescription
200Logout successful

/messages

GET

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
conversation_idqueryConversation UUIDYesstring
first_idqueryFirst message ID for paginationNostring
limitqueryNumber of messages to return (1-100)Nointeger
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404Conversation Not Found or Not a Chat App
500Internal Server Error

/messages/{message_id}/feedbacks

POST

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
message_idpathMessage UUIDYesstring
contentqueryFeedback contentNostring
ratingqueryFeedback ratingNostring
Responses
CodeDescription
200Feedback submitted successfully
400Bad Request
401Unauthorized
403Forbidden
404Message Not Found
500Internal Server Error

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

GET

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
message_idpathYesstring
payloadbodyYesMessageMoreLikeThisQuery
Responses
CodeDescription
200Success
400Bad Request - Not a completion app or feature disabled
401Unauthorized
403Forbidden
404Message Not Found
500Internal Server Error

/messages/{message_id}/suggested-questions

GET

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
message_idpathMessage UUIDYesstring
Responses
CodeDescription
200Success
400Bad Request - Not a chat app or feature disabled
401Unauthorized
403Forbidden
404Message Not Found or Conversation Not Found
500Internal Server Error

/meta

GET

Summary

Get app meta

Description

Retrieve the metadata for a specific app.

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

/parameters

GET

Summary

Retrieve app parameters

Description

Retrieve the parameters for a specific app.

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

/passport

GET

Description

Get authentication passport for web application access

Responses
CodeDescription
200Passport retrieved successfully
401Unauthorized - missing app code or invalid authentication
404Application 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
CodeDescriptionSchema
201Remote file uploaded successfullyFileWithSignedUrl
400Bad request - invalid URL or parameters
413File too large
415Unsupported file type
500Failed 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
NameLocated inDescriptionRequiredSchema
urlpathYesstring
Responses
CodeDescriptionSchema
200Remote file information retrieved successfullyRemoteFileInfo
400Bad request - invalid URL
404Remote file not found
500Failed to fetch remote file

/saved-messages

GET

Description

Retrieve paginated list of saved messages for a completion application.

Parameters
NameLocated inDescriptionRequiredSchema
last_idqueryLast message ID for paginationNostring
limitqueryNumber of messages to return (1-100)Nointeger
Responses
CodeDescription
200Success
400Bad Request - Not a completion app
401Unauthorized
403Forbidden
404App Not Found
500Internal Server Error

POST

Description

Save a specific message for later reference.

Parameters
NameLocated inDescriptionRequiredSchema
message_idqueryMessage UUID to saveYesstring
Responses
CodeDescription
200Message saved successfully
400Bad Request - Not a completion app
401Unauthorized
403Forbidden
404Message Not Found
500Internal Server Error

/saved-messages/{message_id}

DELETE

Description

Remove a message from saved messages.

Parameters
NameLocated inDescriptionRequiredSchema
message_idpathMessage UUID to deleteYesstring
Responses
CodeDescription
204Message removed successfully
400Bad Request - Not a completion app
401Unauthorized
403Forbidden
404Message Not Found
500Internal Server Error

/site

GET

Summary

Retrieve app site info

Description

Retrieve app site information and configuration.

Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404App Not Found
500Internal 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
CodeDescription
200System features retrieved successfully
500Internal server error

/text-to-audio

POST

Summary

Convert text to audio

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesTextToAudioPayload
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
500Internal Server Error

/webapp/access-mode

GET

Description

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

Parameters
NameLocated inDescriptionRequiredSchema
appCodequeryApplication codeNostring
appIdqueryApplication IDNostring
Responses
CodeDescription
200Success
400Bad Request
500Internal Server Error

/webapp/permission

GET

Description

Check if user has permission to access a web application.

Parameters
NameLocated inDescriptionRequiredSchema
appIdqueryApplication IDYesstring
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
500Internal Server Error

/workflows/run

POST

Summary

Run workflow

Description

Execute a workflow with provided inputs and files.

Parameters
NameLocated inDescriptionRequiredSchema
payloadbodyYesWorkflowRunPayload
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404App Not Found
500Internal Server Error

/workflows/tasks/{task_id}/stop

POST

Summary

Stop workflow task

Description

Stop a running workflow task.

Parameters
NameLocated inDescriptionRequiredSchema
task_idpathTask ID to stopYesstring
Responses
CodeDescription
200Success
400Bad Request
401Unauthorized
403Forbidden
404Task Not Found
500Internal 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
NameLocated inDescriptionRequiredSchema
task_idpathYesstring
Responses
CodeDescription
200Success

Models

AppAccessModeQuery

NameTypeDescriptionRequired
appCodeApplication codeNo
appIdApplication IDNo

ChatMessagePayload

NameTypeDescriptionRequired
conversation_idConversation IDNo
filesFiles to be processedNo
inputsobjectInput variables for the chatYes
parent_message_idParent message IDNo
querystringUser query/messageYes
response_modeResponse mode: blocking or streamingNo
retriever_fromstringSource of retrieverNo

CompletionMessagePayload

NameTypeDescriptionRequired
filesFiles to be processedNo
inputsobjectInput variables for the completionYes
querystringQuery text for completionNo
response_modeResponse mode: blocking or streamingNo
retriever_fromstringSource of retrieverNo

ConversationListQuery

NameTypeDescriptionRequired
last_idNo
limitintegerNo
pinnedNo
sort_bystringEnum: "-created_at", "-updated_at", "created_at", "updated_at"No

ConversationRenamePayload

NameTypeDescriptionRequired
auto_generatebooleanNo
nameNo

EmailCodeLoginSendPayload

NameTypeDescriptionRequired
emailstringYes
languageNo

EmailCodeLoginVerifyPayload

NameTypeDescriptionRequired
codestringYes
emailstringYes
tokenstringYes

FileResponse

NameTypeDescriptionRequired
conversation_idNo
created_atNo
created_byNo
extensionNo
file_keyNo
idstringYes
mime_typeNo
namestringYes
original_urlNo
preview_urlNo
sizeintegerYes
source_urlNo
tenant_idNo
user_idNo

FileWithSignedUrl

NameTypeDescriptionRequired
created_atNo
created_byNo
extensionNo
idstringYes
mime_typeNo
namestringYes
sizeintegerYes
urlNo

ForgotPasswordCheckPayload

NameTypeDescriptionRequired
codestringYes
emailstringYes
tokenstringYes

ForgotPasswordResetPayload

NameTypeDescriptionRequired
new_passwordstringYes
password_confirmstringYes
tokenstringYes

ForgotPasswordSendPayload

NameTypeDescriptionRequired
emailstringYes
languageNo

LoginPayload

NameTypeDescriptionRequired
emailstringYes
passwordstringYes

MessageFeedbackPayload

NameTypeDescriptionRequired
contentNo
ratingNo

MessageListQuery

NameTypeDescriptionRequired
conversation_idstringConversation UUIDYes
first_idFirst message ID for paginationNo
limitintegerNumber of messages to return (1-100)No

MessageMoreLikeThisQuery

NameTypeDescriptionRequired
response_modestringResponse mode
Enum: "blocking", "streaming"Yes

RemoteFileInfo

NameTypeDescriptionRequired
file_lengthintegerYes
file_typestringYes

RemoteFileUploadPayload

NameTypeDescriptionRequired
urlstring (uri)Remote file URLYes

SavedMessageCreatePayload

NameTypeDescriptionRequired
message_idstringYes

SavedMessageListQuery

NameTypeDescriptionRequired
last_idNo
limitintegerNo

TextToAudioPayload

NameTypeDescriptionRequired
message_idMessage IDNo
streamingEnable streaming responseNo
textText to convert to audioNo
voiceVoice to use for TTSNo

WorkflowRunPayload

NameTypeDescriptionRequired
filesNo
inputsobjectYes