# Web API Public APIs for web applications including file uploads, chat interactions, and app management ## Version: 1.0 ### Available authorizations #### Bearer (API Key Authentication) Type: Bearer {your-api-key} **Name:** Authorization **In:** header --- ## 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**: [AudioTranscriptResponse](#audiotranscriptresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 413 | Audio file too large | | | 415 | Unsupported audio type | | | 500 | Internal Server Error | | ### [POST] /chat-messages Create a chat message for conversational applications. #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [ChatMessagePayload](#chatmessagepayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [GeneratedAppResponse](#generatedappresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | App Not Found | | | 500 | Internal Server Error | | ### [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](#simpleresultresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Task Not Found | | | 500 | Internal Server Error | | ### [POST] /completion-messages Create a completion message for text generation applications. #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [CompletionMessagePayload](#completionmessagepayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [GeneratedAppResponse](#generatedappresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | App Not Found | | | 500 | Internal Server Error | | ### [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](#simpleresultresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Task Not Found | | | 500 | Internal Server Error | | ### [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](#conversationinfinitescrollpagination)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | App Not Found or Not a Chat App | | | 500 | Internal Server Error | | ### [DELETE] /conversations/{c_id} 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 | ### [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 | | auto_generate | query | Auto-generate conversation name | No | boolean | | name | query | New conversation name | No | string | #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [ConversationRenamePayload](#conversationrenamepayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Conversation renamed successfully | **application/json**: [SimpleConversation](#simpleconversation)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Conversation Not Found or Not a Chat App | | | 500 | Internal Server Error | | ### [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 | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Conversation pinned successfully | **application/json**: [ResultResponse](#resultresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Conversation Not Found or Not a Chat App | | | 500 | Internal Server Error | | ### [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 | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Conversation unpinned successfully | **application/json**: [ResultResponse](#resultresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Conversation Not Found or Not a Chat App | | | 500 | Internal Server Error | | ### [POST] /email-code-login Send email verification code for login #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [EmailCodeLoginSendPayload](#emailcodeloginsendpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Email code sent successfully | **application/json**: [SimpleResultDataResponse](#simpleresultdataresponse)
| | 400 | Bad request - invalid email format | | | 404 | Account not found | | ### [POST] /email-code-login/validity Verify email code and complete login #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [EmailCodeLoginVerifyPayload](#emailcodeloginverifypayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Email code verified and login successful | **application/json**: [AccessTokenResultResponse](#accesstokenresultresponse)
| | 400 | Bad request - invalid code or token | | | 401 | Invalid token or expired code | | | 404 | Account not found | | ### [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 #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 201 | File uploaded successfully | **application/json**: [FileResponse](#fileresponse)
| | 400 | Bad request - invalid file or parameters | | | 413 | File too large | | | 415 | Unsupported file type | | ### [POST] /forgot-password Send password reset email #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [ForgotPasswordSendPayload](#forgotpasswordsendpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Password reset email sent successfully | **application/json**: [SimpleResultDataResponse](#simpleresultdataresponse)
| | 400 | Bad request - invalid email format | | | 404 | Account not found | | | 429 | Too many requests - rate limit exceeded | | ### [POST] /forgot-password/resets Reset user password with verification token #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [ForgotPasswordResetPayload](#forgotpasswordresetpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Password reset successfully | **application/json**: [SimpleResultResponse](#simpleresultresponse)
| | 400 | Bad request - invalid parameters or password mismatch | | | 401 | Invalid or expired token | | | 404 | Account not found | | ### [POST] /forgot-password/validity Verify password reset token validity #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [ForgotPasswordCheckPayload](#forgotpasswordcheckpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Token is valid | **application/json**: [VerificationTokenResponse](#verificationtokenresponse)
| | 400 | Bad request - invalid token format | | | 401 | Invalid or expired token | | ### [GET] /form/human_input/{form_token} **Get human input form definition by token** GET /api/form/human_input/ #### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ------ | | form_token | path | | Yes | string | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [HumanInputFormDefinitionResponse](#humaninputformdefinitionresponse)
| ### [POST] /form/human_input/{form_token} **Submit human input form by token** POST /api/form/human_input/ Request body: { "inputs": { "content": "User input content" }, "action": "Approve" } #### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ------ | | form_token | path | | Yes | string | #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [HumanInputFormSubmitPayload](#humaninputformsubmitpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [HumanInputFormSubmitResponse](#humaninputformsubmitresponse)
| ### [POST] /form/human_input/{form_token}/upload-token **Issue an upload token for a human input form** POST /api/form/human_input//upload-token #### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ------ | | form_token | path | | Yes | string | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [HumanInputUploadTokenResponse](#humaninputuploadtokenresponse)
| ### [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](#fileresponse)
| ### [POST] /login **Authenticate user and login** Authenticate user for web application access #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [LoginPayload](#loginpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Authentication successful | **application/json**: [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 | | ### [GET] /login/status Check login status #### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ------ | | app_code | query | Web app code | No | string | | user_id | query | End user session ID | No | string | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Login status | **application/json**: [LoginStatusResponse](#loginstatusresponse)
| | 401 | Login status | | ### [POST] /logout Logout user from web application #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Logout successful | **application/json**: [SimpleResultResponse](#simpleresultresponse)
| ### [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 UUID | Yes | string | | first_id | query | First message ID for pagination | No | string | | limit | query | Number of messages to return (1-100) | No | integer,
**Default:** 20 | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [WebMessageInfiniteScrollPagination](#webmessageinfinitescrollpagination)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Conversation Not Found or Not a Chat App | | | 500 | Internal Server Error | | ### [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 | | content | query | Feedback content | No | string | | rating | query | Feedback rating | No | string,
**Available values:** "dislike", "like" | #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [MessageFeedbackPayload](#messagefeedbackpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Feedback submitted successfully | **application/json**: [ResultResponse](#resultresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Message Not Found | | | 500 | Internal Server Error | | ### [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 | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [GeneratedAppResponse](#generatedappresponse)
| | 400 | Bad Request - Not a completion app or feature disabled | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Message Not Found | | | 500 | Internal Server Error | | ### [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 | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [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 | | ### [GET] /meta **Get app meta** Retrieve the metadata for a specific app. #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [AppMetaResponse](#appmetaresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | App Not Found | | | 500 | Internal Server Error | | ### [GET] /parameters **Retrieve app parameters** Retrieve the parameters for a specific app. #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [Parameters](#parameters)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | App Not Found | | | 500 | Internal Server Error | | ### [GET] /passport Get authentication passport for web application access #### Parameters | Name | Located in | Description | Required | Schema | | ---- | ---------- | ----------- | -------- | ------ | | user_id | query | End user session ID | No | string | #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Passport retrieved successfully | **application/json**: [AccessTokenData](#accesstokendata)
| | 401 | Unauthorized - missing app code or invalid authentication | | | 404 | Application or user not found | | ### [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: RemoteFileUploadError: Failed to fetch file from remote URL FileTooLargeError: File exceeds size limit UnsupportedFileTypeError: File type not supported #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [RemoteFileUploadPayload](#remotefileuploadpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 201 | Remote file uploaded successfully | **application/json**: [FileWithSignedUrl](#filewithsignedurl)
| | 400 | Bad request - invalid URL or parameters | | | 413 | File too large | | | 415 | Unsupported file type | | | 500 | Failed to fetch remote file | | ### [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](#remotefileinfo)
| | 400 | Bad request - invalid URL | | | 404 | Remote file not found | | | 500 | Failed to fetch remote file | | ### [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](#savedmessageinfinitescrollpagination)
| | 400 | Bad Request - Not a completion app | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | App Not Found | | | 500 | Internal Server Error | | ### [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](#savedmessagecreatepayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Message saved successfully | **application/json**: [ResultResponse](#resultresponse)
| | 400 | Bad Request - Not a completion app | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Message Not Found | | | 500 | Internal Server Error | | ### [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 | #### 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 | ### [GET] /site **Retrieve app site info** Retrieve app site information and configuration. #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [AppSiteInfoResponse](#appsiteinforesponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | App Not Found | | | 500 | Internal Server Error | | ### [GET] /system-features **Get system feature flags and configuration** 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 | **application/json**: [SystemFeatureModel](#systemfeaturemodel)
| | 500 | Internal server error | | ### [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](#texttoaudiopayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [AudioBinaryResponse](#audiobinaryresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 500 | Internal Server Error | | ### [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](#accessmoderesponse)
| | 400 | Bad Request | | | 500 | Internal Server Error | | ### [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](#booleanresultresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 500 | Internal Server Error | | ### [POST] /workflows/run **Run workflow** Execute a workflow with provided inputs and files. #### Request Body | Required | Schema | | -------- | ------ | | Yes | **application/json**: [WorkflowRunPayload](#workflowrunpayload)
| #### Responses | Code | Description | Schema | | ---- | ----------- | ------ | | 200 | Success | **application/json**: [GeneratedAppResponse](#generatedappresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | App Not Found | | | 500 | Internal Server Error | | ### [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](#simpleresultresponse)
| | 400 | Bad Request | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Task Not Found | | | 500 | Internal Server Error | | --- ## default Default namespace ### [GET] /workflow/{task_id}/events **Get workflow execution events stream after resume** GET /api/workflow//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](#eventstreamresponse)
| --- ### 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](#accesstokendata) | | Yes | | result | string | | Yes | #### AgentThought | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | 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 | [JSONValue](#jsonvalue) | | Yes | #### 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 | #### AppPermissionQuery | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | appId | string | Application ID | Yes | #### AppSiteInfoResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | app_id | string | | Yes | | can_replace_logo | boolean | | Yes | | custom_config | object | | No | | enable_site | boolean | | Yes | | end_user_id | string | | No | | model_config | [AppSiteModelConfigResponse](#appsitemodelconfigresponse) | | No | | plan | string | | No | | site | [AppSiteResponse](#appsiteresponse) | | Yes | #### AppSiteModelConfigResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | model | | | Yes | | more_like_this | | | Yes | | opening_statement | string | | No | | pre_prompt | string | | No | | suggested_questions | | | Yes | | suggested_questions_after_answer | | | Yes | | user_input_form | | | Yes | #### AppSiteResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | chat_color_theme | string | | No | | chat_color_theme_inverted | boolean | | No | | 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 | | privacy_policy | string | | No | | prompt_public | boolean | | No | | show_workflow_steps | boolean | | No | | title | string | | No | | use_icon_as_answer_icon | boolean | | No | #### AudioBinaryResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | AudioBinaryResponse | string | | | #### AudioTranscriptResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | text | string | | Yes | #### 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 | | ---- | ---- | ----------- | -------- | | 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 | No | | retriever_from | string,
**Default:** web_app | 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 | No | | retriever_from | string,
**Default:** web_app | Source of retriever | No | #### ConversationInfiniteScrollPagination | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | data | [ [SimpleConversation](#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 | | 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 | #### EventStreamResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | EventStreamResponse | string | | | #### ExecutionContentType | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | ExecutionContentType | string | | | #### FileInputConfig | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | allowed_file_extensions | [ string ] | | No | | allowed_file_types | [ [FileType](#filetype) ] | | No | | allowed_file_upload_methods | [ [FileTransferMethod](#filetransfermethod) ] | | No | | output_variable_name | string | | Yes | | type | string | | No | #### FileListInputConfig | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | allowed_file_extensions | [ string ] | | No | | allowed_file_types | [ [FileType](#filetype) ] | | No | | allowed_file_upload_methods | [ [FileTransferMethod](#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 | | 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 | #### 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 | #### 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](#paragraphinputconfig)
[SelectInputConfig](#selectinputconfig)
[FileInputConfig](#fileinputconfig)
[FileListInputConfig](#filelistinputconfig) | | | #### GeneratedAppResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | GeneratedAppResponse | | | | #### HumanInputContent | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | form_definition | [HumanInputFormDefinition](#humaninputformdefinition) | | No | | form_submission_data | [HumanInputFormSubmissionData](#humaninputformsubmissiondata) | | No | | submitted | boolean | | Yes | | type | [ExecutionContentType](#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](#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](#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 | | | Yes | | inputs | | | Yes | | resolved_default_values | object | | Yes | | site | object | | No | | user_actions | | | Yes | #### 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 | | 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 | | ---- | ---- | ----------- | -------- | #### HumanInputUploadTokenResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | expires_at | integer | | Yes | | upload_token | string | | Yes | #### JSONObject | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | JSONObject | object | | | #### JSONValue | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | JSONValue | string
integer
number
boolean
object
[ object ] | | | #### JSONValueType | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | JSONValueType | | | | #### JsonValue | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | JsonValue | | | | #### 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 | #### LoginStatusQuery | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | app_code | string | Web app code | No | | user_id | string | End user session ID | No | #### LoginStatusResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | app_logged_in | boolean | | Yes | | logged_in | boolean | | Yes | #### MessageFeedbackPayload | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | content | string | | No | | rating | string | | No | #### MessageFile | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | belongs_to | string | | No | | filename | string | | Yes | | id | string | | 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 UUID | Yes | | first_id | string | First message ID for pagination | No | | limit | integer,
**Default:** 20 | Number of messages to return (1-100) | No | #### MessageMoreLikeThisQuery | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | response_mode | string,
**Available values:** "blocking", "streaming" | Response mode
*Enum:* `"blocking"`, `"streaming"` | Yes | #### ParagraphInputConfig Form input definition. | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | default | [StringSource](#stringsource) | | No | | output_variable_name | string | | Yes | | type | string | | No | #### Parameters | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | annotation_reply | [JSONObject](#jsonobject) | | Yes | | file_upload | [JSONObject](#jsonobject) | | Yes | | more_like_this | [JSONObject](#jsonobject) | | Yes | | opening_statement | | | No | | retriever_resource | [JSONObject](#jsonobject) | | Yes | | sensitive_word_avoidance | [JSONObject](#jsonobject) | | Yes | | speech_to_text | [JSONObject](#jsonobject) | | Yes | | suggested_questions | [ string ] | | Yes | | suggested_questions_after_answer | [JSONObject](#jsonobject) | | Yes | | system_parameters | [SystemParameters](#systemparameters) | | Yes | | text_to_speech | [JSONObject](#jsonobject) | | Yes | | user_input_form | [ [JSONObject](#jsonobject) ] | | Yes | #### PassportQuery | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | user_id | string | End user session ID | No | #### 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 | #### 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 | | document_id | string | | No | | document_name | string | | No | | hit_count | integer | | No | | id | string | | No | | index_node_hash | string | | No | | message_id | string | | No | | position | integer | | Yes | | score | number | | No | | segment_id | string | | No | | segment_position | integer | | No | | summary | string | | No | | word_count | integer | | No | #### SavedMessageCreatePayload | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | message_id | string | | Yes | #### SavedMessageInfiniteScrollPagination | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | data | [ [SavedMessageItem](#savedmessageitem) ] | | Yes | | has_more | boolean | | Yes | | limit | integer | | Yes | #### SavedMessageItem | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | answer | string | | Yes | | created_at | integer | | No | | feedback | [SimpleFeedback](#simplefeedback) | | No | | id | string | | Yes | | inputs | object | | Yes | | message_files | [ [MessageFile](#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](#stringlistsource) | | Yes | | output_variable_name | string | | Yes | | type | string | | No | #### SimpleConversation | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | created_at | integer | | No | | id | string | | 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 | | Yes | #### StringListSource | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | selector | [ string ] | | No | | type | [ValueSourceType](#valuesourcetype) | | Yes | | value | [ string ] | | No | #### StringSource Default configuration for form inputs. | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | selector | [ string ] | | No | | type | [ValueSourceType](#valuesourcetype) | | Yes | | value | string | | No | #### SuggestedQuestionsResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | data | [ string ] | | Yes | #### SystemFeatureModel | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | branding | [BrandingModel](#brandingmodel) | | 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_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,
**Default:** 15728640 | | 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 | | webapp_auth | [WebAppAuthModel](#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 | No | | streaming | boolean | Enable streaming response | No | | text | string | Text to convert to audio | No | | voice | string | Voice to use for TTS | No | #### UserActionConfig User action configuration. | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | button_style | [ButtonStyle](#buttonstyle) | | No | | id | string | | Yes | | title | string | | Yes | #### ValueSourceType ValueSourceType records whether the value comes from a static setting in form definiton, 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 definiton, 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_sso | boolean | | Yes | | enabled | boolean | | Yes | | sso_config | [WebAppAuthSSOModel](#webappauthssomodel) | | Yes | #### WebAppAuthSSOModel | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | protocol | string | | Yes | #### WebMessageInfiniteScrollPagination | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | data | [ [WebMessageListItem](#webmessagelistitem) ] | | Yes | | has_more | boolean | | Yes | | limit | integer | | Yes | #### WebMessageListItem | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | agent_thoughts | [ [AgentThought](#agentthought) ] | | Yes | | answer | string | | Yes | | conversation_id | string | | Yes | | created_at | integer | | No | | error | string | | No | | extra_contents | [ [HumanInputContent](#humaninputcontent) ] | | Yes | | feedback | [SimpleFeedback](#simplefeedback) | | No | | id | string | | Yes | | inputs | object | | Yes | | message_files | [ [MessageFile](#messagefile) ] | | Yes | | metadata | [JSONValueType](#jsonvaluetype) | | No | | parent_message_id | string | | No | | query | string | | Yes | | retriever_resources | [ [RetrieverResource](#retrieverresource) ] | | Yes | | status | string | | Yes | #### WorkflowRunPayload | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | | files | [ object ] | | No | | inputs | object | | Yes |