Files
dify/api/openapi/markdown/web-swagger.md
2026-05-19 07:18:37 +00:00

1389 lines
34 KiB
Markdown

# Web API
Public APIs for web applications including file uploads, chat interactions, and app management
## Version: 1.0
### Security
**Bearer**
| apiKey | *API Key* |
| ------ | --------- |
| Description | Type: Bearer {your-api-key} |
| In | header |
| Name | Authorization |
---
## web
Web application API operations
### /audio-to-text
#### POST
##### Summary
Convert audio to text
##### Description
Convert audio file to text using speech-to-text service.
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 413 | Audio file too large |
| 415 | Unsupported audio type |
| 500 | Internal Server Error |
### /chat-messages
#### POST
##### Description
Create a chat message for conversational applications.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [ChatMessagePayload](#chatmessagepayload) |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | App Not Found |
| 500 | Internal Server Error |
### /chat-messages/{task_id}/stop
#### POST
##### Description
Stop a running chat message task.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| task_id | path | Task ID to stop | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Success | [SimpleResultResponse](#simpleresultresponse) |
| 400 | Bad Request | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Task Not Found | |
| 500 | Internal Server Error | |
### /completion-messages
#### POST
##### Description
Create a completion message for text generation applications.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [CompletionMessagePayload](#completionmessagepayload) |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | App Not Found |
| 500 | Internal Server Error |
### /completion-messages/{task_id}/stop
#### POST
##### Description
Stop a running completion message task.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| task_id | path | Task ID to stop | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Success | [SimpleResultResponse](#simpleresultresponse) |
| 400 | Bad Request | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Task Not Found | |
| 500 | Internal Server Error | |
### /conversations
#### GET
##### Description
Retrieve paginated list of conversations for a chat application.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| last_id | query | Last conversation ID for pagination | No | string |
| limit | query | Number of conversations to return (1-100) | No | integer |
| pinned | query | Filter by pinned status | No | string |
| sort_by | query | Sort order | No | string |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | App Not Found or Not a Chat App |
| 500 | Internal Server Error |
### /conversations/{c_id}
#### DELETE
##### Description
Delete a specific conversation.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| c_id | path | Conversation UUID | Yes | string |
##### Responses
| Code | Description |
| ---- | ----------- |
| 204 | Conversation deleted successfully |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Conversation Not Found or Not a Chat App |
| 500 | Internal Server Error |
### /conversations/{c_id}/name
#### POST
##### Description
Rename a specific conversation with a custom name or auto-generate one.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| c_id | path | Conversation UUID | Yes | string |
| auto_generate | query | Auto-generate conversation name | No | boolean |
| name | query | New conversation name | No | string |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Conversation renamed successfully |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Conversation Not Found or Not a Chat App |
| 500 | Internal Server Error |
### /conversations/{c_id}/pin
#### PATCH
##### Description
Pin a specific conversation to keep it at the top of the list.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| c_id | path | Conversation UUID | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Conversation pinned successfully | [ResultResponse](#resultresponse) |
| 400 | Bad Request | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Conversation Not Found or Not a Chat App | |
| 500 | Internal Server Error | |
### /conversations/{c_id}/unpin
#### PATCH
##### Description
Unpin a specific conversation to remove it from the top of the list.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| c_id | path | Conversation UUID | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Conversation unpinned successfully | [ResultResponse](#resultresponse) |
| 400 | Bad Request | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Conversation Not Found or Not a Chat App | |
| 500 | Internal Server Error | |
### /email-code-login
#### POST
##### Description
Send email verification code for login
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [EmailCodeLoginSendPayload](#emailcodeloginsendpayload) |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Email code sent successfully | [SimpleResultDataResponse](#simpleresultdataresponse) |
| 400 | Bad request - invalid email format | |
| 404 | Account not found | |
### /email-code-login/validity
#### POST
##### Description
Verify email code and complete login
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [EmailCodeLoginVerifyPayload](#emailcodeloginverifypayload) |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Email code verified and login successful | [AccessTokenResultResponse](#accesstokenresultresponse) |
| 400 | Bad request - invalid code or token | |
| 401 | Invalid token or expired code | |
| 404 | Account not found | |
### /files/upload
#### POST
##### Summary
Upload a file for use in web applications
##### Description
Upload a file for use in web applications
Accepts file uploads for use within web applications, supporting
multiple file types with automatic validation and storage.
Args:
app_model: The associated application model
end_user: The end user uploading the file
Form Parameters:
file: The file to upload (required)
source: Optional source type (datasets or None)
Returns:
dict: File information including ID, URL, and metadata
int: HTTP status code 201 for success
Raises:
NoFileUploadedError: No file provided in request
TooManyFilesError: Multiple files provided (only one allowed)
FilenameNotExistsError: File has no filename
FileTooLargeError: File exceeds size limit
UnsupportedFileTypeError: File type not supported
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 201 | File uploaded successfully | [FileResponse](#fileresponse) |
| 400 | Bad request - invalid file or parameters | |
| 413 | File too large | |
| 415 | Unsupported file type | |
### /forgot-password
#### POST
##### Description
Send password reset email
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [ForgotPasswordSendPayload](#forgotpasswordsendpayload) |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Password reset email sent successfully | [SimpleResultDataResponse](#simpleresultdataresponse) |
| 400 | Bad request - invalid email format | |
| 404 | Account not found | |
| 429 | Too many requests - rate limit exceeded | |
### /forgot-password/resets
#### POST
##### Description
Reset user password with verification token
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [ForgotPasswordResetPayload](#forgotpasswordresetpayload) |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Password reset successfully | [SimpleResultResponse](#simpleresultresponse) |
| 400 | Bad request - invalid parameters or password mismatch | |
| 401 | Invalid or expired token | |
| 404 | Account not found | |
### /forgot-password/validity
#### POST
##### Description
Verify password reset token validity
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [ForgotPasswordCheckPayload](#forgotpasswordcheckpayload) |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Token is valid | [VerificationTokenResponse](#verificationtokenresponse) |
| 400 | Bad request - invalid token format | |
| 401 | Invalid or expired token | |
### /form/human_input/{form_token}
#### GET
##### Summary
Get human input form definition by token
##### Description
GET /api/form/human_input/<form_token>
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| form_token | path | | Yes | string |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
#### POST
##### Summary
Submit human input form by token
##### Description
POST /api/form/human_input/<form_token>
Request body:
{
"inputs": {
"content": "User input content"
},
"action": "Approve"
}
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| form_token | path | | Yes | string |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
### /login
#### POST
##### Summary
Authenticate user and login
##### Description
Authenticate user for web application access
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [LoginPayload](#loginpayload) |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Authentication successful | [AccessTokenResultResponse](#accesstokenresultresponse) |
| 400 | Bad request - invalid email or password format | |
| 401 | Authentication failed - email or password mismatch | |
| 403 | Account banned or login disabled | |
| 404 | Account not found | |
### /login/status
#### GET
##### Description
Check login status
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Login status | [LoginStatusResponse](#loginstatusresponse) |
| 401 | Login status | |
### /logout
#### POST
##### Description
Logout user from web application
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Logout successful | [SimpleResultResponse](#simpleresultresponse) |
### /messages
#### GET
##### Description
Retrieve paginated list of messages from a conversation in a chat application.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| conversation_id | query | Conversation UUID | Yes | string |
| first_id | query | First message ID for pagination | No | string |
| limit | query | Number of messages to return (1-100) | No | integer |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Conversation Not Found or Not a Chat App |
| 500 | Internal Server Error |
### /messages/{message_id}/feedbacks
#### POST
##### Description
Submit feedback (like/dislike) for a specific message.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| message_id | path | Message UUID | Yes | string |
| content | query | Feedback content | No | string |
| rating | query | Feedback rating | No | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Feedback submitted successfully | [ResultResponse](#resultresponse) |
| 400 | Bad Request | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Message Not Found | |
| 500 | Internal Server Error | |
### /messages/{message_id}/more-like-this
#### GET
##### Description
Generate a new completion similar to an existing message (completion apps only).
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| message_id | path | | Yes | string |
| payload | body | | Yes | [MessageMoreLikeThisQuery](#messagemorelikethisquery) |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request - Not a completion app or feature disabled |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Message Not Found |
| 500 | Internal Server Error |
### /messages/{message_id}/suggested-questions
#### GET
##### Description
Get suggested follow-up questions after a message (chat apps only).
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| message_id | path | Message UUID | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Success | [SuggestedQuestionsResponse](#suggestedquestionsresponse) |
| 400 | Bad Request - Not a chat app or feature disabled | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Message Not Found or Conversation Not Found | |
| 500 | Internal Server Error | |
### /meta
#### GET
##### Summary
Get app meta
##### Description
Retrieve the metadata for a specific app.
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | App Not Found |
| 500 | Internal Server Error |
### /parameters
#### GET
##### Summary
Retrieve app parameters
##### Description
Retrieve the parameters for a specific app.
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | App Not Found |
| 500 | Internal Server Error |
### /passport
#### GET
##### Description
Get authentication passport for web application access
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Passport retrieved successfully |
| 401 | Unauthorized - missing app code or invalid authentication |
| 404 | Application or user not found |
### /remote-files/upload
#### POST
##### Summary
Upload a file from a remote URL
##### Description
Upload a file from a remote URL
Downloads a file from the provided remote URL and uploads it
to the platform storage for use in web applications.
Args:
app_model: The associated application model
end_user: The end user making the request
JSON Parameters:
url: The remote URL to download the file from (required)
Returns:
dict: File information including ID, signed URL, and metadata
int: HTTP status code 201 for success
Raises:
RemoteFileUploadError: Failed to fetch file from remote URL
FileTooLargeError: File exceeds size limit
UnsupportedFileTypeError: File type not supported
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 201 | Remote file uploaded successfully | [FileWithSignedUrl](#filewithsignedurl) |
| 400 | Bad request - invalid URL or parameters | |
| 413 | File too large | |
| 415 | Unsupported file type | |
| 500 | Failed to fetch remote file | |
### /remote-files/{url}
#### GET
##### Summary
Get information about a remote file
##### Description
Get information about a remote file
Retrieves basic information about a file located at a remote URL,
including content type and content length.
Args:
app_model: The associated application model
end_user: The end user making the request
url: URL-encoded path to the remote file
Returns:
dict: Remote file information including type and length
Raises:
HTTPException: If the remote file cannot be accessed
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| url | path | | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Remote file information retrieved successfully | [RemoteFileInfo](#remotefileinfo) |
| 400 | Bad request - invalid URL | |
| 404 | Remote file not found | |
| 500 | Failed to fetch remote file | |
### /saved-messages
#### GET
##### Description
Retrieve paginated list of saved messages for a completion application.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| last_id | query | Last message ID for pagination | No | string |
| limit | query | Number of messages to return (1-100) | No | integer |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request - Not a completion app |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | App Not Found |
| 500 | Internal Server Error |
#### POST
##### Description
Save a specific message for later reference.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| message_id | query | Message UUID to save | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Message saved successfully | [ResultResponse](#resultresponse) |
| 400 | Bad Request - Not a completion app | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Message Not Found | |
| 500 | Internal Server Error | |
### /saved-messages/{message_id}
#### DELETE
##### Description
Remove a message from saved messages.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| message_id | path | Message UUID to delete | Yes | string |
##### Responses
| Code | Description |
| ---- | ----------- |
| 204 | Message removed successfully |
| 400 | Bad Request - Not a completion app |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Message Not Found |
| 500 | Internal Server Error |
### /site
#### GET
##### Summary
Retrieve app site info
##### Description
Retrieve app site information and configuration.
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | App Not Found |
| 500 | Internal Server Error |
### /system-features
#### GET
##### Summary
Get system feature flags and configuration
##### Description
Get system feature flags and configuration
Returns the current system feature flags and configuration
that control various functionalities across the platform.
Returns:
dict: System feature configuration object
This endpoint is akin to the `SystemFeatureApi` endpoint in api/controllers/console/feature.py,
except it is intended for use by the web app, instead of the console dashboard.
NOTE: This endpoint is unauthenticated by design, as it provides system features
data required for webapp initialization.
Authentication would create circular dependency (can't authenticate without webapp loading).
Only non-sensitive configuration data should be returned by this endpoint.
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | System features retrieved successfully | [SystemFeatureModel](#systemfeaturemodel) |
| 500 | Internal server error | |
### /text-to-audio
#### POST
##### Summary
Convert text to audio
##### Description
Convert text to audio using text-to-speech service.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [TextToAudioPayload](#texttoaudiopayload) |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 500 | Internal Server Error |
### /webapp/access-mode
#### GET
##### Description
Retrieve the access mode for a web application (public or restricted).
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| appCode | query | Application code | No | string |
| appId | query | Application ID | No | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Success | [AccessModeResponse](#accessmoderesponse) |
| 400 | Bad Request | |
| 500 | Internal Server Error | |
### /webapp/permission
#### GET
##### Description
Check if user has permission to access a web application.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| appId | query | Application ID | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Success | [BooleanResultResponse](#booleanresultresponse) |
| 400 | Bad Request | |
| 401 | Unauthorized | |
| 500 | Internal Server Error | |
### /workflows/run
#### POST
##### Summary
Run workflow
##### Description
Execute a workflow with provided inputs and files.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| payload | body | | Yes | [WorkflowRunPayload](#workflowrunpayload) |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | App Not Found |
| 500 | Internal Server Error |
### /workflows/tasks/{task_id}/stop
#### POST
##### Summary
Stop workflow task
##### Description
Stop a running workflow task.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| task_id | path | Task ID to stop | Yes | string |
##### Responses
| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Success | [SimpleResultResponse](#simpleresultresponse) |
| 400 | Bad Request | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Task Not Found | |
| 500 | Internal Server Error | |
---
## default
Default namespace
### /workflow/{task_id}/events
#### GET
##### Summary
Get workflow execution events stream after resume
##### Description
GET /api/workflow/<task_id>/events
Returns Server-Sent Events stream.
##### Parameters
| Name | Located in | Description | Required | Schema |
| ---- | ---------- | ----------- | -------- | ------ |
| task_id | path | | Yes | string |
##### Responses
| Code | Description |
| ---- | ----------- |
| 200 | Success |
---
### Models
#### AccessModeResponse
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| accessMode | string | | Yes |
#### AccessTokenData
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| access_token | string | | Yes |
#### AccessTokenResultResponse
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| data | [AccessTokenData](#accesstokendata) | | Yes |
| result | string | | Yes |
#### AppAccessModeQuery
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| appCode | string | Application code | No |
| appId | string | Application ID | No |
#### 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 |
#### ChatMessagePayload
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| 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 | Response mode: blocking or streaming<br>*Enum:* `"blocking"`, `"streaming"` | No |
| retriever_from | string | Source of retriever | No |
#### 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 | Response mode: blocking or streaming<br>*Enum:* `"blocking"`, `"streaming"` | No |
| retriever_from | string | Source of retriever | No |
#### ConversationListQuery
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| last_id | string | | No |
| limit | integer | | No |
| pinned | boolean | | No |
| sort_by | string | *Enum:* `"-created_at"`, `"-updated_at"`, `"created_at"`, `"updated_at"` | No |
#### ConversationRenamePayload
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| auto_generate | boolean | | No |
| name | string | | No |
#### 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 |
#### 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 | | Yes |
| mime_type | string | | No |
| name | string | | Yes |
| original_url | string | | No |
| preview_url | string | | No |
| size | integer | | Yes |
| source_url | string | | No |
| tenant_id | string | | No |
| user_id | string | | No |
#### 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 |
#### 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 |
#### LicenseLimitationModel
- enabled: whether this limit is enforced
- size: current usage count
- limit: maximum allowed count; 0 means unlimited
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| enabled | boolean | Whether this limit is currently active | Yes |
| limit | integer | Maximum number of resources allowed; 0 means no limit | Yes |
| size | integer | Number of resources already consumed | Yes |
#### LicenseModel
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| expired_at | string | | Yes |
| status | [LicenseStatus](#licensestatus) | | Yes |
| workspaces | [LicenseLimitationModel](#licenselimitationmodel) | | Yes |
#### LicenseStatus
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| LicenseStatus | string | | |
#### LoginPayload
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| email | string | | Yes |
| password | string | | Yes |
#### LoginStatusResponse
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| app_logged_in | boolean | | Yes |
| logged_in | boolean | | Yes |
#### MessageFeedbackPayload
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| content | string | | No |
| rating | string | *Enum:* `"dislike"`, `"like"` | No |
#### MessageListQuery
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| conversation_id | string | Conversation UUID | Yes |
| first_id | string | First message ID for pagination | No |
| limit | integer | Number of messages to return (1-100) | No |
#### MessageMoreLikeThisQuery
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| response_mode | string | Response mode<br>*Enum:* `"blocking"`, `"streaming"` | Yes |
#### PluginInstallationPermissionModel
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| plugin_installation_scope | [PluginInstallationScope](#plugininstallationscope) | | Yes |
| restrict_to_marketplace_only | boolean | | Yes |
#### PluginInstallationScope
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| PluginInstallationScope | string | | |
#### PluginManagerModel
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| enabled | boolean | | Yes |
#### RemoteFileInfo
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| file_length | integer | | Yes |
| file_type | string | | Yes |
#### RemoteFileUploadPayload
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| url | string (uri) | Remote file URL | Yes |
#### ResultResponse
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| result | string | | Yes |
#### SavedMessageCreatePayload
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| message_id | string | | Yes |
#### SavedMessageListQuery
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| last_id | string | | No |
| limit | integer | | No |
#### SimpleResultDataResponse
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| data | string | | Yes |
| result | string | | Yes |
#### SimpleResultResponse
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| result | string | | Yes |
#### SuggestedQuestionsResponse
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| data | [ string ] | | Yes |
#### SystemFeatureModel
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| app_dsl_version | string | | Yes |
| branding | [BrandingModel](#brandingmodel) | | Yes |
| enable_app_deploy | boolean | | Yes |
| enable_change_email | boolean | | Yes |
| enable_collaboration_mode | boolean | | Yes |
| enable_creators_platform | boolean | | Yes |
| enable_email_code_login | boolean | | Yes |
| enable_email_password_login | boolean | | Yes |
| enable_explore_banner | boolean | | Yes |
| enable_marketplace | boolean | | Yes |
| enable_social_oauth_login | boolean | | Yes |
| enable_trial_app | boolean | | Yes |
| is_allow_create_workspace | boolean | | Yes |
| is_allow_register | boolean | | Yes |
| is_email_setup | boolean | | Yes |
| license | [LicenseModel](#licensemodel) | | Yes |
| max_plugin_package_size | integer | | Yes |
| plugin_installation_permission | [PluginInstallationPermissionModel](#plugininstallationpermissionmodel) | | Yes |
| plugin_manager | [PluginManagerModel](#pluginmanagermodel) | | Yes |
| sso_enforced_for_signin | boolean | | Yes |
| sso_enforced_for_signin_protocol | string | | Yes |
| trial_models | [ string ] | | Yes |
| webapp_auth | [WebAppAuthModel](#webappauthmodel) | | Yes |
#### TextToAudioPayload
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| message_id | string | Message ID | No |
| streaming | boolean | Enable streaming response | No |
| text | string | Text to convert to audio | No |
| voice | string | Voice to use for TTS | No |
#### 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_sso | boolean | | Yes |
| enabled | boolean | | Yes |
| sso_config | [WebAppAuthSSOModel](#webappauthssomodel) | | Yes |
#### WebAppAuthSSOModel
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| protocol | string | | Yes |
#### WorkflowRunPayload
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| files | [ object ] | | No |
| inputs | object | | Yes |