Files
dify/open-api/web-api.json
Stephen Zhou 393c530647 add open-api
2026-01-24 23:36:56 +08:00

2298 lines
78 KiB
JSON

{
"swagger": "2.0",
"basePath": "\/api",
"paths": {
"\/audio-to-text": {
"post": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"413": {
"description": "Audio file too large"
},
"415": {
"description": "Unsupported audio type"
},
"500": {
"description": "Internal Server Error"
}
},
"summary": "Convert audio to text",
"description": "Convert audio file to text using speech-to-text service.",
"operationId": "Audio to Text",
"tags": [
"web"
]
}
},
"\/chat-messages": {
"post": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "App Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Create a chat message for conversational applications.",
"operationId": "Create Chat Message",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/ChatMessagePayload"
}
}
],
"tags": [
"web"
]
}
},
"\/chat-messages\/{task_id}\/stop": {
"post": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Task Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Stop a running chat message task.",
"operationId": "Stop Chat Message",
"parameters": [
{
"name": "task_id",
"in": "path",
"required": true,
"type": "string",
"description": "Task ID to stop"
}
],
"tags": [
"web"
]
}
},
"\/completion-messages": {
"post": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "App Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Create a completion message for text generation applications.",
"operationId": "Create Completion Message",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/CompletionMessagePayload"
}
}
],
"tags": [
"web"
]
}
},
"\/completion-messages\/{task_id}\/stop": {
"post": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Task Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Stop a running completion message task.",
"operationId": "Stop Completion Message",
"parameters": [
{
"name": "task_id",
"in": "path",
"required": true,
"type": "string",
"description": "Task ID to stop"
}
],
"tags": [
"web"
]
}
},
"\/conversations": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "App Not Found or Not a Chat App"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Retrieve paginated list of conversations for a chat application.",
"operationId": "Get Conversation List",
"parameters": [
{
"description": "Last conversation ID for pagination",
"type": "string",
"required": false,
"name": "last_id",
"in": "query"
},
{
"description": "Number of conversations to return (1-100)",
"type": "integer",
"required": false,
"default": 20,
"name": "limit",
"in": "query"
},
{
"description": "Filter by pinned status",
"type": "string",
"enum": [
"true",
"false"
],
"required": false,
"name": "pinned",
"in": "query"
},
{
"description": "Sort order",
"type": "string",
"enum": [
"created_at",
"-created_at",
"updated_at",
"-updated_at"
],
"required": false,
"default": "-updated_at",
"name": "sort_by",
"in": "query"
}
],
"tags": [
"web"
]
}
},
"\/conversations\/{c_id}": {
"delete": {
"responses": {
"204": {
"description": "Conversation deleted successfully"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Conversation Not Found or Not a Chat App"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Delete a specific conversation.",
"operationId": "Delete Conversation",
"parameters": [
{
"name": "c_id",
"in": "path",
"required": true,
"type": "string",
"description": "Conversation UUID"
}
],
"tags": [
"web"
]
}
},
"\/conversations\/{c_id}\/name": {
"post": {
"responses": {
"200": {
"description": "Conversation renamed successfully"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Conversation Not Found or Not a Chat App"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Rename a specific conversation with a custom name or auto-generate one.",
"operationId": "Rename Conversation",
"parameters": [
{
"name": "c_id",
"in": "path",
"required": true,
"type": "string",
"description": "Conversation UUID"
},
{
"description": "New conversation name",
"type": "string",
"required": false,
"name": "name",
"in": "query"
},
{
"description": "Auto-generate conversation name",
"type": "boolean",
"required": false,
"default": false,
"name": "auto_generate",
"in": "query"
}
],
"tags": [
"web"
]
}
},
"\/conversations\/{c_id}\/pin": {
"patch": {
"responses": {
"200": {
"description": "Conversation pinned successfully"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Conversation Not Found or Not a Chat App"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Pin a specific conversation to keep it at the top of the list.",
"operationId": "Pin Conversation",
"parameters": [
{
"name": "c_id",
"in": "path",
"required": true,
"type": "string",
"description": "Conversation UUID"
}
],
"tags": [
"web"
]
}
},
"\/conversations\/{c_id}\/unpin": {
"patch": {
"responses": {
"200": {
"description": "Conversation unpinned successfully"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Conversation Not Found or Not a Chat App"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Unpin a specific conversation to remove it from the top of the list.",
"operationId": "Unpin Conversation",
"parameters": [
{
"name": "c_id",
"in": "path",
"required": true,
"type": "string",
"description": "Conversation UUID"
}
],
"tags": [
"web"
]
}
},
"\/email-code-login": {
"post": {
"responses": {
"200": {
"description": "Email code sent successfully"
},
"400": {
"description": "Bad request - invalid email format"
},
"404": {
"description": "Account not found"
}
},
"description": "Send email verification code for login",
"operationId": "send_email_code_login",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/EmailCodeLoginSendPayload"
}
}
],
"tags": [
"web"
]
}
},
"\/email-code-login\/validity": {
"post": {
"responses": {
"200": {
"description": "Email code verified and login successful"
},
"400": {
"description": "Bad request - invalid code or token"
},
"401": {
"description": "Invalid token or expired code"
},
"404": {
"description": "Account not found"
}
},
"description": "Verify email code and complete login",
"operationId": "verify_email_code_login",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/EmailCodeLoginVerifyPayload"
}
}
],
"tags": [
"web"
]
}
},
"\/files\/upload": {
"post": {
"responses": {
"201": {
"description": "File uploaded successfully",
"schema": {
"$ref": "#\/definitions\/FileResponse"
}
},
"400": {
"description": "Bad request - invalid file or parameters"
},
"413": {
"description": "File too large"
},
"415": {
"description": "Unsupported file type"
}
},
"summary": "Upload a file for use in web applications",
"description": "Upload a file for use in web applications\nAccepts file uploads for use within web applications, supporting\nmultiple file types with automatic validation and storage.\n\nArgs:\n app_model: The associated application model\n end_user: The end user uploading the file\n\nForm Parameters:\n file: The file to upload (required)\n source: Optional source type (datasets or None)\n\nReturns:\n dict: File information including ID, URL, and metadata\n int: HTTP status code 201 for success\n\nRaises:\n NoFileUploadedError: No file provided in request\n TooManyFilesError: Multiple files provided (only one allowed)\n FilenameNotExistsError: File has no filename\n FileTooLargeError: File exceeds size limit\n UnsupportedFileTypeError: File type not supported",
"operationId": "upload_file",
"tags": [
"web"
]
}
},
"\/forgot-password": {
"post": {
"responses": {
"200": {
"description": "Password reset email sent successfully"
},
"400": {
"description": "Bad request - invalid email format"
},
"404": {
"description": "Account not found"
},
"429": {
"description": "Too many requests - rate limit exceeded"
}
},
"description": "Send password reset email",
"operationId": "send_forgot_password_email",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/ForgotPasswordSendPayload"
}
}
],
"tags": [
"web"
]
}
},
"\/forgot-password\/resets": {
"post": {
"responses": {
"200": {
"description": "Password reset successfully"
},
"400": {
"description": "Bad request - invalid parameters or password mismatch"
},
"401": {
"description": "Invalid or expired token"
},
"404": {
"description": "Account not found"
}
},
"description": "Reset user password with verification token",
"operationId": "reset_password",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/ForgotPasswordResetPayload"
}
}
],
"tags": [
"web"
]
}
},
"\/forgot-password\/validity": {
"post": {
"responses": {
"200": {
"description": "Token is valid"
},
"400": {
"description": "Bad request - invalid token format"
},
"401": {
"description": "Invalid or expired token"
}
},
"description": "Verify password reset token validity",
"operationId": "check_forgot_password_token",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/ForgotPasswordCheckPayload"
}
}
],
"tags": [
"web"
]
}
},
"\/login": {
"post": {
"responses": {
"200": {
"description": "Authentication successful"
},
"400": {
"description": "Bad request - invalid email or password format"
},
"401": {
"description": "Authentication failed - email or password mismatch"
},
"403": {
"description": "Account banned or login disabled"
},
"404": {
"description": "Account not found"
}
},
"summary": "Authenticate user and login",
"description": "Authenticate user for web application access",
"operationId": "web_app_login",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/LoginPayload"
}
}
],
"tags": [
"web"
]
}
},
"\/login\/status": {
"get": {
"responses": {
"200": {
"description": "Login status"
},
"401": {
"description": "Login status"
}
},
"description": "Check login status",
"operationId": "web_app_login_status",
"tags": [
"web"
]
}
},
"\/logout": {
"post": {
"responses": {
"200": {
"description": "Logout successful"
}
},
"description": "Logout user from web application",
"operationId": "web_app_logout",
"tags": [
"web"
]
}
},
"\/messages": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Conversation Not Found or Not a Chat App"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Retrieve paginated list of messages from a conversation in a chat application.",
"operationId": "Get Message List",
"parameters": [
{
"description": "Conversation UUID",
"type": "string",
"required": true,
"name": "conversation_id",
"in": "query"
},
{
"description": "First message ID for pagination",
"type": "string",
"required": false,
"name": "first_id",
"in": "query"
},
{
"description": "Number of messages to return (1-100)",
"type": "integer",
"required": false,
"default": 20,
"name": "limit",
"in": "query"
}
],
"tags": [
"web"
]
}
},
"\/messages\/{message_id}\/feedbacks": {
"post": {
"responses": {
"200": {
"description": "Feedback submitted successfully"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Message Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Submit feedback (like\/dislike) for a specific message.",
"operationId": "Create Message Feedback",
"parameters": [
{
"name": "message_id",
"in": "path",
"required": true,
"type": "string",
"description": "Message UUID"
},
{
"description": "Feedback rating",
"type": "string",
"enum": [
"like",
"dislike"
],
"required": false,
"name": "rating",
"in": "query"
},
{
"description": "Feedback content",
"type": "string",
"required": false,
"name": "content",
"in": "query"
}
],
"tags": [
"web"
]
}
},
"\/messages\/{message_id}\/more-like-this": {
"parameters": [
{
"name": "message_id",
"in": "path",
"required": true,
"type": "string"
}
],
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request - Not a completion app or feature disabled"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Message Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Generate a new completion similar to an existing message (completion apps only).",
"operationId": "Generate More Like This",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/MessageMoreLikeThisQuery"
}
}
],
"tags": [
"web"
]
}
},
"\/messages\/{message_id}\/suggested-questions": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request - Not a chat app or feature disabled"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Message Not Found or Conversation Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Get suggested follow-up questions after a message (chat apps only).",
"operationId": "Get Suggested Questions",
"parameters": [
{
"name": "message_id",
"in": "path",
"required": true,
"type": "string",
"description": "Message UUID"
}
],
"tags": [
"web"
]
}
},
"\/meta": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "App Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"summary": "Get app meta",
"description": "Retrieve the metadata for a specific app.",
"operationId": "Get App Meta",
"tags": [
"web"
]
}
},
"\/parameters": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "App Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"summary": "Retrieve app parameters",
"description": "Retrieve the parameters for a specific app.",
"operationId": "Get App Parameters",
"tags": [
"web"
]
}
},
"\/passport": {
"get": {
"responses": {
"200": {
"description": "Passport retrieved successfully"
},
"401": {
"description": "Unauthorized - missing app code or invalid authentication"
},
"404": {
"description": "Application or user not found"
}
},
"description": "Get authentication passport for web application access",
"operationId": "get_passport",
"tags": [
"web"
]
}
},
"\/remote-files\/upload": {
"post": {
"responses": {
"201": {
"description": "Remote file uploaded successfully",
"schema": {
"$ref": "#\/definitions\/FileWithSignedUrl"
}
},
"400": {
"description": "Bad request - invalid URL or parameters"
},
"413": {
"description": "File too large"
},
"415": {
"description": "Unsupported file type"
},
"500": {
"description": "Failed to fetch remote file"
}
},
"summary": "Upload a file from a remote URL",
"description": "Upload a file from a remote URL\nDownloads a file from the provided remote URL and uploads it\nto the platform storage for use in web applications.\n\nArgs:\n app_model: The associated application model\n end_user: The end user making the request\n\nJSON Parameters:\n url: The remote URL to download the file from (required)\n\nReturns:\n dict: File information including ID, signed URL, and metadata\n int: HTTP status code 201 for success\n\nRaises:\n RemoteFileUploadError: Failed to fetch file from remote URL\n FileTooLargeError: File exceeds size limit\n UnsupportedFileTypeError: File type not supported",
"operationId": "upload_remote_file",
"tags": [
"web"
]
}
},
"\/remote-files\/{url}": {
"parameters": [
{
"name": "url",
"in": "path",
"required": true,
"type": "string"
}
],
"get": {
"responses": {
"200": {
"description": "Remote file information retrieved successfully",
"schema": {
"$ref": "#\/definitions\/RemoteFileInfo"
}
},
"400": {
"description": "Bad request - invalid URL"
},
"404": {
"description": "Remote file not found"
},
"500": {
"description": "Failed to fetch remote file"
}
},
"summary": "Get information about a remote file",
"description": "Get information about a remote file\nRetrieves basic information about a file located at a remote URL,\nincluding content type and content length.\n\nArgs:\n app_model: The associated application model\n end_user: The end user making the request\n url: URL-encoded path to the remote file\n\nReturns:\n dict: Remote file information including type and length\n\nRaises:\n HTTPException: If the remote file cannot be accessed",
"operationId": "get_remote_file_info",
"tags": [
"web"
]
}
},
"\/saved-messages": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request - Not a completion app"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "App Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Retrieve paginated list of saved messages for a completion application.",
"operationId": "Get Saved Messages",
"parameters": [
{
"description": "Last message ID for pagination",
"type": "string",
"required": false,
"name": "last_id",
"in": "query"
},
{
"description": "Number of messages to return (1-100)",
"type": "integer",
"required": false,
"default": 20,
"name": "limit",
"in": "query"
}
],
"tags": [
"web"
]
},
"post": {
"responses": {
"200": {
"description": "Message saved successfully"
},
"400": {
"description": "Bad Request - Not a completion app"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Message Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Save a specific message for later reference.",
"operationId": "Save Message",
"parameters": [
{
"description": "Message UUID to save",
"type": "string",
"required": true,
"name": "message_id",
"in": "query"
}
],
"tags": [
"web"
]
}
},
"\/saved-messages\/{message_id}": {
"delete": {
"responses": {
"204": {
"description": "Message removed successfully"
},
"400": {
"description": "Bad Request - Not a completion app"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Message Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Remove a message from saved messages.",
"operationId": "Delete Saved Message",
"parameters": [
{
"name": "message_id",
"in": "path",
"required": true,
"type": "string",
"description": "Message UUID to delete"
}
],
"tags": [
"web"
]
}
},
"\/site": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "App Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"summary": "Retrieve app site info",
"description": "Retrieve app site information and configuration.",
"operationId": "Get App Site Info",
"tags": [
"web"
]
}
},
"\/system-features": {
"get": {
"responses": {
"200": {
"description": "System features retrieved successfully"
},
"500": {
"description": "Internal server error"
}
},
"summary": "Get system feature flags and configuration",
"description": "Get system feature flags and configuration\nReturns the current system feature flags and configuration\nthat control various functionalities across the platform.\n\nReturns:\n dict: System feature configuration object\n\nThis endpoint is akin to the `SystemFeatureApi` endpoint in api\/controllers\/console\/feature.py,\nexcept it is intended for use by the web app, instead of the console dashboard.\n\nNOTE: This endpoint is unauthenticated by design, as it provides system features\ndata required for webapp initialization.\n\nAuthentication would create circular dependency (can't authenticate without webapp loading).\n\nOnly non-sensitive configuration data should be returned by this endpoint.",
"operationId": "get_system_features",
"tags": [
"web"
]
}
},
"\/text-to-audio": {
"post": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"500": {
"description": "Internal Server Error"
}
},
"summary": "Convert text to audio",
"description": "Convert text to audio using text-to-speech service.",
"operationId": "Text to Audio",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/TextToAudioPayload"
}
}
],
"tags": [
"web"
]
}
},
"\/webapp\/access-mode": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Retrieve the access mode for a web application (public or restricted).",
"operationId": "Get App Access Mode",
"parameters": [
{
"description": "Application ID",
"type": "string",
"required": false,
"name": "appId",
"in": "query"
},
{
"description": "Application code",
"type": "string",
"required": false,
"name": "appCode",
"in": "query"
}
],
"tags": [
"web"
]
}
},
"\/webapp\/permission": {
"get": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"500": {
"description": "Internal Server Error"
}
},
"description": "Check if user has permission to access a web application.",
"operationId": "Check App Permission",
"parameters": [
{
"description": "Application ID",
"type": "string",
"required": true,
"name": "appId",
"in": "query"
}
],
"tags": [
"web"
]
}
},
"\/workflows\/run": {
"post": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "App Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"summary": "Run workflow",
"description": "Execute a workflow with provided inputs and files.",
"operationId": "Run Workflow",
"parameters": [
{
"name": "payload",
"required": true,
"in": "body",
"schema": {
"$ref": "#\/definitions\/WorkflowRunPayload"
}
}
],
"tags": [
"web"
]
}
},
"\/workflows\/tasks\/{task_id}\/stop": {
"post": {
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Task Not Found"
},
"500": {
"description": "Internal Server Error"
}
},
"summary": "Stop workflow task",
"description": "Stop a running workflow task.",
"operationId": "Stop Workflow Task",
"parameters": [
{
"name": "task_id",
"in": "path",
"required": true,
"type": "string",
"description": "Task ID to stop"
}
],
"tags": [
"web"
]
}
}
},
"info": {
"title": "Web API",
"version": "1.0",
"description": "Public APIs for web applications including file uploads, chat interactions, and app management"
},
"produces": [
"application\/json"
],
"consumes": [
"application\/json"
],
"securityDefinitions": {
"Bearer": {
"type": "apiKey",
"in": "header",
"name": "Authorization",
"description": "Type: Bearer {your-api-key}"
}
},
"security": [
{
"Bearer": []
}
],
"tags": [
{
"name": "web",
"description": "Web application API operations"
}
],
"definitions": {
"TextToAudioPayload": {
"properties": {
"message_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message Id"
},
"voice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Voice"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"streaming": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Streaming"
}
},
"title": "TextToAudioPayload",
"type": "object"
},
"CompletionMessagePayload": {
"properties": {
"inputs": {
"additionalProperties": true,
"description": "Input variables for the completion",
"title": "Inputs",
"type": "object"
},
"query": {
"default": "",
"description": "Query text for completion",
"title": "Query",
"type": "string"
},
"files": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Files to be processed",
"title": "Files"
},
"response_mode": {
"anyOf": [
{
"enum": [
"blocking",
"streaming"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Response mode: blocking or streaming",
"title": "Response Mode"
},
"retriever_from": {
"default": "web_app",
"description": "Source of retriever",
"title": "Retriever From",
"type": "string"
}
},
"required": [
"inputs"
],
"title": "CompletionMessagePayload",
"type": "object"
},
"ChatMessagePayload": {
"properties": {
"inputs": {
"additionalProperties": true,
"description": "Input variables for the chat",
"title": "Inputs",
"type": "object"
},
"query": {
"description": "User query\/message",
"title": "Query",
"type": "string"
},
"files": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Files to be processed",
"title": "Files"
},
"response_mode": {
"anyOf": [
{
"enum": [
"blocking",
"streaming"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Response mode: blocking or streaming",
"title": "Response Mode"
},
"conversation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Conversation ID",
"title": "Conversation Id"
},
"parent_message_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Parent message ID",
"title": "Parent Message Id"
},
"retriever_from": {
"default": "web_app",
"description": "Source of retriever",
"title": "Retriever From",
"type": "string"
}
},
"required": [
"inputs",
"query"
],
"title": "ChatMessagePayload",
"type": "object"
},
"FileResponse": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"size": {
"title": "Size",
"type": "integer"
},
"extension": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Extension"
},
"mime_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Mime Type"
},
"created_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Created By"
},
"created_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Created At"
},
"preview_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Preview Url"
},
"source_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Source Url"
},
"original_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Original Url"
},
"user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "User Id"
},
"tenant_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Tenant Id"
},
"conversation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Conversation Id"
},
"file_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "File Key"
}
},
"required": [
"id",
"name",
"size"
],
"title": "FileResponse",
"type": "object"
},
"ForgotPasswordSendPayload": {
"properties": {
"email": {
"title": "Email",
"type": "string"
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Language"
}
},
"required": [
"email"
],
"title": "ForgotPasswordSendPayload",
"type": "object"
},
"ForgotPasswordCheckPayload": {
"properties": {
"email": {
"title": "Email",
"type": "string"
},
"code": {
"title": "Code",
"type": "string"
},
"token": {
"minLength": 1,
"title": "Token",
"type": "string"
}
},
"required": [
"email",
"code",
"token"
],
"title": "ForgotPasswordCheckPayload",
"type": "object"
},
"ForgotPasswordResetPayload": {
"properties": {
"token": {
"minLength": 1,
"title": "Token",
"type": "string"
},
"new_password": {
"title": "New Password",
"type": "string"
},
"password_confirm": {
"title": "Password Confirm",
"type": "string"
}
},
"required": [
"token",
"new_password",
"password_confirm"
],
"title": "ForgotPasswordResetPayload",
"type": "object"
},
"LoginPayload": {
"properties": {
"email": {
"title": "Email",
"type": "string"
},
"password": {
"title": "Password",
"type": "string"
}
},
"required": [
"email",
"password"
],
"title": "LoginPayload",
"type": "object"
},
"EmailCodeLoginSendPayload": {
"properties": {
"email": {
"title": "Email",
"type": "string"
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Language"
}
},
"required": [
"email"
],
"title": "EmailCodeLoginSendPayload",
"type": "object"
},
"EmailCodeLoginVerifyPayload": {
"properties": {
"email": {
"title": "Email",
"type": "string"
},
"code": {
"title": "Code",
"type": "string"
},
"token": {
"minLength": 1,
"title": "Token",
"type": "string"
}
},
"required": [
"email",
"code",
"token"
],
"title": "EmailCodeLoginVerifyPayload",
"type": "object"
},
"MessageMoreLikeThisQuery": {
"properties": {
"response_mode": {
"description": "Response mode",
"enum": [
"blocking",
"streaming"
],
"title": "Response Mode",
"type": "string"
}
},
"required": [
"response_mode"
],
"title": "MessageMoreLikeThisQuery",
"type": "object"
},
"RemoteFileInfo": {
"properties": {
"file_type": {
"title": "File Type",
"type": "string"
},
"file_length": {
"title": "File Length",
"type": "integer"
}
},
"required": [
"file_type",
"file_length"
],
"title": "RemoteFileInfo",
"type": "object"
},
"FileWithSignedUrl": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"size": {
"title": "Size",
"type": "integer"
},
"extension": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Extension"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"mime_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Mime Type"
},
"created_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Created By"
},
"created_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Created At"
}
},
"required": [
"id",
"name",
"size"
],
"title": "FileWithSignedUrl",
"type": "object"
},
"WorkflowRunPayload": {
"properties": {
"inputs": {
"additionalProperties": true,
"description": "Input variables for the workflow",
"title": "Inputs",
"type": "object"
},
"files": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Files to be processed by the workflow",
"title": "Files"
}
},
"required": [
"inputs"
],
"title": "WorkflowRunPayload",
"type": "object"
},
"AppAccessModeQuery": {
"properties": {
"appId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Application ID",
"title": "Appid"
},
"appCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Application code",
"title": "Appcode"
}
},
"title": "AppAccessModeQuery",
"type": "object"
},
"ConversationListQuery": {
"properties": {
"last_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Last Id"
},
"limit": {
"default": 20,
"maximum": 100,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"pinned": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Pinned"
},
"sort_by": {
"default": "-updated_at",
"enum": [
"created_at",
"-created_at",
"updated_at",
"-updated_at"
],
"title": "Sort By",
"type": "string"
}
},
"title": "ConversationListQuery",
"type": "object"
},
"ConversationRenamePayload": {
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"auto_generate": {
"default": false,
"title": "Auto Generate",
"type": "boolean"
}
},
"title": "ConversationRenamePayload",
"type": "object"
},
"MessageListQuery": {
"properties": {
"conversation_id": {
"description": "Conversation UUID",
"title": "Conversation Id",
"type": "string"
},
"first_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "First message ID for pagination",
"title": "First Id"
},
"limit": {
"default": 20,
"description": "Number of messages to return (1-100)",
"maximum": 100,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"required": [
"conversation_id"
],
"title": "MessageListQuery",
"type": "object"
},
"MessageFeedbackPayload": {
"properties": {
"rating": {
"anyOf": [
{
"enum": [
"like",
"dislike"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Feedback rating",
"title": "Rating"
},
"content": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Feedback content",
"title": "Content"
}
},
"title": "MessageFeedbackPayload",
"type": "object"
},
"RemoteFileUploadPayload": {
"properties": {
"url": {
"description": "Remote file URL",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "RemoteFileUploadPayload",
"type": "object"
},
"SavedMessageListQuery": {
"properties": {
"last_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Last Id"
},
"limit": {
"default": 20,
"maximum": 100,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"title": "SavedMessageListQuery",
"type": "object"
},
"SavedMessageCreatePayload": {
"properties": {
"message_id": {
"title": "Message Id",
"type": "string"
}
},
"required": [
"message_id"
],
"title": "SavedMessageCreatePayload",
"type": "object"
}
},
"responses": {
"ParseError": {
"description": "When a mask can't be parsed"
},
"MaskError": {
"description": "When any error occurs on mask"
},
"HTTPException": {},
"ValueError": {},
"AppInvokeQuotaExceededError": {},
"Exception": {}
}
}