Files
dify/api/openapi/markdown/web-openapi.md
T

127 KiB
Generated

Web API

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

Version: 1.0

Available authorizations

Bearer (HTTP, bearer)

Use the Service API key as a Bearer token in the Authorization header. Bearer format: API_KEY


web

Web application API operations

[POST] /audio-to-text

Convert audio to text

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

Responses

Code Description Schema
200 Success application/json: AudioToTextResponse
400 Bad Request application/json: AppUnavailableError
CompletionRequestError
ModelCurrentlyNotSupportError
NoAudioUploadedError
ProviderNotInitializeError
ProviderNotSupportSpeechToTextError
ProviderQuotaExceededError
SpeechToTextDisabledError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
413 Audio file too large application/json: AudioTooLargeError
ErrorResponse
415 Unsupported audio type application/json: UnsupportedAudioTypeError
ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /chat-messages

Create a chat message for conversational applications.

Request Body

Required Schema
Yes application/json: ChatMessagePayload

Responses

Code Description Schema
200 Success application/json: GeneratedAppResponse
400 Bad Request application/json: AgentNotPublishedError
AppUnavailableError
CompletionRequestError
ConnectionConfigurationInvalidError
ConnectionCredentialsInvalidError
ConnectionRequiredError
ModelCurrentlyNotSupportError
NotChatAppError
ProviderNotInitializeError
ProviderQuotaExceededError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
404 App Not Found application/json: ConnectionNotFoundError
ErrorResponse
409 Conflict application/json: ConnectionConflictError
ConnectionReauthorizationRequiredError
ConnectionRevisionChangedError
ErrorResponse
429 Too Many Requests application/json: RateLimitError
ErrorResponse
500 Internal Server Error application/json: ErrorResponse
503 Service Unavailable application/json: ConnectionCredentialsUnavailableError
CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /chat-messages/{task_id}/stop

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 Schema
200 Success application/json: SimpleResultResponse
400 Bad Request application/json: NotChatAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Task Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /completion-messages

Create a completion message for text generation applications.

Request Body

Required Schema
Yes application/json: CompletionMessagePayload

Responses

Code Description Schema
200 Success application/json: GeneratedAppResponse
400 Bad Request application/json: AppUnavailableError
CompletionRequestError
ModelCurrentlyNotSupportError
NotCompletionAppError
ProviderNotInitializeError
ProviderQuotaExceededError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 App Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /completion-messages/{task_id}/stop

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 Schema
200 Success application/json: SimpleResultResponse
400 Bad Request application/json: NotCompletionAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Task Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /connections

Parameters

Name Located in Description Required Schema
cursor query No string
limit query No integer,
Default: 20
provider query No string

Responses

Code Description Schema
200 Personal connections application/json: EndUserConnectionListResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /connections

Request Body

Required Schema
Yes application/json: EndUserConnectionCreatePayload

Responses

Code Description Schema
201 API-key connection created application/json: EndUserConnectionResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ConnectionCredentialsInvalidError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
409 Conflict application/json: ConnectionRevisionChangedError
ErrorResponse
503 Service Unavailable application/json: ConnectionCredentialsUnavailableError
CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /connections/configuration

Read saved App or Conversation choices without validating or refreshing credentials.

Parameters

Name Located in Description Required Schema
conversation_id query Chatflow Conversation to read. If omitted or the Conversation has no saved choices, return the current App user's last choices for form initialization. No string (uuid)

Responses

Code Description Schema
200 Saved Connection configuration application/json: ConnectionConfigurationResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /connections/credential-schema

Read API-key form fields for an authorized published tool node; no credential values.

Parameters

Name Located in Description Required Schema
connection_revision query Opaque revision issued for the current Web App. Use App parameters for tool-node operations or the owned Connection revision endpoint for Provider management. Yes string (uuid)
node_id query Yes string

Responses

Code Description Schema
200 API-key form schema application/json: ConnectionCredentialSchemaResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
409 Conflict application/json: ConnectionRevisionChangedError
ErrorResponse
503 Service Unavailable application/json: CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /connections/oauth/authorization-url

Request Body

Required Schema
Yes application/json: EndUserConnectionOAuthPayload

Responses

Code Description Schema
200 OAuth authorization URL application/json: EndUserConnectionOAuthResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ConnectionOauthFailedError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
409 Conflict application/json: ConnectionReauthorizationRequiredError
ConnectionRevisionChangedError
ErrorResponse
503 Service Unavailable application/json: ConnectionCredentialsUnavailableError
CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /connections/oauth/{provider}/callback

Parameters

Name Located in Description Required Schema
provider path Yes string

Responses

Code Description Schema
302 Redirect to OAuth completion page
400 Bad Request application/json: ConnectionConfigurationInvalidError
ConnectionOauthFailedError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
404 Not Found application/json: ConnectionNotFoundError
ErrorResponse
409 Conflict application/json: ConnectionConflictError
ConnectionReauthorizationRequiredError
ConnectionRevisionChangedError
ErrorResponse
503 Service Unavailable application/json: ConnectionCredentialsUnavailableError
CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /connections/preflight

Request Body

Required Schema
Yes application/json: EndUserConnectionPreflightPayload

Responses

Code Description Schema
200 Connection statuses and preflight readiness application/json: EndUserConnectionPreflightResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
409 Conflict application/json: ConnectionConflictError
ConnectionReauthorizationRequiredError
ConnectionRevisionChangedError
ErrorResponse
503 Service Unavailable application/json: ConnectionCredentialsUnavailableError
CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[DELETE] /connections/{connection_id}

Disconnect locally and remove live selections, then attempt OAuth revocation against the original plugin artifact and Client. Remote failures never undo local deletion or fall back to installed versions.

Parameters

Name Located in Description Required Schema
connection_id path Yes string (uuid)

Responses

Code Description Schema
204 Connection deleted
400 Bad Request application/json: ConnectionConfigurationInvalidError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
404 Not Found application/json: ConnectionNotFoundError
ErrorResponse
409 Conflict application/json: ConnectionConflictError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /connections/{connection_id}

Parameters

Name Located in Description Required Schema
connection_id path Yes string (uuid)

Responses

Code Description Schema
200 Personal connection application/json: EndUserConnectionResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
404 Not Found application/json: ConnectionNotFoundError
ErrorResponse
default Error application/json: ErrorResponse

[PATCH] /connections/{connection_id}

Parameters

Name Located in Description Required Schema
connection_id path Yes string (uuid)

Request Body

Required Schema
Yes application/json: EndUserConnectionUpdatePayload

Responses

Code Description Schema
200 Connection updated application/json: EndUserConnectionResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ConnectionCredentialsInvalidError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
404 Not Found application/json: ConnectionNotFoundError
ErrorResponse
409 Conflict application/json: ConnectionConflictError
ConnectionRevisionChangedError
ErrorResponse
503 Service Unavailable application/json: ConnectionCredentialsUnavailableError
CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /connections/{connection_id}/reauthorize

Parameters

Name Located in Description Required Schema
connection_id path Yes string (uuid)

Request Body

Required Schema
Yes application/json: EndUserConnectionReauthorizePayload

Responses

Code Description Schema
200 OAuth reauthorization URL application/json: EndUserConnectionOAuthResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ConnectionOauthFailedError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
404 Not Found application/json: ConnectionNotFoundError
ErrorResponse
409 Conflict application/json: ConnectionReauthorizationRequiredError
ConnectionRevisionChangedError
ErrorResponse
503 Service Unavailable application/json: ConnectionCredentialsUnavailableError
CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /connections/{connection_id}/revision

Read a Provider revision for an owned Connection, independently of published tool nodes.

Parameters

Name Located in Description Required Schema
connection_id path Yes string (uuid)

Responses

Code Description Schema
200 Current Provider revision application/json: EndUserConnectionRevisionResponse
400 Bad Request application/json: ConnectionConfigurationInvalidError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
404 Not Found application/json: ConnectionNotFoundError
ErrorResponse
503 Service Unavailable application/json: CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /conversations

Retrieve paginated list of conversations for a chat application.

Parameters

Name Located in Description Required Schema
last_id query No string
limit query No integer,
Default: 20
pinned query No boolean
sort_by query No string,
Available values: "-created_at", "-updated_at", "created_at", "updated_at",
Default: -updated_at

Responses

Code Description Schema
200 Success application/json: ConversationInfiniteScrollPagination
400 Bad Request application/json: NotChatAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 App Not Found or Not a Chat App application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[DELETE] /conversations/{c_id}

Delete a specific conversation.

Parameters

Name Located in Description Required Schema
c_id path Conversation UUID Yes string (uuid)

Responses

Code Description Schema
204 Conversation deleted successfully
400 Bad Request application/json: NotChatAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Conversation Not Found or Not a Chat App application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /conversations/{c_id}/name

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 (uuid)
auto_generate query Auto-generate conversation name No boolean
name query New conversation name No string

Request Body

Required Schema
Yes application/json: ConversationRenamePayload

Responses

Code Description Schema
200 Conversation renamed successfully application/json: SimpleConversation
400 Bad Request application/json: NotChatAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Conversation Not Found or Not a Chat App application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[PATCH] /conversations/{c_id}/pin

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 (uuid)

Responses

Code Description Schema
200 Conversation pinned successfully application/json: ResultResponse
400 Bad Request application/json: NotChatAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Conversation Not Found or Not a Chat App application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[PATCH] /conversations/{c_id}/unpin

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 (uuid)

Responses

Code Description Schema
200 Conversation unpinned successfully application/json: ResultResponse
400 Bad Request application/json: NotChatAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Conversation Not Found or Not a Chat App application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /email-code-login

Send email verification code for login

Request Body

Required Schema
Yes application/json: EmailCodeLoginSendPayload

Responses

Code Description Schema
200 Email code sent successfully application/json: SimpleResultDataResponse
400 Bad request - invalid email format application/json: ErrorResponse
401 Unauthorized application/json: AuthenticationFailedError
ErrorResponse
404 Account not found application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /email-code-login/validity

Verify email code and complete login

Request Body

Required Schema
Yes application/json: EmailCodeLoginVerifyPayload

Responses

Code Description Schema
200 Email code verified and login successful application/json: AccessTokenResultResponse
400 Bad request - invalid code or token application/json: AccountBannedError
EmailCodeError
InvalidEmailError
ErrorResponse
401 Invalid token or expired code application/json: AuthenticationFailedError
ErrorResponse
404 Account not found application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /files/upload

Upload a file for use in web applications

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 BlockedFileExtensionError: File extension is blocked

Responses

Code Description Schema
201 File uploaded successfully application/json: FileResponse
400 - no_file_uploaded : No file was provided in the request. - too_many_files : Only one file is allowed per request. - filename_not_exists_error : The uploaded file has no filename. - file_extension_blocked : The file extension is blocked for security reasons. application/json: FileExtensionBlockedError
FilenameNotExistsError
NoFileUploadedError
TooManyFilesError
ErrorResponse
413 file_too_large : File size exceeded. application/json: FileTooLargeError
ErrorResponse
415 unsupported_file_type : File type not allowed. application/json: UnsupportedFileTypeError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /forgot-password

Send password reset email

Request Body

Required Schema
Yes application/json: ForgotPasswordSendPayload

Responses

Code Description Schema
200 Password reset email sent successfully application/json: SimpleResultDataResponse
400 Bad request - invalid email format application/json: ErrorResponse
401 Unauthorized application/json: AuthenticationFailedError
ErrorResponse
404 Account not found application/json: ErrorResponse
429 Too many requests - rate limit exceeded application/json: EmailSendIpLimitError
PasswordResetRateLimitExceededError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /forgot-password/resets

Reset user password with verification token

Request Body

Required Schema
Yes application/json: ForgotPasswordResetPayload

Responses

Code Description Schema
200 Password reset successfully application/json: SimpleResultResponse
400 Bad request - invalid parameters or password mismatch application/json: InvalidOrExpiredTokenError
PasswordMismatchError
ErrorResponse
401 Invalid or expired token application/json: AuthenticationFailedError
ErrorResponse
404 Account not found application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /forgot-password/validity

Verify password reset token validity

Request Body

Required Schema
Yes application/json: ForgotPasswordCheckPayload

Responses

Code Description Schema
200 Token is valid application/json: VerificationTokenResponse
400 Bad request - invalid token format application/json: EmailCodeError
InvalidEmailError
InvalidOrExpiredTokenError
ErrorResponse
401 Invalid or expired token application/json: ErrorResponse
429 Too Many Requests application/json: EmailPasswordResetLimitError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /form/human_input/{form_token}

Get human input form definition by token

Get a human input form definition by token GET /api/form/human_input/<form_token>

Parameters

Name Located in Description Required Schema
form_token path Human input form token Yes string

Responses

Code Description Schema
200 Form retrieved successfully application/json: HumanInputFormDefinitionResponse
403 Forbidden application/json: ErrorResponse
404 Form not found application/json: ErrorResponse
412 Form already submitted or expired application/json: HumanInputFormExpiredError
HumanInputFormSubmittedError
ErrorResponse
429 Too many requests application/json: WebFormRateLimitExceededError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /form/human_input/{form_token}

Submit human input form by token

Submit a human input form by token 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 Human input form token Yes string

Request Body

Required Schema
Yes application/json: HumanInputFormSubmitPayload

Responses

Code Description Schema
200 Form submitted successfully application/json: HumanInputFormSubmitResponse
400 Bad request - invalid submission data application/json: InvalidFormDataError
ErrorResponse
404 Form not found application/json: ErrorResponse
412 Form already submitted or expired application/json: HumanInputFormExpiredError
HumanInputFormSubmittedError
ErrorResponse
429 Too many requests application/json: WebFormRateLimitExceededError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /form/human_input/{form_token}/upload-token

Issue an upload token for a human input form

Issue an upload token for an active human input form POST /api/form/human_input/<form_token>/upload-token

Parameters

Name Located in Description Required Schema
form_token path Human input form token Yes string

Responses

Code Description Schema
200 Upload token issued successfully application/json: HumanInputUploadTokenResponse
404 Form not found application/json: ErrorResponse
412 Form already submitted or expired application/json: HumanInputFormExpiredError
HumanInputFormSubmittedError
ErrorResponse
429 Too many requests application/json: WebFormRateLimitExceededError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /human-input-forms/files

Upload one local file or remote URL file for a HITL human input form

Responses

Code Description Schema
201 File uploaded successfully application/json: FileResponse
400 Bad Request application/json: FileExtensionBlockedError
FilenameNotExistsError
MalformedUploadTokenError
NoFileUploadedError
RemoteFileAccessDeniedError
RemoteFileInvalidUrlError
RemoteFileUrlBlockedError
TooManyFilesError
ErrorResponse
401 Unauthorized application/json: UploadTokenRequiredError
ErrorResponse
403 Forbidden application/json: InvalidUploadTokenError
ErrorResponse
404 Not Found application/json: RemoteFileNotFoundError
ErrorResponse
412 Precondition Failed application/json: HumanInputFormExpiredError
HumanInputFormSubmittedError
ErrorResponse
413 Request Entity Too Large application/json: FileTooLargeError
ErrorResponse
415 Unsupported Media Type application/json: UnsupportedFileTypeError
ErrorResponse
502 Bad Gateway application/json: RemoteFileInvalidResponseError
RemoteFileUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /login

Authenticate user and login

Authenticate user for web application access

Request Body

Required Schema
Yes application/json: LoginPayload

Responses

Code Description Schema
200 Authentication successful application/json: AccessTokenResultResponse
400 Bad request - invalid email or password format application/json: AccountBannedError
ErrorResponse
401 Authentication failed - email or password mismatch application/json: AuthenticationFailedError
ErrorResponse
404 Account not found application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /login/status

Check login status

Parameters

Name Located in Description Required Schema
app_code query Web app code No string
mode query end_user reports actual Account authentication instead of Public App access No string,
Available values: "console", "end_user",
Default: console
user_id query End user session ID No string

Responses

Code Description Schema
200 Login status application/json: LoginStatusResponse
401 Login status application/json: ErrorResponse
404 App not found application/json: ErrorResponse
503 Web app access service unavailable application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /logout

Logout user from web application

Responses

Code Description Schema
200 Logout successful application/json: SimpleResultResponse
default Error application/json: ErrorResponse

[GET] /messages

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

Parameters

Name Located in Description Required Schema
conversation_id query Conversation ID. Yes string
first_id query The ID of the first chat record on the current page. Omit this value to fetch the latest messages; for subsequent pages, use the first message ID from the current list to fetch older messages. No string
limit query Number of chat history messages to return per request. No integer,
Default: 20

Responses

Code Description Schema
200 Success application/json: WebMessageInfiniteScrollPagination
400 Bad Request application/json: NotChatAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Conversation Not Found or Not a Chat App application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /messages/{message_id}/feedbacks

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

Parameters

Name Located in Description Required Schema
message_id path Message UUID Yes string (uuid)
content query Feedback content No string
rating query Feedback rating No string,
Available values: "dislike", "like"

Request Body

Required Schema
Yes application/json: MessageFeedbackPayload

Responses

Code Description Schema
200 Feedback submitted successfully application/json: ResultResponse
400 Bad Request application/json: ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Message Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /messages/{message_id}/more-like-this

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

Parameters

Name Located in Description Required Schema
response_mode query Response mode Yes string,
Available values: "blocking", "streaming"
message_id path Yes string (uuid)

Responses

Code Description Schema
200 Success application/json: GeneratedAppResponse
400 Bad Request - Not a completion app or feature disabled application/json: CompletionRequestError
ModelCurrentlyNotSupportError
NotCompletionAppError
ProviderNotInitializeError
ProviderQuotaExceededError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
403 Forbidden application/json: AppMoreLikeThisDisabledError
ErrorResponse
404 Message Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /messages/{message_id}/suggested-questions

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 (uuid)

Responses

Code Description Schema
200 Success application/json: SuggestedQuestionsResponse
400 Bad Request - Not a chat app or feature disabled application/json: CompletionRequestError
ModelCurrentlyNotSupportError
NotChatAppError
ProviderNotInitializeError
ProviderQuotaExceededError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
403 Forbidden application/json: AppSuggestedQuestionsAfterAnswerDisabledError
ErrorResponse
404 Message Not Found or Conversation Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /meta

Get app meta

Retrieve the metadata for a specific app.

Responses

Code Description Schema
200 Success application/json: AppMetaResponse
400 Bad Request application/json: AppUnavailableError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 App Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /migration/claim

Claim up to 50 anonymous browser Passports across Web Apps for one authenticated Account. Submit Guest Passports in passports, with one Account Web login proof in Authorization. Complete the login handoff through /api/passport before asking the user to confirm Claim. Validate every source Passport and Account App admission before any transfer or identity creation. Preflight failures return 400 connection_claim_preflight_failed with details.failures indexed by input. An unavailable preflight dependency returns 503; neither failure starts a transfer. Items run in input order with independent transactions; every item returns its index and success or failure. Success includes the App code, Account App Passport and this item's transferred Connection count. Retries skip transfers for Guests with no remaining Connections and report zero; new Guest Connections are included. Account defaults take precedence; Conversation choices and history are preserved. Resubmit the same batch or retry failed items separately; no cross-App atomicity is provided.

Request Body

Required Schema
Yes application/json: ConnectionClaimPayload

Responses

Code Description Schema
200 Guest Connection claim results application/json: ConnectionClaimResponse
400 Bad Request application/json: ConnectionClaimPreflightFailedError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
503 Service Unavailable application/json: ConnectionClaimUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /migration/claimable-passports

Check anonymous Passports held by this browser across Web Apps without changing identity or data. Submit local candidates; return their request indices, App names/codes and current Connection counts. Invalid, expired, duplicate, Account and SSO candidates are omitted. No Account login is required. Unavailable, disabled and unpublished Web Apps are filtered out. Zero-Connection Guest Passports are included. connection_count counts all currently Guest-owned Connections, including ones needing reconnection. This is advisory: actual Claim rechecks ownership and Account App admission.

Request Body

Required Schema
Yes application/json: ClaimablePassportsPayload

Responses

Code Description Schema
200 Claimable browser Passports application/json: ClaimablePassportsResponse
default Error application/json: ErrorResponse

[GET] /parameters

Retrieve app parameters

Retrieve the parameters for a specific app.

Responses

Code Description Schema
200 Success application/json: WebAppParametersResponse
400 Bad Request application/json: AgentNotPublishedError
AppUnavailableError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 App Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /passport

Get authentication passport for web application access

Parameters

Name Located in Description Required Schema
mode query end_user reuses Account login; console preserves legacy Web App authentication No string,
Available values: "console", "end_user",
Default: console
user_id query End user session ID No string

Responses

Code Description Schema
200 Passport retrieved successfully application/json: PassportAccessTokenResponse
401 Unauthorized - missing app code or invalid authentication application/json: EndUserLoginRequiredError
ErrorResponse
404 Application or user not found application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /passport

Redeem a one-use S256 PKCE login code after returning to /webapp-signin. Returns the App Passport and sets the Web-only Account login proof in an HttpOnly cookie. Account Passports require the matching WebApp login cookie on subsequent requests.

Parameters

Name Located in Description Required Schema
X-App-Code header Web app code Yes string

Request Body

Required Schema
Yes application/json: PassportLoginPayload

Responses

Code Description Schema
200 Web login completed application/json: PassportAccessTokenResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
503 Service Unavailable application/json: WebLoginUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /remote-files/upload

Upload a file from a remote URL

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: RemoteFileInvalidUrlError: Remote file URL is invalid RemoteFileUrlBlockedError: Remote file URL is blocked RemoteFileNotFoundError: Remote file does not exist RemoteFileAccessDeniedError: Remote file requires authorization RemoteFileUnavailableError: Remote file is unavailable RemoteFileInvalidResponseError: Remote file response is invalid FileTooLargeError: File exceeds size limit UnsupportedFileTypeError: File type not supported

Request Body

Required Schema
Yes application/json: RemoteFileUploadPayload

Responses

Code Description Schema
201 Remote file uploaded successfully application/json: FileWithSignedUrl
400 Invalid, blocked, or inaccessible remote file URL application/json: FileExtensionBlockedError
RemoteFileAccessDeniedError
RemoteFileInvalidUrlError
RemoteFileUrlBlockedError
ErrorResponse
404 Remote file not found application/json: RemoteFileNotFoundError
ErrorResponse
413 File too large application/json: FileTooLargeError
ErrorResponse
415 Unsupported file type application/json: UnsupportedFileTypeError
ErrorResponse
422 Request payload validation failed application/json: ErrorResponse
500 Internal server error application/json: ErrorResponse
502 Remote file unavailable or returned an invalid response application/json: RemoteFileInvalidResponseError
RemoteFileUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /remote-files/{url}

Get information about a remote file

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 application/json: RemoteFileInfo
400 Invalid, blocked, or inaccessible remote file URL application/json: RemoteFileAccessDeniedError
RemoteFileInvalidUrlError
RemoteFileUrlBlockedError
ErrorResponse
404 Remote file not found application/json: RemoteFileNotFoundError
ErrorResponse
500 Internal server error application/json: ErrorResponse
502 Remote file unavailable or returned an invalid response application/json: RemoteFileInvalidResponseError
RemoteFileUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[GET] /saved-messages

Retrieve paginated list of saved messages for a completion application.

Parameters

Name Located in Description Required Schema
last_id query No string
limit query No integer,
Default: 20

Responses

Code Description Schema
200 Success application/json: SavedMessageInfiniteScrollPagination
400 Bad Request - Not a completion app application/json: NotCompletionAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 App Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /saved-messages

Save a specific message for later reference.

Parameters

Name Located in Description Required Schema
message_id query Message UUID to save Yes string

Request Body

Required Schema
Yes application/json: SavedMessageCreatePayload

Responses

Code Description Schema
200 Message saved successfully application/json: ResultResponse
400 Bad Request - Not a completion app application/json: NotCompletionAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Message Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[DELETE] /saved-messages/{message_id}

Remove a message from saved messages.

Parameters

Name Located in Description Required Schema
message_id path Message UUID to delete Yes string (uuid)

Responses

Code Description Schema
204 Message removed successfully
400 Bad Request - Not a completion app application/json: NotCompletionAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Message Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /site

Retrieve app site info

Retrieve app site information and configuration.

Responses

Code Description Schema
200 Success application/json: WebAppSiteResponse
400 Bad Request application/json: ErrorResponse
401 Unauthorized application/json: ErrorResponse
403 Forbidden application/json: ErrorResponse
404 App Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /system-features

Get the non-sensitive bootstrap snapshot exposed before authentication

Get the non-sensitive bootstrap snapshot exposed before Console or Web authentication. This is not a general feature registry. 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.

Authentication configuration must be available before the authentication flow can be selected.

Responses

Code Description Schema
200 System features retrieved successfully application/json: SystemFeatureModel
500 Internal server error application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /text-to-audio

Convert text to audio

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

Request Body

Required Schema
Yes application/json: TextToAudioPayload

Responses

Code Description Schema
200 Success
400 Bad Request application/json: AppUnavailableError
CompletionRequestError
ModelCurrentlyNotSupportError
ProviderNotInitializeError
ProviderQuotaExceededError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /webapp/access-mode

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 Schema
200 Success application/json: AccessModeResponse
400 Bad Request application/json: InvalidParamError
ErrorResponse
404 App Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
503 Web App Access Service Unavailable application/json: ErrorResponse
default Error application/json: ErrorResponse

[GET] /webapp/permission

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 Schema
200 Success application/json: BooleanResultResponse
400 Bad Request application/json: ErrorResponse
401 Unauthorized application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
503 Web App Access Service Unavailable application/json: ErrorResponse
default Error application/json: ErrorResponse

[POST] /workflows/run

Run workflow

Execute a workflow with provided inputs and files.

Request Body

Required Schema
Yes application/json: WorkflowRunPayload

Responses

Code Description Schema
200 Success application/json: GeneratedAppResponse
400 Bad Request application/json: CompletionRequestError
ConnectionConfigurationInvalidError
ConnectionCredentialsInvalidError
ConnectionRequiredError
ModelCurrentlyNotSupportError
NotWorkflowAppError
ProviderNotInitializeError
ProviderQuotaExceededError
ErrorResponse
401 Unauthorized application/json: EndUserLoginRequiredError
ErrorResponse
403 Forbidden application/json: TriggerWorkflowServiceModeUnavailableError
ErrorResponse
404 App Not Found application/json: ConnectionNotFoundError
ErrorResponse
409 Conflict application/json: ConnectionConflictError
ConnectionReauthorizationRequiredError
ConnectionRevisionChangedError
ErrorResponse
429 Too Many Requests application/json: RateLimitError
ErrorResponse
500 Internal Server Error application/json: ErrorResponse
503 Service Unavailable application/json: ConnectionCredentialsUnavailableError
CredentialCheckUnavailableError
ErrorResponse
default Error application/json: ErrorResponse

[POST] /workflows/tasks/{task_id}/stop

Stop workflow task

Stop a running workflow task.

Parameters

Name Located in Description Required Schema
task_id path Task ID to stop Yes string

Responses

Code Description Schema
200 Success application/json: SimpleResultResponse
400 Bad Request application/json: NotWorkflowAppError
ErrorResponse
401 Unauthorized application/json: ErrorResponse
404 Task Not Found application/json: ErrorResponse
500 Internal Server Error application/json: ErrorResponse
default Error application/json: ErrorResponse

default

Default namespace

[GET] /workflow/{task_id}/events

Get workflow execution events stream after resume

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 Schema
200 SSE event stream application/json: EventStreamResponse
400 Bad Request application/json: InvalidParamError
ErrorResponse
default Error application/json: ErrorResponse

Schemas

AccessModeResponse

Name Type Description Required
accessMode string Yes

AccessTokenData

Name Type Description Required
access_token string Yes

AccessTokenResultResponse

Name Type Description Required
data AccessTokenData Yes
result string Yes

AccountBannedError

Account is banned.

Name Type Description Required
AccountBannedError Account is banned.

AgentNotPublishedError

Agent has not been published. Please publish the Agent before using the web app.

Name Type Description Required
AgentNotPublishedError Agent has not been published. Please publish the Agent before using the web app.

AgentThought

Name Type Description Required
answer string No
chain_id string No
created_at integer No
files [ string ] Yes
id string Yes
message_id string Yes
observation string No
position integer Yes
thought string No
tool string No
tool_input string No
tool_labels AnyJSONValue Labels for tools used. Yes

AnyJSONValue

Name Type Description Required
AnyJSONValue

AppAccessModeQuery

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

AppMetaResponse

Name Type Description Required
tool_icons object Tool icon metadata keyed by tool name No

AppMode

Name Type Description Required
AppMode string

AppMoreLikeThisDisabledError

The 'More like this' feature is disabled. Please refresh your page.

Name Type Description Required
AppMoreLikeThisDisabledError The 'More like this' feature is disabled. Please refresh your page.

AppPermissionQuery

Name Type Description Required
appId string Application ID Yes

AppSelectorScope

Name Type Description Required
AppSelectorScope string

AppSuggestedQuestionsAfterAnswerDisabledError

The 'Suggested Questions After Answer' feature is disabled. Please refresh your page.

Name Type Description Required
AppSuggestedQuestionsAfterAnswerDisabledError The 'Suggested Questions After Answer' feature is disabled. Please refresh your page.

AppUnavailableError

App unavailable, please check your app configurations.

Name Type Description Required
AppUnavailableError App unavailable, please check your app configurations.

AudioToTextResponse

Name Type Description Required
text string Yes

AudioTooLargeError

Audio size exceeded. {message}

Name Type Description Required
AudioTooLargeError Audio size exceeded. {message}

AuthenticationFailedError

Invalid email or password.

Name Type Description Required
AuthenticationFailedError Invalid email or password.

BooleanResultResponse

Name Type Description Required
result boolean Yes

BrandingModel

Name Type Description Required
application_title string Yes
enabled boolean Yes
favicon string Yes
login_page_logo string Yes
workspace_logo string Yes

ButtonStyle

Button styles for user actions.

Name Type Description Required
ButtonStyle string Button styles for user actions.

ChatMessagePayload

Name Type Description Required
connection_revision string Opaque connection contract revision from Web App parameters. Required for EndUser tool authentication; must match current authorization requirements; verified plugin upgrades may inherit consent. No
connections object Chatflow choices keyed by independent authorization node ID. Omit on an existing conversation to reuse its last accepted choices. Explicit choices replace the saved configuration after validation. An explicit null, empty map, or missing node does not inherit saved choices. Required for a new conversation with EndUser tool authentication. No
conversation_id string Conversation ID No
files [ object ] Files to be processed No
inputs object Input variables for the chat Yes
parent_message_id string Parent message ID No
query string User query/message Yes
response_mode string,
Available values: "blocking", "streaming"
Response mode: blocking or streaming No
retriever_from string,
Default: web_app
Source of retriever No

ClaimablePassportResponse

Name Type Description Required
app_code string Yes
app_name string Yes
connection_count integer Current Guest Connection count; does not determine Passport eligibility Yes
index integer Index of the candidate in the request's passports list Yes

ClaimablePassportsPayload

Name Type Description Required
passports [ string ] Yes

ClaimablePassportsResponse

Name Type Description Required
data [ ClaimablePassportResponse ] Yes

CompletionMessagePayload

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

CompletionRequestError

Completion request failed.

Name Type Description Required
CompletionRequestError Completion request failed.

ConnectionClaimErrorResponse

Name Type Description Required
code string,
Available values: "app_not_found", "connection_claim_unavailable", "connection_conflict", "end_user_login_required", "unauthorized", "web_app_access_denied"
Enum: "app_not_found", "connection_claim_unavailable", "connection_conflict", "end_user_login_required", "unauthorized", "web_app_access_denied" Yes
message string Yes
status integer Yes

ConnectionClaimFailureResponse

Name Type Description Required
error ConnectionClaimErrorResponse Yes
index integer Yes
status string Yes

ConnectionClaimPayload

Name Type Description Required
passports [ string ] Yes

ConnectionClaimPreflightDetails

Name Type Description Required
failures [ ConnectionClaimFailureResponse ] Yes

ConnectionClaimPreflightFailedError

Connection claim preflight failed. No Connections were transferred.

Name Type Description Required
ConnectionClaimPreflightFailedError Connection claim preflight failed. No Connections were transferred.

ConnectionClaimResponse

Name Type Description Required
data [ ConnectionClaimSuccessResponse
ConnectionClaimFailureResponse ]
Yes

ConnectionClaimSuccessResponse

Name Type Description Required
access_token string Yes
app_code string Yes
claimed_connections integer Number transferred by this item; zero when no Guest Connections remain Yes
index integer Yes
status string Yes

ConnectionClaimUnavailableError

Connection claim is temporarily unavailable. Please retry.

Name Type Description Required
ConnectionClaimUnavailableError Connection claim is temporarily unavailable. Please retry.

ConnectionConfigurationInvalidError

The connection is not compatible with this tool configuration.

Name Type Description Required
ConnectionConfigurationInvalidError The connection is not compatible with this tool configuration.

ConnectionConfigurationResponse

Name Type Description Required
connections object Saved Connection details keyed by authorization node ID, not a readiness result. Inaccessible Connection references are returned as null. Yes

ConnectionConflictError

Connection changed during the operation.

Name Type Description Required
ConnectionConflictError Connection changed during the operation.

ConnectionCredentialSchemaResponse

Name Type Description Required
ConnectionCredentialSchemaResponse array

ConnectionCredentialStatus

Last known credential lifecycle state, not readiness for a particular node.

Keep the existing storage values. App-specific Client mismatches and unbinding must never be written back as a global credential state change.

Name Type Description Required
ConnectionCredentialStatus string Last known credential lifecycle state, not readiness for a particular node. Keep the existing storage values. App-specific Client mismatches and unbinding must never be written back as a global credential state change.

ConnectionCredentialType

Name Type Description Required
ConnectionCredentialType string

ConnectionCredentialsInvalidError

Invalid credentials for this provider.

Name Type Description Required
ConnectionCredentialsInvalidError Invalid credentials for this provider.

ConnectionCredentialsUnavailableError

Connection credentials are temporarily unavailable.

Name Type Description Required
ConnectionCredentialsUnavailableError Connection credentials are temporarily unavailable.

ConnectionNotFoundError

Connection not found.

Name Type Description Required
ConnectionNotFoundError Connection not found.

ConnectionOauthFailedError

OAuth authorization could not be completed. Start authorization again.

Name Type Description Required
ConnectionOauthFailedError OAuth authorization could not be completed. Start authorization again.

ConnectionPreflightStatus

Name Type Description Required
check CredentialCheckResult Yes
connection_id string Yes
node_id string Independent authorization node ID to use as the selection key. Yes
status NodeConnectionStatus Effective node status; null when availability cannot be determined. Yes

ConnectionReauthorizationRequiredError

The OAuth client changed or is unavailable. Start authorization again.

Name Type Description Required
ConnectionReauthorizationRequiredError The OAuth client changed or is unavailable. Start authorization again.

ConnectionRequiredError

Select a connection for every required tool before running.

Name Type Description Required
ConnectionRequiredError Select a connection for every required tool before running.

ConnectionRevisionChangeDetails

Name Type Description Required
connection_revision string Yes

ConnectionRevisionChangedError

The connection requirements changed. Refresh and confirm again.

Name Type Description Required
ConnectionRevisionChangedError The connection requirements changed. Refresh and confirm again.

ConversationInfiniteScrollPagination

Name Type Description Required
data [ SimpleConversation ] Yes
has_more boolean Yes
limit integer Yes

ConversationListQuery

Name Type Description Required
last_id string No
limit integer,
Default: 20
No
pinned boolean No
sort_by string,
Available values: "-created_at", "-updated_at", "created_at", "updated_at",
Default: -updated_at
Enum: "-created_at", "-updated_at", "created_at", "updated_at" No

ConversationRenamePayload

Name Type Description Required
auto_generate boolean Automatically generate the conversation name. When true, the name field is ignored. No
name string Conversation name. Required when auto_generate is false. No

CredentialCheckResult

Name Type Description Required
checked_at integer Yes
reason_code string,
Available values: "credential_expired", "credential_invalid", "credential_revoked", "provider_network_error", "provider_rate_limited", "provider_timeout", "provider_unavailable"
Yes
retryable boolean Yes
status string,
Available values: "invalid", "temporarily_unavailable", "unsupported", "valid"
Enum: "invalid", "temporarily_unavailable", "unsupported", "valid" Yes

CredentialCheckUnavailableError

Credential validation is temporarily unavailable.

Name Type Description Required
CredentialCheckUnavailableError Credential validation is temporarily unavailable.

DeploymentEdition

Enum representing the deployment edition of the platform.

Name Type Description Required
DeploymentEdition string Enum representing the deployment edition of the platform.

EmailCodeError

Email code is invalid or expired.

Name Type Description Required
EmailCodeError Email code is invalid or expired.

EmailCodeLoginSendPayload

Name Type Description Required
email string Yes
language string No

EmailCodeLoginVerifyPayload

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

EmailPasswordResetLimitError

Too many failed password reset attempts. Please try again in 24 hours.

Name Type Description Required
EmailPasswordResetLimitError Too many failed password reset attempts. Please try again in 24 hours.

EmailSendIpLimitError

Too many emails have been sent from this IP address recently. Please try again later.

Name Type Description Required
EmailSendIpLimitError Too many emails have been sent from this IP address recently. Please try again later.

EndUserConnectionCreatePayload

Name Type Description Required
connection_revision string (uuid) Opaque revision issued for the current Web App. Use App parameters for tool-node operations or the owned Connection revision endpoint for Provider management. Yes
credentials object Yes
name string Omit or leave empty to generate an incremental API KEY name. No
node_id string Yes

EndUserConnectionListQuery

Name Type Description Required
cursor string No
limit integer,
Default: 20
No
provider string No

EndUserConnectionListResponse

Name Type Description Required
data [ EndUserConnectionResponse ] Yes
has_more boolean Yes
next_cursor string Yes

EndUserConnectionOAuthPayload

Name Type Description Required
connection_revision string (uuid) Opaque revision issued for the current Web App. Use App parameters for tool-node operations or the owned Connection revision endpoint for Provider management. Yes
name string Omit or leave empty to generate an incremental AUTH name. No
node_id string Yes

EndUserConnectionOAuthResponse

Name Type Description Required
authorization_url string Yes

EndUserConnectionPreflightPayload

Name Type Description Required
connection_revision string (uuid) Opaque revision issued for the current Web App. Use App parameters for tool-node operations or the owned Connection revision endpoint for Provider management. Yes
connections object Explicit choices keyed by independent authorization node ID. Missing/null choices remain disconnected; saved choices are never inferred. Yes
conversation_id string Existing Chatflow conversation. Omit for a new conversation or plain Workflow. No

EndUserConnectionPreflightResponse

Name Type Description Required
connection_revision string Connection contract revision evaluated by this preflight. Yes
connections [ ConnectionPreflightStatus ] Yes
ready boolean Yes

EndUserConnectionReauthorizePayload

Name Type Description Required
connection_revision string (uuid) Opaque revision issued for the current Web App. Use App parameters for tool-node operations or the owned Connection revision endpoint for Provider management. Yes

EndUserConnectionResponse

Name Type Description Required
account_label string Yes
created_at integer Yes
credential_status ConnectionCredentialStatus Yes
credential_type ConnectionCredentialType Yes
expires_at integer Yes
id string Yes
last_active_at integer Yes
name string Yes
provider string Yes
updated_at integer Yes

EndUserConnectionRevisionResponse

Name Type Description Required
connection_revision string (uuid) Provider revision scoped to this Web App, for operations on the owned Connection. Yes

EndUserConnectionUpdatePayload

Name Type Description Required
connection_revision string (uuid) Provider revision required when replacing credentials. No
credentials object No
name string No

EndUserLoginRequiredError

Sign in to use personal connections.

Name Type Description Required
EndUserLoginRequiredError Sign in to use personal connections.

ErrorResponse

Documented non-2xx body emitted by register_external_error_handlers.

params and details appear only on the errors that set them. The schema stays open because HTTPException.data may carry extra keys.

Name Type Description Required
code string Yes
details object No
message string Yes
params string No
status integer Yes

EventStreamResponse

Name Type Description Required
EventStreamResponse string

ExecutionContentType

Name Type Description Required
ExecutionContentType string

FileExtensionBlockedError

The file extension is blocked for security reasons.

Name Type Description Required
FileExtensionBlockedError The file extension is blocked for security reasons.

FileInputConfig

Name Type Description Required
allowed_file_extensions [ string ] No
allowed_file_types [ FileType ] No
allowed_file_upload_methods [ FileTransferMethod ] No
output_variable_name string Yes
type string No

FileListInputConfig

Name Type Description Required
allowed_file_extensions [ string ] No
allowed_file_types [ FileType ] No
allowed_file_upload_methods [ FileTransferMethod ] No
number_limits integer No
output_variable_name string Yes
type string No

FileResponse

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

FileTooLargeError

File size exceeded. {message}

Name Type Description Required
FileTooLargeError File size exceeded. {message}

FileTransferMethod

Name Type Description Required
FileTransferMethod string

FileType

Name Type Description Required
FileType string

FileWithSignedUrl

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

FilenameNotExistsError

The specified filename does not exist.

Name Type Description Required
FilenameNotExistsError The specified filename does not exist.

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 string No

FormInputConfig

Name Type Description Required
FormInputConfig ParagraphInputConfig
SelectInputConfig
FileInputConfig
FileListInputConfig

GeneratedAppResponse

Name Type Description Required
GeneratedAppResponse

HumanInputContent

Name Type Description Required
form_definition HumanInputFormDefinition No
form_submission_data HumanInputFormSubmissionData No
submitted boolean Yes
type ExecutionContentType No
workflow_run_id string Yes

HumanInputFileUploadFormPayload

Parsed multipart form fields for HITL uploads.

Name Type Description Required
url string Remote file URL No

HumanInputFormDefinition

Name Type Description Required
actions [ UserActionConfig ] No
display_in_ui boolean No
expiration_time integer Yes
form_content string Yes
form_id string Yes
form_token string No
inputs [ FormInputConfig ] No
node_id string Yes
node_title string Yes
resolved_default_values object No

HumanInputFormDefinitionResponse

Name Type Description Required
expiration_time integer Yes
form_content string Yes
inputs [ FormInputConfig ] Yes
resolved_default_values object Yes
site WebAppSiteResponse No
user_actions [ UserActionConfig ] Yes

HumanInputFormExpiredError

Name Type Description Required
HumanInputFormExpiredError

HumanInputFormSubmissionData

Name Type Description Required
action_id string Yes
action_text string Yes
node_id string Yes
node_title string Yes
rendered_content string Yes
submitted_data object No

HumanInputFormSubmitPayload

Name Type Description Required
action string ID of the action button the recipient selected. Must match one of the id values from the form's user_actions list. Yes
inputs object Submitted human input values keyed by output variable name. Use a string for paragraph or select input values, a file mapping for file inputs, and a list of file mappings for file-list inputs. Local file mappings use transfer_method=local_file with upload_file_id; remote file mappings use transfer_method=remote_url with url or remote_url. Yes

HumanInputFormSubmitResponse

Name Type Description Required

HumanInputFormSubmittedError

This form has already been submitted by another user, form_id={form_id}

Name Type Description Required
HumanInputFormSubmittedError This form has already been submitted by another user, form_id={form_id}

HumanInputUploadTokenResponse

Name Type Description Required
expires_at integer Yes
upload_token string Yes

I18nObject

Model class for i18n object.

Name Type Description Required
en_US string Yes
ja_JP string No
pt_BR string No
zh_Hans string No

InvalidEmailError

The email address is not valid.

Name Type Description Required
InvalidEmailError The email address is not valid.

InvalidFormDataError

Name Type Description Required
InvalidFormDataError

InvalidOrExpiredTokenError

The token is invalid or has expired.

Name Type Description Required
InvalidOrExpiredTokenError The token is invalid or has expired.

InvalidParamError

Name Type Description Required
InvalidParamError

InvalidUploadTokenError

Upload token is invalid or expired.

Name Type Description Required
InvalidUploadTokenError Upload token is invalid or expired.

JSONValueType

Name Type Description Required
JSONValueType

JsonValue

Name Type Description Required
JsonValue

KnowledgeFsCitation

Immutable evidence identity; no signed URLs, tokens or storage keys.

Name Type Description Required
artifact_hash string Yes
control_space_id string Yes
document_asset_id string Yes
document_title string No
document_version integer No
end_offset integer No
id string Yes
node_id string Yes
page_number integer No
parse_artifact_id string No
section_path [ string ] No
space_name string Yes
start_offset integer No

LicenseStatus

Name Type Description Required
LicenseStatus string

LicenseStatusModel

Name Type Description Required
status LicenseStatus Yes

LoginMode

Name Type Description Required
LoginMode string

LoginPayload

Name Type Description Required
email string Yes
password string Yes

LoginStatusQuery

Name Type Description Required
app_code string Web app code No
mode LoginMode end_user reports actual Account authentication instead of Public App access No
user_id string End user session ID No

LoginStatusResponse

Name Type Description Required
app_logged_in boolean Yes
logged_in boolean Yes

MalformedUploadTokenError

The upload token is malformed.

Name Type Description Required
MalformedUploadTokenError The upload token is malformed.

MessageFeedbackPayload

Name Type Description Required
content string Optional text feedback providing additional detail. No
rating string,
Available values: "dislike", "like"
Feedback rating. Set to null to revoke previously submitted feedback. No

MessageFile

Name Type Description Required
belongs_to string No
filename string Yes
id string (uuid) Yes
mime_type string No
size integer No
transfer_method string Yes
type string Yes
upload_file_id string No
url string No

MessageListQuery

Name Type Description Required
conversation_id string Conversation ID. Yes
first_id string The ID of the first chat record on the current page. Omit this value to fetch the latest messages; for subsequent pages, use the first message ID from the current list to fetch older messages. No
limit integer,
Default: 20
Number of chat history messages to return per request. No

MessageMoreLikeThisQuery

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

ModelCurrentlyNotSupportError

Dify Hosted OpenAI trial currently not support the GPT-4 model.

Name Type Description Required
ModelCurrentlyNotSupportError Dify Hosted OpenAI trial currently not support the GPT-4 model.

ModelSelectorScope

Name Type Description Required
ModelSelectorScope string

NoAudioUploadedError

Please upload your audio.

Name Type Description Required
NoAudioUploadedError Please upload your audio.

NoFileUploadedError

Please upload your file.

Name Type Description Required
NoFileUploadedError Please upload your file.

NodeConnectionStatus

The current selection's effective status for one published Tool node.

Name Type Description Required
NodeConnectionStatus string The current selection's effective status for one published Tool node.

NotChatAppError

Please check if your app mode matches the right API route.

Name Type Description Required
NotChatAppError Please check if your app mode matches the right API route.

NotCompletionAppError

Please check if your Completion app mode matches the right API route.

Name Type Description Required
NotCompletionAppError Please check if your Completion app mode matches the right API route.

NotWorkflowAppError

Please check if your Workflow app mode matches the right API route.

Name Type Description Required
NotWorkflowAppError Please check if your Workflow app mode matches the right API route.

Option

Name Type Description Required
label I18nObject The label of the option Yes
value string The value of the option Yes

ParagraphInputConfig

Form input definition.

Name Type Description Required
default StringSource Raw default-value configuration for the paragraph input. Runtime-resolved values are exposed in the surrounding resolved_default_values mapping. No
output_variable_name string Yes
type string No

PassportAccessTokenResponse

Name Type Description Required
access_token string Yes

PassportLoginPayload

Name Type Description Required
code_verifier string Yes
login_code string Yes

PassportQuery

Name Type Description Required
mode LoginMode end_user reuses Account login; console preserves legacy Web App authentication No
user_id string End user session ID No

PasswordMismatchError

The passwords do not match.

Name Type Description Required
PasswordMismatchError The passwords do not match.

PasswordResetRateLimitExceededError

Too many password reset emails have been sent. Please try again in {minutes} minutes.

Name Type Description Required
PasswordResetRateLimitExceededError Too many password reset emails have been sent. Please try again in {minutes} minutes.

PluginInstallationPermissionModel

Name Type Description Required
plugin_installation_scope PluginInstallationScope Yes
restrict_to_marketplace_only boolean Yes

PluginInstallationScope

Name Type Description Required
PluginInstallationScope string

ProviderConfig

Model class for common provider settings like credentials

Name Type Description Required
default integer
string
number
boolean
No
help I18nObject No
label I18nObject No
multiple boolean No
name string The name of the credentials Yes
options [ Option ] No
placeholder I18nObject No
required boolean No
scope AppSelectorScope
ModelSelectorScope
ToolSelectorScope
No
type ProviderConfigType The type of the credentials Yes
url string No

ProviderConfigType

Name Type Description Required
ProviderConfigType string

ProviderNotInitializeError

No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials.

Name Type Description Required
ProviderNotInitializeError No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials.

ProviderNotSupportSpeechToTextError

Provider not support speech to text.

Name Type Description Required
ProviderNotSupportSpeechToTextError Provider not support speech to text.

ProviderQuotaExceededError

Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials.

Name Type Description Required
ProviderQuotaExceededError Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials.

RateLimitError

Rate Limit Error

Name Type Description Required
RateLimitError Rate Limit Error

RemoteFileAccessDeniedError

The remote file cannot be accessed without authorization.

Name Type Description Required
RemoteFileAccessDeniedError The remote file cannot be accessed without authorization.

RemoteFileInfo

Name Type Description Required
file_length integer Yes
file_type string Yes

RemoteFileInvalidResponseError

The remote file server returned an invalid response.

Name Type Description Required
RemoteFileInvalidResponseError The remote file server returned an invalid response.

RemoteFileInvalidUrlError

The remote file URL is invalid.

Name Type Description Required
RemoteFileInvalidUrlError The remote file URL is invalid.

RemoteFileNotFoundError

The remote file could not be found.

Name Type Description Required
RemoteFileNotFoundError The remote file could not be found.

RemoteFileUnavailableError

The remote file is temporarily unavailable.

Name Type Description Required
RemoteFileUnavailableError The remote file is temporarily unavailable.

RemoteFileUploadPayload

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

RemoteFileUrlBlockedError

The remote file URL is not allowed.

Name Type Description Required
RemoteFileUrlBlockedError The remote file URL is not allowed.

ResultResponse

Name Type Description Required
result string Yes

RetrieverResource

Name Type Description Required
content string No
created_at integer No
data_source_type string No
dataset_id string No
dataset_name string No
doc_metadata object No
document_asset_id string No
document_id string No
document_name string No
document_revision integer No
document_version integer No
files [ object ] No
hit_count integer No
id string (uuid) No
index_node_hash string No
knowledge_fs_citation KnowledgeFsCitation No
message_id string (uuid) No
page integer No
position integer Yes
retriever_from string No
score number No
segment_id string No
segment_position integer No
summary string No
title string No
word_count integer No

SSOProtocol

Name Type Description Required
SSOProtocol string

SavedMessageCreatePayload

Name Type Description Required
message_id string Yes

SavedMessageInfiniteScrollPagination

Name Type Description Required
data [ SavedMessageItem ] Yes
has_more boolean Yes
limit integer Yes

SavedMessageItem

Name Type Description Required
answer string Yes
created_at integer No
feedback SimpleFeedback No
id string Yes
inputs object Yes
message_files [ MessageFile ] Yes
query string Yes

SavedMessageListQuery

Name Type Description Required
last_id string No
limit integer,
Default: 20
No

SelectInputConfig

Name Type Description Required
option_source StringListSource Source of options for select inputs. Present only when type is select. Yes
output_variable_name string Yes
type string No

ShallowJSONValue

Name Type Description Required
ShallowJSONValue string
integer
number
boolean
object
[ object ]

SimpleConversation

Name Type Description Required
created_at integer No
id string (uuid) Yes
inputs object Yes
introduction string No
name string Yes
status string Yes
updated_at integer No

SimpleFeedback

Name Type Description Required
rating string No

SimpleResultDataResponse

Name Type Description Required
data string Yes
result string Yes

SimpleResultResponse

Name Type Description Required
result string Operation result. Yes

SpeechToTextDisabledError

Speech to text is disabled.

Name Type Description Required
SpeechToTextDisabledError Speech to text is disabled.

StringListSource

Name Type Description Required
selector [ string ] Variable reference path when type is variable. No
type ValueSourceType Origin of the options. constant means value lists the options literally; variable means selector points to an array[string] workflow variable that provides them. Yes
value [ string ] Literal option list when type is constant. No

StringSource

Default configuration for form inputs.

Name Type Description Required
selector [ string ] No
type ValueSourceType Yes
value string No

SuggestedQuestionsResponse

Name Type Description Required
data [ string ] Yes

SystemFeatureModel

Non-sensitive bootstrap snapshot exposed before Console or Web authentication.

Name Type Description Required
agent_tracing_api_collection_enabled boolean Deployment-level API gate for Agent trace collection, independent of workspace and provider configuration. Does not indicate Agent runtime, worker, or provider health or confirm trace delivery. Yes
branding BrandingModel Yes
deployment_edition DeploymentEdition Yes
enable_app_deploy boolean Yes
enable_change_email boolean,
Default: true
Yes
enable_collaboration_mode boolean,
Default: true
Yes
enable_creators_platform boolean Yes
enable_email_code_login boolean Yes
enable_email_password_login boolean,
Default: true
Yes
enable_explore_banner boolean Yes
enable_learn_app boolean,
Default: true
Yes
enable_marketplace boolean Yes
enable_social_oauth_login boolean Yes
enable_step_by_step_tour boolean Yes
is_allow_register boolean Yes
is_email_setup boolean Yes
license LicenseStatusModel Yes
plugin_installation_permission PluginInstallationPermissionModel Yes
rbac_enabled boolean Yes
sso_enforced_for_signin boolean Yes
sso_enforced_for_signin_protocol SSOProtocol Yes
webapp_auth WebAppAuthModel Yes

SystemParameters

Name Type Description Required
audio_file_size_limit integer Yes
file_size_limit integer Yes
image_file_size_limit integer Yes
video_file_size_limit integer Yes
workflow_file_upload_limit integer Yes

TextToAudioPayload

Name Type Description Required
message_id string Message ID. Takes priority over text when both are provided. No
streaming boolean Reserved for compatibility; TTS response streaming is determined by the provider output. No
text string Speech content to convert. No
voice string Voice to use for text-to-speech. Available voices depend on the TTS provider configured for this app. Omit to use the app's configured voice when available; that value is exposed by Get App Parameters as text_to_speech.voice. No

TooManyFilesError

Only one file is allowed.

Name Type Description Required
TooManyFilesError Only one file is allowed.

ToolSelectorScope

Name Type Description Required
ToolSelectorScope string

TriggerWorkflowServiceModeUnavailableError

This workflow uses a trigger entry and cannot be invoked through Web App, Service API, OpenAPI, or MCP.

Name Type Description Required
TriggerWorkflowServiceModeUnavailableError This workflow uses a trigger entry and cannot be invoked through Web App, Service API, OpenAPI, or MCP.

UnsupportedAudioTypeError

Audio type not allowed.

Name Type Description Required
UnsupportedAudioTypeError Audio type not allowed.

UnsupportedFileTypeError

File type not allowed.

Name Type Description Required
UnsupportedFileTypeError File type not allowed.

UploadTokenRequiredError

Upload token is required.

Name Type Description Required
UploadTokenRequiredError Upload token is required.

UserActionConfig

User action configuration.

Name Type Description Required
button_style ButtonStyle No
id string Yes
title string Yes

ValueSourceType

ValueSourceType records whether the value comes from a static setting in form definition, or a variable while the workflow is running.

Name Type Description Required
ValueSourceType string ValueSourceType records whether the value comes from a static setting in form definition, or a variable while the workflow is running.

VerificationTokenResponse

Name Type Description Required
email string Yes
is_valid boolean Yes
token string Yes

WebAppAuthModel

Name Type Description Required
allow_email_code_login boolean Yes
allow_email_password_login boolean Yes
allow_public_access boolean,
Default: true
Yes
allow_sso boolean Yes
enabled boolean Yes
sso_config WebAppAuthSSOModel Yes

WebAppAuthSSOModel

Name Type Description Required
protocol SSOProtocol Yes

WebAppConnectionRequirement

Name Type Description Required
allowed_credential_types [ ConnectionCredentialType ] Yes
icon string Plugin icon URL, using the Integrations asset endpoint. Yes
icon_dark string Dark plugin icon URL; null when the plugin has no dark icon. Yes
node_id string Independent authorization node ID to use as the selection key. Yes
node_ids [ string ] The authorization node and all nodes explicitly reusing it. Yes
plugin_unique_identifier string Exact plugin artifact recorded in connection_revision. Yes
provider string Yes
provider_label string Tool provider display name in the WebApp's configured language, falling back to English. Yes
purpose string Yes
title string Yes

WebAppCustomConfigResponse

Name Type Description Required
remove_webapp_brand boolean Yes
replace_webapp_logo string No

WebAppParametersResponse

Name Type Description Required
account_login_enabled boolean Whether explicit Account login and Passport exchange are enabled. Yes
account_login_url string Account-origin sign-in page for the existing Web App login flow Yes
allow_anonymous_end_user_auth boolean Whether Guest identities may manage and use personal Connections; does not control App entry. Yes
annotation_reply { "enabled": boolean } Yes
connection_requirements [ WebAppConnectionRequirement ] Authorization requirements and exact plugin artifacts in connection_revision, without personal state. Yes
connection_revision string Opaque revision of connection requirements, plugin artifacts and OAuth Client configurations; null for other app modes. Return it unchanged in connection requests and runs. Yes
file_upload { "allowed_file_extensions": [ string ], "allowed_file_types": [ string,
Available values: "audio", "custom", "document", "image", "video" ], "allowed_file_upload_methods": [ string,
Available values: "local_file", "remote_url" ], "enabled": boolean, "image": { "detail": string, "enabled": boolean, "number_limits": integer, "transfer_methods": [ string ] }, "number_limits": integer }
Yes
more_like_this { "enabled": boolean } Yes
opening_statement string No
requires_end_user_connections boolean Whether this published version declares EndUser tool connections, independent of user readiness. Yes
retriever_resource { "enabled": boolean } Yes
sensitive_word_avoidance { "enabled": boolean } Yes
speech_to_text { "enabled": boolean } Yes
suggested_questions [ string ] Yes
suggested_questions_after_answer { "enabled": boolean } Yes
system_parameters SystemParameters System-level parameter limits. Yes
text_to_speech { "autoPlay": string, "enabled": boolean, "language": string, "voice": string } Yes
user_input_form [ object
object
object
object
object
object
object
object
object ]
Yes

WebAppSiteResponse

Name Type Description Required
app_id string Yes
can_replace_logo boolean Yes
custom_config WebAppCustomConfigResponse No
enable_site boolean Yes
end_user_id string No
mode AppMode Yes
model_config WebModelConfigResponse No
plan string Yes
site WebSiteResponse Yes

WebFormRateLimitExceededError

Too many form requests. Please try again later.

Name Type Description Required
WebFormRateLimitExceededError Too many form requests. Please try again later.

WebLoginUnavailableError

Web App login is temporarily unavailable. Please retry.

Name Type Description Required
WebLoginUnavailableError Web App login is temporarily unavailable. Please retry.

WebMessageInfiniteScrollPagination

Name Type Description Required
data [ WebMessageListItem ] Yes
has_more boolean Yes
limit integer Yes

WebMessageListItem

Name Type Description Required
agent_thoughts [ AgentThought ] Yes
answer string Yes
answer_tokens integer No
conversation_id string (uuid) Yes
created_at integer No
currency string No
error string No
extra_contents [ HumanInputContent ] Yes
feedback SimpleFeedback No
id string (uuid) Yes
inputs object Yes
message_files [ MessageFile ] Yes
message_tokens integer No
metadata JSONValueType No
parent_message_id string No
provider_response_latency float No
query string Yes
retriever_resources [ RetrieverResource ] Yes
status string Yes
total_price string No
total_tokens integer Yes

WebModelConfigResponse

Name Type Description Required
model No
more_like_this No
opening_statement string No
pre_prompt string No
suggested_questions No
suggested_questions_after_answer No
user_input_form No

WebSiteResponse

Name Type Description Required
chat_color_theme string No
chat_color_theme_inverted boolean Yes
copyright string No
custom_disclaimer string No
default_language string No
description string No
icon string No
icon_background string No
icon_type string No
icon_url string No
input_placeholder string No
privacy_policy string No
prompt_public boolean No
show_workflow_steps boolean No
title string Yes
use_icon_as_answer_icon boolean No

WorkflowRunPayload

Name Type Description Required
connection_revision string Opaque connection contract revision from Web App parameters. Required for EndUser tool authentication; must match current authorization requirements; verified plugin upgrades may inherit consent. No
connections object Explicit choices keyed by independent authorization node ID. Required for EndUser tool authentication. Missing/null choices are not filled from saved selections. No
files [ object
object
object
object ]
File list for workflow system file inputs. Available when file upload is enabled for the workflow. To attach a local file, first upload it via Upload File and use the returned id as upload_file_id with transfer_method: local_file. No
inputs object Key-value pairs for workflow input variables. Values for file-type variables should be arrays of file objects with type, transfer_method, and either url or upload_file_id. Refer to the user_input_form field in the Get App Parameters response to discover the variable names and types expected by your app. Yes