Files
dify/api/openapi/markdown/openapi-openapi.md
T
GareArc e7d6485641 refactor(openapi): drop the workspace switch op and the console-only current field
difyctl keeps its workspace pin on the device and no longer calls the
server switch, so the op had no caller. `current` on the workspace list
and detail reported the web console's workspace, which read as the one
difyctl uses.
2026-10-14 19:42:47 -07:00

129 KiB

OpenAPI

User-scoped programmatic API (bearer auth)

Version: 1.0

Available authorizations

Bearer (HTTP, bearer)

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


openapi

User-scoped operations

[GET] /_catalog

Machine-readable catalog of every op on this surface

Responses

Code Description Schema
200 Success
default Error application/json: ErrorBody

[GET] /_health

Responses

Code Description Schema
200 Health check application/json: HealthResponse
default Error application/json: ErrorBody

[GET] /_version

Responses

Code Description Schema
200 Server version application/json: ServerVersionResponse
default Error application/json: ErrorBody

[GET] /account

Responses

Code Description Schema
200 Account info application/json: AccountResponse
default Error application/json: ErrorBody

[GET] /account/sessions

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 100
page query No integer,
Default: 1

Responses

Code Description Schema
200 Session list application/json: SessionListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[DELETE] /account/sessions/self

Responses

Code Description Schema
200 Session revoked application/json: RevokeResponse
default Error application/json: ErrorBody

[DELETE] /account/sessions/{session_id}

Parameters

Name Located in Description Required Schema
session_id path Yes string

Responses

Code Description Schema
200 Session revoked application/json: RevokeResponse
default Error application/json: ErrorBody

[GET] /apps

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 20
mode query App types the app usage face (get app) lists and filters. A curated subset of :class:AppMode: the real, user-facing app categories. Excludes runtime-only mode tags that are not standalone apps (rag-pipeline is a knowledge Pipeline; channel is unused) and the roster-owned agent type (surfaced through the roster, not this list). Members reference AppMode.*.value so the subset relationship is type-checked: dropping a member from AppMode breaks this at import. This is the single source for the listable set — params, filters, and the generated CLI whitelist all derive from it. No string,
Available values: "advanced-chat", "agent-chat", "chat", "completion", "workflow"
name query Filter by a name substring; an app id returns that one app and ignores mode No string
page query No integer,
Default: 1
workspace_id query Yes string (uuid)

Responses

Code Description Schema
200 App list application/json: AppListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}

Parameters

Name Located in Description Required Schema
fields query No string
app_id path Yes string

Responses

Code Description Schema
200 App description application/json: AppDescribeResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/advanced-chat:run

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: AdvancedChatRunPayload
multipart/form-data: AdvancedChatRunPayload

Responses

Code Description Schema
200 Run result (SSE stream) application/json: EventStreamResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/app-info/advanced-chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 App info application/json: ChatAppInfo
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/app-info/advanced-chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ChatAppInfoPatch

Responses

Code Description Schema
200 App info application/json: ChatAppInfo
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/app-info/agent

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 App info application/json: AgentAppInfo
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/app-info/agent

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: AgentAppInfoPatch

Responses

Code Description Schema
200 App info application/json: AgentAppInfo
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/app-info/agent-chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 App info application/json: ChatAppInfo
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/app-info/agent-chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ChatAppInfoPatch

Responses

Code Description Schema
200 App info application/json: ChatAppInfo
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/app-info/chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 App info application/json: ChatAppInfo
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/app-info/chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ChatAppInfoPatch

Responses

Code Description Schema
200 App info application/json: ChatAppInfo
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/app-info/completion

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 App info application/json: AppSettingsInfo
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/app-info/completion

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: AppInfoPatch

Responses

Code Description Schema
200 App info application/json: AppSettingsInfo
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/app-info/workflow

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 App info application/json: AppSettingsInfo
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/app-info/workflow

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: AppInfoPatch

Responses

Code Description Schema
200 App info application/json: AppSettingsInfo
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/chat:run

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ChatRunPayload
multipart/form-data: ChatRunPayload

Responses

Code Description Schema
200 Run result (SSE stream) application/json: EventStreamResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/completion:run

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: CompletionRunPayload
multipart/form-data: CompletionRunPayload

Responses

Code Description Schema
200 Run result (SSE stream) application/json: EventStreamResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/dependencies:check

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Dependencies checked application/json: CheckDependenciesResponse
default Error application/json: ErrorBody

[POST] /apps/{app_id}/draft/advanced-chat/nodes/{node_id}:run

Parameters

Name Located in Description Required Schema
app_id path Yes string
node_id path Yes string

Request Body

Required Schema
Yes application/json: AdvancedChatNodeRunPayload
multipart/form-data: AdvancedChatNodeRunPayload

Responses

Code Description Schema
200 Node execution application/json: WorkflowRunNodeExecutionResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/draft/advanced-chat:run

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ChatRunPayload
multipart/form-data: ChatRunPayload

Responses

Code Description Schema
200 Run result (SSE stream) application/json: EventStreamResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/draft/workflow/nodes/{node_id}:run

Parameters

Name Located in Description Required Schema
app_id path Yes string
node_id path Yes string

Request Body

Required Schema
Yes application/json: NodeRunPayload
multipart/form-data: NodeRunPayload

Responses

Code Description Schema
200 Node execution application/json: WorkflowRunNodeExecutionResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/draft/workflow:run

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: DraftWorkflowRunPayload
multipart/form-data: DraftWorkflowRunPayload

Responses

Code Description Schema
200 Run result (SSE stream) application/json: EventStreamResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/dsl

Parameters

Name Located in Description Required Schema
include_secret query Include secret values in plaintext in the exported DSL No boolean
workflow_id query Export a specific workflow version instead of the current draft No string (uuid)
app_id path Yes string

Responses

Code Description Schema
200 Export successful application/json: AppDslExportResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/env

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Environment variables application/json: EnvVariableListResponse
default Error application/json: ErrorBody

[DELETE] /apps/{app_id}/env/{env_id}

Parameters

Name Located in Description Required Schema
app_id path Yes string
env_id path Yes string

Responses

Code Description Schema
200 Variable removed application/json: SimpleResultResponse
default Error application/json: ErrorBody

[PUT] /apps/{app_id}/env/{env_id}

Parameters

Name Located in Description Required Schema
app_id path Yes string
env_id path Yes string

Request Body

Required Schema
Yes application/json: EnvVariableSetPayload

Responses

Code Description Schema
200 Variable set application/json: SimpleResultResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/files

Upload a file to use as an input variable when running the app

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes multipart/form-data: FileUploadPayload

Responses

Code Description Schema
201 File uploaded successfully application/json: FileResponse
400 Bad request — invalid filename or blocked extension application/json: ErrorBody
401 Unauthorized — invalid or expired bearer token application/json: ErrorBody
413 File too large application/json: ErrorBody
415 Unsupported file type application/json: ErrorBody
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/human-input-forms/{form_token}

Parameters

Name Located in Description Required Schema
app_id path Yes string
form_token path Yes string

Responses

Code Description Schema
200 Form definition application/json: HumanInputFormDefinitionResponse
default Error application/json: ErrorBody

[POST] /apps/{app_id}/human-input-forms/{form_token}:submit

Parameters

Name Located in Description Required Schema
app_id path Yes string
form_token path Yes string

Request Body

Required Schema
Yes application/json: OpenApiFormSubmitPayload
multipart/form-data: OpenApiFormSubmitPayload

Responses

Code Description Schema
200 Form submitted application/json: FormSubmitResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/release:check

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Release check application/json: ReleaseCheckResponse
default Error application/json: ErrorBody

[GET] /apps/{app_id}/runs

Parameters

Name Located in Description Required Schema
last_id query Cursor: id of the last run on the previous page No string (uuid)
limit query No integer,
Default: 20
status query No string,
Available values: "failed", "partial-succeeded", "running", "stopped", "succeeded"
triggered_from query debugging: draft test runs, as in the console; app-run: real use No string,
Available values: "app-run", "debugging",
Default: debugging
app_id path Yes string

Responses

Code Description Schema
200 Run list application/json: RunListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/runs/{run_id}

Parameters

Name Located in Description Required Schema
app_id path Yes string
run_id path Yes string

Responses

Code Description Schema
200 Run detail application/json: WorkflowRunDetailResponse
default Error application/json: ErrorBody

[GET] /apps/{app_id}/runs/{run_id}/nodes

Parameters

Name Located in Description Required Schema
app_id path Yes string
run_id path Yes string

Responses

Code Description Schema
200 Node steps application/json: WorkflowRunNodeExecutionListResponse
default Error application/json: ErrorBody

[GET] /apps/{app_id}/service-api

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Service API application/json: ServiceApi
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/service-api

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ServiceApiPatch

Responses

Code Description Schema
200 Service API application/json: ServiceApi
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/service-api/agent

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Service API application/json: AgentServiceApi
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/service-api/agent

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ServiceApiPatch

Responses

Code Description Schema
200 Service API application/json: AgentServiceApi
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/tasks/{task_id}/events

Parameters

Name Located in Description Required Schema
continue_on_pause query Whether to keep the event stream open on pause No boolean
include_state_snapshot query Whether to include workflow state snapshots No boolean
app_id path Yes string
task_id path Yes string

Responses

Code Description Schema
200 SSE event stream application/json: EventStreamResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/tasks/{task_id}:stop

Parameters

Name Located in Description Required Schema
app_id path Yes string
task_id path Yes string

Responses

Code Description Schema
200 Task stopped application/json: TaskStopResponse
default Error application/json: ErrorBody

[GET] /apps/{app_id}/versions

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 20
named_only query Only versions that have a name No boolean
page query No integer,
Default: 1
app_id path Yes string

Responses

Code Description Schema
200 Version list application/json: VersionListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/versions/{version_id}:restore

Parameters

Name Located in Description Required Schema
app_id path Yes string
version_id path Yes string

Responses

Code Description Schema
200 Restored into the draft application/json: RestoreResponse
default Error application/json: ErrorBody

[GET] /apps/{app_id}/webapp-access

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Web-app access application/json: WebAppAccess
default Error application/json: ErrorBody

[PUT] /apps/{app_id}/webapp-access

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: WebAppAccessPayload

Responses

Code Description Schema
200 Web-app access application/json: WebAppAccess
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/webapp-access/agent

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Web-app access application/json: WebAppAccess
default Error application/json: ErrorBody

[PUT] /apps/{app_id}/webapp-access/agent

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: WebAppAccessPayload

Responses

Code Description Schema
200 Web-app access application/json: WebAppAccess
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/webapp/advanced-chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Web app application/json: AdvancedChatWebApp
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/webapp/advanced-chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: AdvancedChatWebAppPatch

Responses

Code Description Schema
200 Web app application/json: AdvancedChatWebApp
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/webapp/agent

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Web app application/json: AgentWebApp
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/webapp/agent

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ChatWebAppPatch

Responses

Code Description Schema
200 Web app application/json: AgentWebApp
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/webapp/agent-chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Web app application/json: ChatWebApp
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/webapp/agent-chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ChatWebAppPatch

Responses

Code Description Schema
200 Web app application/json: ChatWebApp
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/webapp/agent:reset

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 New URL token application/json: WebAppToken
default Error application/json: ErrorBody

[GET] /apps/{app_id}/webapp/chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Web app application/json: ChatWebApp
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/webapp/chat

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: ChatWebAppPatch

Responses

Code Description Schema
200 Web app application/json: ChatWebApp
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/webapp/completion

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Web app application/json: WebApp
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/webapp/completion

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: WebAppPatch

Responses

Code Description Schema
200 Web app application/json: WebApp
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /apps/{app_id}/webapp/workflow

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 Web app application/json: WorkflowWebApp
default Error application/json: ErrorBody

[PATCH] /apps/{app_id}/webapp/workflow

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: WorkflowWebAppPatch

Responses

Code Description Schema
200 Web app application/json: WorkflowWebApp
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}/webapp:reset

Parameters

Name Located in Description Required Schema
app_id path Yes string

Responses

Code Description Schema
200 New URL token application/json: WebAppToken
default Error application/json: ErrorBody

[POST] /apps/{app_id}/workflow:run

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: WorkflowRunPayload
multipart/form-data: WorkflowRunPayload

Responses

Code Description Schema
200 Run result (SSE stream) application/json: EventStreamResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /apps/{app_id}:publish

Parameters

Name Located in Description Required Schema
app_id path Yes string

Request Body

Required Schema
Yes application/json: PublishPayload

Responses

Code Description Schema
200 Published application/json: PublishResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /node-types

Responses

Code Description Schema
200 Node types application/json: NodeTypeListResponse
default Error application/json: ErrorBody

[GET] /node-types/{node_type}

Parameters

Name Located in Description Required Schema
node_type path Yes string

Responses

Code Description Schema
200 Node type application/json: NodeTypeDetailResponse
default Error application/json: ErrorBody

[POST] /oauth/device/approve

Request Body

Required Schema
Yes application/json: DeviceMutateRequest

Responses

Code Description Schema
200 Approved application/json: DeviceMutateResponse
404 Unknown or expired user code application/json: DeviceFlowErrorResponse
ErrorBody
409 Already resolved, in progress, or state lost application/json: DeviceFlowErrorResponse
ErrorBody
503 Approval outcome unknown application/json: DeviceFlowErrorResponse
ErrorBody
default Error application/json: ErrorBody

[POST] /oauth/device/code

Request Body

Required Schema
Yes application/json: DeviceCodeRequest

Responses

Code Description Schema
200 Device code created application/json: DeviceCodeResponse
400 Unsupported client application/json: DeviceFlowErrorResponse
ErrorBody
default Error application/json: ErrorBody

[POST] /oauth/device/deny

Request Body

Required Schema
Yes application/json: DeviceMutateRequest

Responses

Code Description Schema
200 Denied application/json: DeviceMutateResponse
404 Unknown or expired user code application/json: DeviceFlowErrorResponse
ErrorBody
409 Already resolved, in progress, or state lost application/json: DeviceFlowErrorResponse
ErrorBody
503 Approval outcome unknown application/json: DeviceFlowErrorResponse
ErrorBody
default Error application/json: ErrorBody

[GET] /oauth/device/lookup

Parameters

Name Located in Description Required Schema
user_code query Yes string

Responses

Code Description Schema
200 Device lookup result application/json: DeviceLookupResponse
default Error application/json: ErrorBody

[POST] /oauth/device/token

Request Body

Required Schema
Yes application/json: DevicePollRequest

Responses

Code Description Schema
200 Device token application/json: DeviceTokenResponse
400 Authorization pending, polling too fast, expired, or denied application/json: DeviceFlowErrorResponse
ErrorBody
default Error application/json: ErrorBody

[GET] /permitted-external-apps

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 20
mode query App types the app usage face (get app) lists and filters. A curated subset of :class:AppMode: the real, user-facing app categories. Excludes runtime-only mode tags that are not standalone apps (rag-pipeline is a knowledge Pipeline; channel is unused) and the roster-owned agent type (surfaced through the roster, not this list). Members reference AppMode.*.value so the subset relationship is type-checked: dropping a member from AppMode breaks this at import. This is the single source for the listable set — params, filters, and the generated CLI whitelist all derive from it. No string,
Available values: "advanced-chat", "agent-chat", "chat", "completion", "workflow"
name query No string
page query No integer,
Default: 1

Responses

Code Description Schema
200 Permitted external apps list application/json: PermittedExternalAppsListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /permitted-external-apps/{app_id}

Parameters

Name Located in Description Required Schema
fields query No string
app_id path Yes string

Responses

Code Description Schema
200 Permitted external app description application/json: AppDescribeResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 20
page query No integer,
Default: 1

Responses

Code Description Schema
200 Workspace list application/json: WorkspaceListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}

Parameters

Name Located in Description Required Schema
workspace_id path Yes string

Responses

Code Description Schema
200 Workspace detail application/json: WorkspaceDetailResponse
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/apps/advanced-chat

Parameters

Name Located in Description Required Schema
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: CreateAppPayload

Responses

Code Description Schema
201 Created application/json: CreatedAppResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/apps/imports

Parameters

Name Located in Description Required Schema
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: AppDslImportPayload

Responses

Code Description Schema
200 Import completed application/json: AppDslImportResponse
202 Import pending confirmation application/json: AppDslImportResponse
400 Import failed application/json: AppDslImportResponse
ErrorBody
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/apps/imports/{import_id}:confirm

Parameters

Name Located in Description Required Schema
import_id path Yes string
workspace_id path Yes string

Responses

Code Description Schema
200 Import confirmed application/json: Import
400 Import failed application/json: Import
ErrorBody
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/apps/imports:check

Parameters

Name Located in Description Required Schema
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: DslCheckPayload

Responses

Code Description Schema
200 Check result application/json: DslCheckResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/apps/workflow

Parameters

Name Located in Description Required Schema
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: CreateAppPayload

Responses

Code Description Schema
201 Created application/json: CreatedAppResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/knowledge-bases

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 20
page query No integer,
Default: 1
query query Words to match in the knowledge base name No string
workspace_id path Yes string

Responses

Code Description Schema
200 Knowledge bases application/json: KnowledgeBaseListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/marketplace/plugins

Parameters

Name Located in Description Required Schema
category query Only plugins of this category No string,
Available values: "agent-strategy", "datasource", "extension", "model", "tool", "trigger"
limit query No integer,
Default: 20
page query No integer,
Default: 1
query query Words to search for; empty lists the most installed plugins No string
workspace_id path Yes string

Responses

Code Description Schema
200 Marketplace plugins application/json: MarketplacePluginListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/members

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 20
page query No integer,
Default: 1
workspace_id path Yes string

Responses

Code Description Schema
200 Member list application/json: MemberListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/members

Parameters

Name Located in Description Required Schema
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: MemberInvitePayload

Responses

Code Description Schema
201 Member invited application/json: MemberInviteResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[DELETE] /workspaces/{workspace_id}/members/{member_id}

Parameters

Name Located in Description Required Schema
member_id path Yes string
workspace_id path Yes string

Responses

Code Description Schema
200 Member removed application/json: MemberActionResponse
default Error application/json: ErrorBody

[PATCH] /workspaces/{workspace_id}/members/{member_id}

Parameters

Name Located in Description Required Schema
member_id path Yes string
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: MemberRoleUpdatePayload

Responses

Code Description Schema
200 Role updated application/json: MemberActionResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/model-providers/{provider}

Parameters

Name Located in Description Required Schema
provider path Yes string
workspace_id path Yes string

Responses

Code Description Schema
200 Model provider application/json: ModelProviderDetailResponse
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/model-providers/{provider}/credentials

Parameters

Name Located in Description Required Schema
provider path Yes string
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: ProviderCredentialCreatePayload

Responses

Code Description Schema
201 Credential saved application/json: CredentialWriteResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[PATCH] /workspaces/{workspace_id}/model-providers/{provider}/credentials/{credential_id}

Parameters

Name Located in Description Required Schema
credential_id path Yes string
provider path Yes string
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: ProviderCredentialUpdatePayload

Responses

Code Description Schema
200 Credential replaced application/json: CredentialWriteResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/model-providers/{provider}/models/credentials

Parameters

Name Located in Description Required Schema
provider path Yes string
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: ModelCredentialCreatePayload

Responses

Code Description Schema
201 Credential saved application/json: CredentialWriteResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[PATCH] /workspaces/{workspace_id}/model-providers/{provider}/models/credentials/{credential_id}

Parameters

Name Located in Description Required Schema
credential_id path Yes string
provider path Yes string
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: ModelCredentialUpdatePayload

Responses

Code Description Schema
200 Credential replaced application/json: CredentialWriteResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/models

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 20
model_type query Only models of this type No string,
Available values: "llm", "moderation", "rerank", "speech2text", "text-embedding", "tts"
page query No integer,
Default: 1
provider query Only this provider's models, such as langgenius/openai/openai No string
query query Words to match in the model name, label or provider No string
workspace_id path Yes string

Responses

Code Description Schema
200 Models application/json: ModelListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/plugin-tasks/{task_id}

Parameters

Name Located in Description Required Schema
task_id path Yes string
workspace_id path Yes string

Responses

Code Description Schema
200 Install task application/json: PluginTaskResponse
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/plugins

Parameters

Name Located in Description Required Schema
category query Only plugins of this category No string,
Available values: "agent-strategy", "datasource", "extension", "model", "tool", "trigger"
workspace_id path Yes string

Responses

Code Description Schema
200 Installed plugins application/json: PluginListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[DELETE] /workspaces/{workspace_id}/plugins/{plugin_id}

Parameters

Name Located in Description Required Schema
plugin_id path Yes string
workspace_id path Yes string

Responses

Code Description Schema
200 Plugin uninstalled application/json: PluginDeleteResponse
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/plugins:install

Parameters

Name Located in Description Required Schema
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: PluginInstallPayload

Responses

Code Description Schema
200 Install started application/json: PluginTaskStartResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/tool-providers/{provider}

Parameters

Name Located in Description Required Schema
provider path Yes string
workspace_id path Yes string

Responses

Code Description Schema
200 Tool provider application/json: ToolProviderDetailResponse
default Error application/json: ErrorBody

[POST] /workspaces/{workspace_id}/tool-providers/{provider}/credentials

Parameters

Name Located in Description Required Schema
provider path Yes string
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: ToolCredentialCreatePayload

Responses

Code Description Schema
201 Credential saved application/json: CredentialWriteResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[PATCH] /workspaces/{workspace_id}/tool-providers/{provider}/credentials/{credential_id}

Parameters

Name Located in Description Required Schema
credential_id path Yes string
provider path Yes string
workspace_id path Yes string

Request Body

Required Schema
Yes application/json: ToolCredentialUpdatePayload

Responses

Code Description Schema
200 Credential replaced application/json: CredentialWriteResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

[GET] /workspaces/{workspace_id}/tools

Parameters

Name Located in Description Required Schema
limit query No integer,
Default: 20
page query No integer,
Default: 1
provider query Only this provider's tools No string
provider_type query Only tools of this provider type No string,
Available values: "api", "builtin", "mcp", "workflow"
query query Words to match in the tool name or label, or the provider id or label No string
workspace_id path Yes string

Responses

Code Description Schema
200 Tools application/json: ToolListResponse
422 Validation error application/json: ErrorBody
default Error application/json: ErrorBody

Schemas

AccountPayload

Name Type Description Required
email string Yes
id string Yes
name string Yes

AccountResponse

Name Type Description Required
account AccountPayload No
default_workspace_id string No
subject_email string No
subject_issuer string No
subject_type SubjectType Yes
workspaces [ WorkspacePayload ],
Default:
No

AdvancedChatNodeRunPayload

Name Type Description Required
files object Local file paths keyed by the file variable name (a start variable or #node.var#); each is uploaded No
inputs object Overrides for what the last draft run saved, keyed by variable reference such as #llm.text# No
query string The user message the node sees as sys.query No

AdvancedChatRunPayload

A chat run against an advanced-chat (chatflow) app, which can also pin a workflow version.

Name Type Description Required
attachments [ string ] Local file paths attached to the run itself (the app's sys.files), not to a variable No
auto_generate_name boolean,
Default: true
Let the server name a new conversation No
conversation_id string Continue an existing conversation No
files object Local file paths keyed by the app's file variable name; each file is uploaded and becomes that variable's value. Give a list of paths for a file-list variable No
inputs object Variables declared by the app. The exact shape is per app: read input_schema from describe.console_app. A file variable takes a Dify file mapping (remote url or upload id) here, or a local path in files, not both. No
query string User message Yes
workflow_id string Pin a published workflow version No
workspace_id string Workspace that owns the app No

AdvancedChatWebApp

Name Type Description Required
access_token string No
app_base_url string Yes
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
enabled boolean Yes
icon string No
icon_background string No
icon_type string No
input_placeholder string No
privacy_policy string No
show_workflow_steps boolean No
title string No
url string No
use_icon_as_answer_icon boolean No

AdvancedChatWebAppPatch

Name Type Description Required
chat_color_theme string Chat colour, e.g. #1C64F2 No
chat_color_theme_inverted boolean Invert the chat colours No
copyright string Footer copyright text No
custom_disclaimer string Disclaimer shown on the page No
default_language string Language code, e.g. en-US No
description string Page description No
enabled boolean Turn the web app on or off No
icon string Emoji, file id or URL, per icon_type No
icon_background string Background colour for an emoji icon No
icon_type string,
Available values: "emoji", "image", "link"
emoji, image or link No
input_placeholder string Placeholder of the chat input No
privacy_policy string Privacy policy URL No
show_workflow_steps boolean Show each node step to users No
title string Page title No
use_icon_as_answer_icon boolean Show the app icon on answers No

AgentAppInfo

Name Type Description Required
description string No
icon string No
icon_background string No
icon_type string No
max_active_requests integer No
name string Yes
role string No
use_icon_as_answer_icon boolean No

AgentAppInfoPatch

Name Type Description Required
description string Pass an empty string to clear No
icon string Emoji, file id or URL, per icon_type No
icon_background string Background colour for an emoji icon No
icon_type string,
Available values: "emoji", "image", "link"
emoji, image or link No
max_active_requests integer Concurrent run cap; 0 uses the server default. The server-wide cap still applies No
name string App name No
role string The agent's role; empty string clears it No
use_icon_as_answer_icon boolean Show the app icon on answers No

AgentServiceApi

Name Type Description Required
access_ready boolean Yes
api_rph integer No
api_rpm integer No
base_url string Yes
enabled boolean Yes

AgentWebApp

Name Type Description Required
access_ready boolean Yes
access_token string No
app_base_url string Yes
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
enabled boolean Yes
icon string No
icon_background string No
icon_type string No
input_placeholder string No
privacy_policy string No
title string No
url string No
use_icon_as_answer_icon boolean No

AppDescribeInfo

Name Type Description Required
description string No
id string Yes
is_agent boolean True for agent-chat and advanced-chat apps No
mode string Yes
name string Yes
service_api_enabled boolean Yes
updated_at string No

AppDescribeQuery

?fields= allow-list for GET /apps/.

Empty / omitted → all blocks. Unknown member → ValidationError → 422.

Name Type Description Required
fields string No

AppDescribeResponse

Name Type Description Required
hints [ Hint ] Next steps the caller can take No
info AppDescribeInfo No
input_schema object No
parameters object No

AppDslExportQuery

Query parameters for GET /apps/<app_id>/dsl.

Name Type Description Required
include_secret boolean Include secret values in plaintext in the exported DSL No
workflow_id string Export a specific workflow version instead of the current draft No

AppDslExportResponse

Export DSL response.

Name Type Description Required
data string DSL YAML string Yes
draft_hash string Hash of the draft's graph, features, environment variables and conversation variables; pass it to the import to refuse overwriting newer edits No

AppDslImportPayload

Request body for POST /workspaces/<workspace_id>/apps/imports.

Name Type Description Required
app_id string Existing app ID to overwrite (workflow/advanced-chat apps only) No
description string Override the app description from the DSL No
draft_hash string draft_hash from the export or restore this import is based on. The import fails if the draft's graph, features, environment variables or conversation variables changed since. Requires app_id No
icon string No
icon_background string No
icon_type string No
mode string,
Available values: "yaml-content", "yaml-url"
Import mode: yaml-content or yaml-url
Enum: "yaml-content", "yaml-url"
Yes
name string Override the app name from the DSL No
yaml_content string Inline YAML DSL string (required when mode is yaml-content) No
yaml_url string Remote URL to fetch YAML from (required when mode is yaml-url) No

AppDslImportResponse

Import plus the server-built next step for a pending import.

Name Type Description Required
app_id string No
app_mode AppMode No
current_dsl_version string,
Default: 0.7.0
No
error string No
hints [ Hint ] Next steps the caller can take No
id string Yes
imported_dsl_version string No
permission_keys [ string ] No
status ImportStatus Yes
warnings [ DslImportWarning ] No

AppInfo

Name Type Description Required
description string No
id string Yes
mode string Yes
name string Yes

AppInfoPatch

Name Type Description Required
description string Pass an empty string to clear No
icon string Emoji, file id or URL, per icon_type No
icon_background string Background colour for an emoji icon No
icon_type string,
Available values: "emoji", "image", "link"
emoji, image or link No
max_active_requests integer Concurrent run cap; 0 uses the server default. The server-wide cap still applies No
name string App name No

AppListQuery

mode is a closed enum of listable app types.

Name Type Description Required
limit integer,
Default: 20
No
mode SupportedAppType No
name string Filter by a name substring; an app id returns that one app and ignores mode No
page integer,
Default: 1
No
workspace_id string (uuid) Yes

AppListResponse

Name Type Description Required
data [ AppListRow ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

AppListRow

Name Type Description Required
description string No
id string Yes
mode AppMode Yes
name string Yes
updated_at string No
workspace_id string No
workspace_name string No

AppMode

Name Type Description Required
AppMode string

AppSettingsInfo

Name Type Description Required
description string No
icon string No
icon_background string No
icon_type string No
max_active_requests integer No
name string Yes

ChatAppInfo

Name Type Description Required
description string No
icon string No
icon_background string No
icon_type string No
max_active_requests integer No
name string Yes
use_icon_as_answer_icon boolean No

ChatAppInfoPatch

Name Type Description Required
description string Pass an empty string to clear No
icon string Emoji, file id or URL, per icon_type No
icon_background string Background colour for an emoji icon No
icon_type string,
Available values: "emoji", "image", "link"
emoji, image or link No
max_active_requests integer Concurrent run cap; 0 uses the server default. The server-wide cap still applies No
name string App name No
use_icon_as_answer_icon boolean Show the app icon on answers No

ChatRunPayload

Name Type Description Required
attachments [ string ] Local file paths attached to the run itself (the app's sys.files), not to a variable No
auto_generate_name boolean,
Default: true
Let the server name a new conversation No
conversation_id string Continue an existing conversation No
files object Local file paths keyed by the app's file variable name; each file is uploaded and becomes that variable's value. Give a list of paths for a file-list variable No
inputs object Variables declared by the app. The exact shape is per app: read input_schema from describe.console_app. A file variable takes a Dify file mapping (remote url or upload id) here, or a local path in files, not both. No
query string User message Yes
workspace_id string Workspace that owns the app No

ChatWebApp

Name Type Description Required
access_token string No
app_base_url string Yes
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
enabled boolean Yes
icon string No
icon_background string No
icon_type string No
input_placeholder string No
privacy_policy string No
title string No
url string No
use_icon_as_answer_icon boolean No

ChatWebAppPatch

Name Type Description Required
chat_color_theme string Chat colour, e.g. #1C64F2 No
chat_color_theme_inverted boolean Invert the chat colours No
copyright string Footer copyright text No
custom_disclaimer string Disclaimer shown on the page No
default_language string Language code, e.g. en-US No
description string Page description No
enabled boolean Turn the web app on or off No
icon string Emoji, file id or URL, per icon_type No
icon_background string Background colour for an emoji icon No
icon_type string,
Available values: "emoji", "image", "link"
emoji, image or link No
input_placeholder string Placeholder of the chat input No
privacy_policy string Privacy policy URL No
title string Page title No
use_icon_as_answer_icon boolean Show the app icon on answers No

CheckDependenciesResponse

Name Type Description Required
hints [ Hint ] Next steps the caller can take No
leaked_dependencies [ PluginDependency ] No

CheckDependenciesResult

Name Type Description Required
leaked_dependencies [ PluginDependency ] No

CompletionRunPayload

Name Type Description Required
attachments [ string ] Local file paths attached to the run itself (the app's sys.files), not to a variable No
files object Local file paths keyed by the app's file variable name; each file is uploaded and becomes that variable's value. Give a list of paths for a file-list variable No
inputs object Variables declared by the app. The exact shape is per app: read input_schema from describe.console_app. A file variable takes a Dify file mapping (remote url or upload id) here, or a local path in files, not both. No
query string Prompt text; most completion apps take their input through inputs No
workspace_id string Workspace that owns the app No

CreateAppPayload

Name Type Description Required
description string App description No
icon string Emoji, file id or URL, per icon_type No
icon_background string Background colour for an emoji icon No
icon_type string,
Available values: "emoji", "image", "link"
emoji, image or link No
name string App name Yes

CreatedAppResponse

Name Type Description Required
app_id string Yes
mode string Yes
name string Yes

CredentialFormField

Name Type Description Required
label string Yes
name string Yes
options [ string ] Allowed values, when the field is a choice Yes
placeholder string Yes
required boolean Yes
show_on [ object ] Show this field only when these other fields have these values Yes
type string Yes

CredentialRef

Name Type Description Required
id string Yes
name string Yes

CredentialWriteResponse

Name Type Description Required
active boolean Yes
hints [ Hint ] Next steps the caller can take No
id string Yes
name string Yes

CustomModelRow

Name Type Description Required
active_credential CredentialRef Yes
model string Yes
model_type string Yes

DeploymentEdition

Enum representing the deployment edition of the platform.

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

DeviceCodeRequest

Name Type Description Required
client_id string Yes
device_label string Yes

DeviceCodeResponse

Name Type Description Required
device_code string Yes
expires_in integer Yes
interval integer Yes
user_code string Yes
verification_uri string Yes

DeviceFlowErrorResponse

RFC 8628-style device-flow error. These routes keep the OAuth {"error": code} shape instead of ErrorBody because device clients parse it.

Name Type Description Required
error string,
Available values: "access_denied", "already_resolved", "approval_outcome_unknown", "approve_in_progress", "authorization_pending", "expired_or_unknown", "expired_token", "slow_down", "state_lost", "unsupported_client"
Enum: "access_denied", "already_resolved", "approval_outcome_unknown", "approve_in_progress", "authorization_pending", "expired_or_unknown", "expired_token", "slow_down", "state_lost", "unsupported_client" Yes

DeviceLookupQuery

Name Type Description Required
user_code string Yes

DeviceLookupResponse

Name Type Description Required
client_id string No
expires_in_remaining integer No
valid boolean Yes

DeviceMutateRequest

Name Type Description Required
user_code string Yes

DeviceMutateResponse

Name Type Description Required
status string Yes

DevicePollRequest

Name Type Description Required
client_id string Yes
device_code string Yes

DeviceTokenResponse

Name Type Description Required
account AccountPayload No
default_workspace_id string No
expires_at string Yes
subject_email string No
subject_issuer string No
subject_type SubjectType Yes
token string Yes
token_id string Yes
workspaces [ WorkspacePayload ],
Default:
No

DraftWorkflowRunPayload

Name Type Description Required
attachments [ string ] Local file paths attached to the run itself (the app's sys.files), not to a variable No
files object Local file paths keyed by the app's file variable name; each file is uploaded and becomes that variable's value. Give a list of paths for a file-list variable No
inputs object Variables declared by the app. The exact shape is per app: read input_schema from describe.console_app. A file variable takes a Dify file mapping (remote url or upload id) here, or a local path in files, not both. No
workspace_id string Workspace that owns the app No

DslCheckPayload

Name Type Description Required
app_id string Check against this existing app's mode, as an overwrite import would No
yaml_content string The DSL to check, as YAML text Yes

DslCheckResponse

Name Type Description Required
hints [ Hint ] Next steps the caller can take No
issues [ DslIssueRow ] Yes
valid boolean No error-severity issues Yes

DslImportWarning

Portable DSL reference that could not be restored in the target workspace.

Name Type Description Required
code string Yes
details object No
message string Yes
path string Yes

DslIssueRow

Name Type Description Required
code string Yes
loc [ string
integer ]
Yes
message string Yes
node_id string Yes
severity string error: import refuses it; warning: import allows it, the release check does not Yes

EnvVariableListResponse

Name Type Description Required
data [ EnvVariableRow ] Yes

EnvVariableRow

Name Type Description Required
description string No
id string What set and delete take to address this variable Yes
name string What nodes use to refer to this variable Yes
value The value; a secret with a value is masked, an empty one reads as empty Yes
value_type string Yes

EnvVariableSetPayload

Name Type Description Required
description string What the variable is for No
name string Variable name Yes
value The value; sending the masked value of an existing secret keeps the stored one Yes
value_type EnvVariableValueType string, number or secret Yes

EnvVariableValueType

Value types the draft environment-variable set op accepts.

A curated subset of SegmentType: what the console's environment-variable editor allows (ENVIRONMENT_VARIABLE_SUPPORTED_TYPES in controllers/console/app/workflow.py). Members reference SegmentType.*.value so the subset relationship is type-checked.

Name Type Description Required
EnvVariableValueType string Value types the draft environment-variable set op accepts. A curated subset of SegmentType: what the console's environment-variable editor allows (ENVIRONMENT_VARIABLE_SUPPORTED_TYPES in controllers/console/app/workflow.py). Members reference SegmentType.*.value so the subset relationship is type-checked.

ErrorBody

Canonical non-2xx body. code is typed str (not the enum) so the generated client schema stays an open enum — old CLIs keep parsing when a future server adds a code. Formatter tests pin emitted values to the enum.

Name Type Description Required
code string Yes
details [ ErrorDetail ] No
hint string No
hints [ Hint ] No
message string Yes
status integer Yes

ErrorDetail

Name Type Description Required
loc [ string
integer ]
No
msg string Yes
type string Yes

EventStreamResponse

Name Type Description Required
EventStreamResponse string

FileResponse

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

FileUploadPayload

Name Type Description Required
file binary The file to upload; its id can then be used in an app run's file variables Yes

FormSubmitResponse

200 body for POST /apps//human-input-forms/:submit: the hint to follow the resumed run. extra='forbid' pins additionalProperties: false so the generated contract is exact rather than an under-annotated open object.

Name Type Description Required
hints [ Hint ] Next steps the caller can take No

Github

Name Type Description Required
github_plugin_unique_identifier string Yes
package string Yes
repo string Yes
version string Yes

HealthResponse

Liveness payload for GET /openapi/v1/_health — no auth required.

Name Type Description Required
ok boolean Yes

Hint

A next step: the op id to call and its ready input.

Name Type Description Required
form [ object ] Form fields behind the hint's input: a paused run's form inputs, or credentials No
input object Ready-to-send input for op; unknown values are null Yes
op string Yes
summary string Yes

HumanInputFormDefinitionResponse

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

Import

Name Type Description Required
app_id string No
app_mode AppMode No
current_dsl_version string,
Default: 0.7.0
No
error string No
id string Yes
imported_dsl_version string No
permission_keys [ string ] No
status ImportStatus Yes
warnings [ DslImportWarning ] No

ImportStatus

Name Type Description Required
ImportStatus string

JsonValue

Name Type Description Required
JsonValue

KnowledgeBaseListQuery

Name Type Description Required
limit integer,
Default: 20
No
page integer,
Default: 1
No
query string Words to match in the knowledge base name No

KnowledgeBaseListResponse

Name Type Description Required
data [ KnowledgeBaseRow ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

KnowledgeBaseRow

Name Type Description Required
description string Yes
document_count integer Yes
id string Yes
indexing_technique string Yes
name string Yes
node_data KnowledgeRetrievalFragment Merge into a knowledge-retrieval node's data and set query_variable_selector; to search several bases, join their dataset_ids. For rerank or weights read describe node_type Yes
provider string vendor: indexed in Dify; external: an external knowledge API Yes
usable boolean false when its embedding model isn't available in this workspace Yes

KnowledgeRetrievalFragment

Name Type Description Required
dataset_ids [ string ] Yes
multiple_retrieval_config MultipleRetrievalFragment No
retrieval_mode string,
Default: multiple
No

LlmModelBlock

Name Type Description Required
completion_params object No
mode string Yes
name string Yes
provider string Yes

Marketplace

Name Type Description Required
marketplace_plugin_unique_identifier string Yes
version string No

MarketplacePluginListResponse

Name Type Description Required
data [ MarketplacePluginRow ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

MarketplacePluginQuery

Name Type Description Required
category PluginCategory Only plugins of this category No
limit integer,
Default: 20
No
page integer,
Default: 1
No
query string Words to search for; empty lists the most installed plugins No

MarketplacePluginRow

Name Type Description Required
authorized_category string Who vouches for the plugin: langgenius (official), partner or community; workspace install-scope rules check this Yes
brief string Yes
category string Yes
identifier string Latest versioned id; pass it to install.plugin Yes
install_count integer Yes
installed boolean Yes
installed_version string Yes
label string Yes
plugin_id string Yes
version string Yes

MemberActionResponse

Name Type Description Required
result string,
Default: success
No

MemberInvitePayload

Name Type Description Required
email string Yes
role string,
Available values: "admin", "normal"
Enum: "admin", "normal" Yes

MemberInviteResponse

Name Type Description Required
email string Yes
invite_url string Yes
member_id string Yes
result string,
Default: success
No
role string Yes
tenant_id string Yes

MemberListQuery

Strict (extra='forbid').

Name Type Description Required
limit integer,
Default: 20
No
page integer,
Default: 1
No

MemberListResponse

Name Type Description Required
data [ MemberResponse ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

MemberResponse

Name Type Description Required
avatar string No
email string Yes
id string Yes
name string Yes
role string Yes
status string Yes

MemberRoleUpdatePayload

Name Type Description Required
role string,
Available values: "admin", "normal"
Enum: "admin", "normal" Yes

MessageMetadata

Name Type Description Required
retriever_resources [ object ],
Default:
No
usage UsageInfo No

ModelCredentialCreatePayload

Name Type Description Required
credentials object Secret values, keyed by the field names in credential_form of the describe op. Yes
model string Model name, as in get.model Yes
model_type ModelType Yes
name string No

ModelCredentialUpdatePayload

Name Type Description Required
credentials object Secret values, keyed by the field names in credential_form of the describe op. Send [HIDDEN] for a secret you keep unchanged. Yes
model string Model name, as in get.model Yes
model_type ModelType Yes
name string No

ModelListQuery

Name Type Description Required
limit integer,
Default: 20
No
model_type ModelType Only models of this type No
page integer,
Default: 1
No
provider string Only this provider's models, such as langgenius/openai/openai No
query string Words to match in the model name, label or provider No

ModelListResponse

Name Type Description Required
data [ ModelRow ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

ModelProviderDetailResponse

Name Type Description Required
active_credential CredentialRef Yes
configured boolean Yes
credential_form [ CredentialFormField ] Yes
credentials [ CredentialRef ] Yes
custom_model_form [ CredentialFormField ] Yes
custom_models [ CustomModelRow ] Yes
hints [ Hint ] Next steps the caller can take No
label string Yes
model_types [ string ] Yes
provider string Provider id such as langgenius/openai/openai Yes

ModelProviderRow

Name Type Description Required
active_credential CredentialRef Yes
configured boolean Yes
label string Yes
model_types [ string ] Yes
provider string Provider id such as langgenius/openai/openai Yes

ModelRef

Name Type Description Required
model string Model name, as in get.model Yes
model_type ModelType Yes

ModelRow

Name Type Description Required
features [ string ] Yes
label string Yes
model string Yes
model_type string Yes
node_model LlmModelBlock LLM rows: paste as the node's model No
provider string Yes
provider_label string Yes
status string active means usable now; anything else needs the provider set up Yes

ModelType

Enum class for model type.

Name Type Description Required
ModelType string Enum class for model type.

MultipleRetrievalFragment

Name Type Description Required
reranking_enable boolean No
top_k integer,
Default: 4
No

NodeChange

Name Type Description Required
fields [ string ] Yes
id string Yes
title string Yes
type string Yes

NodeRunPayload

Name Type Description Required
files object Local file paths keyed by the file variable name (a start variable or #node.var#); each is uploaded No
inputs object Overrides for what the last draft run saved, keyed by variable reference such as #llm.text# No

NodeTypeDetailResponse

Name Type Description Required
default_config object Yes
schema object Yes
type string Yes
version string Yes

NodeTypeListResponse

Name Type Description Required
data [ NodeTypeRow ] Yes

NodeTypeRow

Name Type Description Required
type string Yes
version string Yes

OpenApiErrorCode

Name Type Description Required
OpenApiErrorCode string

OpenApiFormSubmitPayload

The console payload plus local file parts; _files.merge_files sets them on inputs.

Name Type Description Required
action string ID of the action button the recipient selected. Must match one of the id values from the form's user_actions list. Yes
files object Local file paths keyed by the form's file input name, same convention as the run ops' files No
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

Package

Name Type Description Required
plugin_unique_identifier string Yes
version string No

PermittedExternalAppsListQuery

Strict (extra='forbid').

Name Type Description Required
limit integer,
Default: 20
No
mode SupportedAppType No
name string No
page integer,
Default: 1
No

PermittedExternalAppsListResponse

Name Type Description Required
data [ AppListRow ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

PluginCategory

Name Type Description Required
PluginCategory string

PluginDeleteResponse

Name Type Description Required
deleted boolean Yes
plugin_id string Yes

PluginDependency

Name Type Description Required
current_identifier string No
type PluginDependencyType Yes
value Github
Marketplace
Package
Yes

PluginDependencyType

Name Type Description Required
PluginDependencyType string

PluginInstallPayload

Name Type Description Required
identifiers [ string ] Versioned plugin ids such as langgenius/openai:0.2.1@sha256…, from get.marketplace.plugin (identifier) or check.console_app.dependency Yes

PluginInstallTaskStatus

Name Type Description Required
PluginInstallTaskStatus string

PluginListQuery

Name Type Description Required
category PluginCategory Only plugins of this category No

PluginListResponse

Name Type Description Required
data [ PluginRow ] Yes
hints [ Hint ] Next steps the caller can take No

PluginProvides

Name Type Description Required
model_provider string Model provider id this plugin adds, for describe.model_provider Yes
tool_provider string Tool provider id this plugin adds, for describe.tool_provider Yes

PluginRow

Name Type Description Required
category string Yes
identifier string Yes
label string Yes
latest_version string Yes
plugin_id string Yes
provides PluginProvides Yes
source string Yes
version string Yes

PluginTaskItem

Name Type Description Required
identifier string Yes
message string Yes
plugin_id string Yes
status PluginInstallTaskStatus Yes

PluginTaskResponse

Name Type Description Required
hints [ Hint ] Next steps the caller can take No
plugins [ PluginTaskItem ] Yes
status PluginInstallTaskStatus Yes
task_id string Yes

PluginTaskStartResponse

Name Type Description Required
all_installed boolean Yes
hints [ Hint ] Next steps the caller can take No
task_id string Yes

ProviderCredentialCreatePayload

Name Type Description Required
credentials object Secret values, keyed by the field names in credential_form of the describe op. Yes
name string Credential name; the server makes one when absent No

ProviderCredentialUpdatePayload

Name Type Description Required
credentials object Secret values, keyed by the field names in credential_form of the describe op. Send [HIDDEN] for a secret you keep unchanged. Yes
name string No

PublishPayload

Name Type Description Required
marked_comment string Version note No
marked_name string Version name No

PublishResponse

Name Type Description Required
created_at integer Yes
version_id string Yes
warning string Variable references that may read a skipped branch No

ReleaseCheckName

Name Type Description Required
ReleaseCheckName string

ReleaseCheckResponse

Name Type Description Required
changes WorkflowDiff Yes
checks [ ReleaseCheckRow ] Yes
hints [ Hint ] Next steps the caller can take No
issues [ DslIssueRow ] Yes
ready boolean Every check passed; show the human changes and ask before publishing Yes
state ReleaseState Yes

ReleaseCheckRow

Name Type Description Required
detail string Yes
name ReleaseCheckName Yes
passed boolean Yes

ReleaseState

Name Type Description Required
service_api_enabled boolean Yes
webapp_enabled boolean Yes

RestoreResponse

Name Type Description Required
draft_hash string Hash of the restored draft's graph, features, environment variables and conversation variables; pass it to a DSL import as draft_hash Yes
result string Yes

RevokeResponse

Name Type Description Required
status string Yes

RunListQuery

Name Type Description Required
last_id string Cursor: id of the last run on the previous page No
limit integer,
Default: 20
No
status string,
Available values: "failed", "partial-succeeded", "running", "stopped", "succeeded"
No
triggered_from string,
Available values: "app-run", "debugging",
Default: debugging
debugging: draft test runs, as in the console; app-run: real use
Enum: "app-run", "debugging"
No

RunListResponse

Cursor page of runs; hints carries the next page.

Name Type Description Required
data [ WorkflowRunForListResponse ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes

ServerVersionResponse

Meta endpoint payload for GET /openapi/v1/_version — no auth required.

Name Type Description Required
edition DeploymentEdition Yes
version string Yes

ServiceApi

Name Type Description Required
base_url string Yes
enabled boolean Yes

ServiceApiPatch

Name Type Description Required
enabled boolean Turn the app's Service API on or off Yes

SessionListQuery

Pagination for GET /account/sessions. Strict (extra='forbid').

Name Type Description Required
limit integer,
Default: 100
No
page integer,
Default: 1
No

SessionListResponse

Name Type Description Required
data [ SessionRow ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

SessionRow

Name Type Description Required
client_id string Yes
created_at string No
device_label string Yes
expires_at string No
id string Yes
last_used_at string No
prefix string Yes

SimpleAccountResponse

Name Type Description Required
email string Yes
id string Yes
name string Yes

SimpleEndUser

Name Type Description Required
id string Yes
is_anonymous boolean Yes
session_id string No
type string Yes

SimpleResultResponse

Name Type Description Required
result string Operation result. Yes

SubjectType

Name Type Description Required
SubjectType string

SupportedAppType

App types the app usage face (get app) lists and filters.

A curated subset of :class:AppMode: the real, user-facing app categories. Excludes runtime-only mode tags that are not standalone apps (rag-pipeline is a knowledge Pipeline; channel is unused) and the roster-owned agent type (surfaced through the roster, not this list).

Members reference AppMode.*.value so the subset relationship is type-checked: dropping a member from AppMode breaks this at import. This is the single source for the listable set — params, filters, and the generated CLI whitelist all derive from it.

Name Type Description Required
SupportedAppType string App types the app usage face (get app) lists and filters. A curated subset of :class:AppMode: the real, user-facing app categories. Excludes runtime-only mode tags that are not standalone apps (rag-pipeline is a knowledge Pipeline; channel is unused) and the roster-owned agent type (surfaced through the roster, not this list). Members reference AppMode.*.value so the subset relationship is type-checked: dropping a member from AppMode breaks this at import. This is the single source for the listable set — params, filters, and the generated CLI whitelist all derive from it.

TaskStopResponse

200 body for POST /apps//tasks/<task_id>:stop. The handler always returns {"result": "success"}, so result is required (no default) — the generated contract types it as a required 'success' rather than an optional field.

Name Type Description Required
result string Yes

ToolCredentialCreatePayload

Name Type Description Required
credentials object Secret values, keyed by the field names in credential_form of the describe op. Yes
name string No

ToolCredentialUpdatePayload

Name Type Description Required
credentials object Secret values, keyed by the field names in credential_form of the describe op. Send [HIDDEN] for a secret you keep unchanged. Yes
name string No

ToolInputType

Binding modes for persisted tool input values.

Name Type Description Required
ToolInputType string Binding modes for persisted tool input values.

ToolInputValue

Name Type Description Required
type ToolInputType No
value No

ToolListQuery

Name Type Description Required
limit integer,
Default: 20
No
page integer,
Default: 1
No
provider string Only this provider's tools No
provider_type ToolSource Only tools of this provider type No
query string Words to match in the tool name or label, or the provider id or label No

ToolListResponse

Name Type Description Required
data [ ToolRow ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

ToolNodeTemplate

A tool node's data with every value as {type, value}.

Name Type Description Required
plugin_id string Yes
plugin_unique_identifier string Yes
provider_id string Yes
provider_name string Yes
provider_type string Yes
title string Yes
tool_configurations object Yes
tool_label string Yes
tool_name string Yes
tool_node_version string,
Default: 2
No
tool_parameters object Yes
type string,
Default: tool
No

ToolParameterRow

Name Type Description Required
default Yes
form string llm: goes in tool_parameters; form: goes in tool_configurations; schema: fixed Yes
label string Yes
llm_description string Yes
max number Yes
min number Yes
name string Yes
options [ string ] Yes
required boolean Yes
type string Yes

ToolProviderDetailResponse

Name Type Description Required
configured boolean Ready to use: needs no credential, or the workspace has one Yes
credential_form [ CredentialFormField ] Fields of an api-key credential Yes
credential_types [ string ] api-key can be set here; oauth2 needs the console Yes
credentials [ CredentialRef ] Yes
default_credential CredentialRef Yes
hints [ Hint ] Next steps the caller can take No
label string Yes
provider string Tool provider id such as langgenius/tavily/tavily Yes

ToolProviderRow

Name Type Description Required
configured boolean Ready to use: needs no credential, or the workspace has one Yes
credential_types [ string ] api-key can be set here; oauth2 needs the console Yes
label string Yes
provider string Tool provider id such as langgenius/tavily/tavily Yes

ToolRow

Name Type Description Required
configured boolean Ready to use: needs no credential, or the workspace has one. MCP: authorize or refresh in the console Yes
description string Yes
label string Yes
name string Yes
node_data ToolNodeTemplate Use as the tool node's data; fill every null value; pass upstream values as {type: mixed, value: "{{#node.var#}}"} or {type: variable, value: [node, var]} Yes
parameters [ ToolParameterRow ] Yes
provider string Yes
provider_label string Yes
provider_type string Yes

ToolSource

Tool provider types a workflow tool node can call; values match the node's provider_type.

Name Type Description Required
ToolSource string Tool provider types a workflow tool node can call; values match the node's provider_type.

UsageInfo

Name Type Description Required
completion_tokens integer No
prompt_tokens integer No
total_tokens integer No

VersionListQuery

Name Type Description Required
limit integer,
Default: 20
No
named_only boolean Only versions that have a name No
page integer,
Default: 1
No

VersionListResponse

Page of published versions, newest first; there is no total, hints carries the next page.

Name Type Description Required
data [ VersionRow ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes

VersionRow

Name Type Description Required
created_at integer Yes
created_by string No
current boolean No
id string Yes
marked_comment string Yes
marked_name string Yes

WebApp

Name Type Description Required
access_token string No
app_base_url string Yes
copyright string No
custom_disclaimer string No
default_language string No
description string No
enabled boolean Yes
icon string No
icon_background string No
icon_type string No
privacy_policy string No
title string No
url string No

WebAppAccess

Name Type Description Required
access_mode string Yes

WebAppAccessMode

Name Type Description Required
WebAppAccessMode string

WebAppAccessPayload

Name Type Description Required
access_mode WebAppAccessMode public, private_all or sso_verified. Choose specific members (private) in the Dify console Yes

WebAppPatch

Name Type Description Required
copyright string Footer copyright text No
custom_disclaimer string Disclaimer shown on the page No
default_language string Language code, e.g. en-US No
description string Page description No
enabled boolean Turn the web app on or off No
icon string Emoji, file id or URL, per icon_type No
icon_background string Background colour for an emoji icon No
icon_type string,
Available values: "emoji", "image", "link"
emoji, image or link No
privacy_policy string Privacy policy URL No
title string Page title No

WebAppToken

Name Type Description Required
access_token string No
app_base_url string Yes
url string No

WorkflowDiff

Name Type Description Required
edges_added [ string ] Yes
edges_removed [ string ] Yes
env_added [ string ] Yes
env_removed [ string ] Yes
features_changed boolean Yes
nodes_added [ NodeChange ] Yes
nodes_changed [ NodeChange ] Yes
nodes_removed [ NodeChange ] Yes
published boolean false when the app was never published; then everything counts as added Yes

WorkflowRunData

Name Type Description Required
created_at integer No
elapsed_time number No
error string No
finished_at integer No
id string Yes
outputs object No
status string Yes
total_steps integer No
total_tokens integer No
workflow_id string Yes

WorkflowRunDetailResponse

Name Type Description Required
created_at integer No
created_by_account SimpleAccountResponse No
created_by_end_user SimpleEndUser No
created_by_role string No
elapsed_time number No
error string No
exceptions_count integer No
finished_at integer No
graph Yes
id string Yes
inputs Yes
outputs Yes
status string No
total_steps integer No
total_tokens integer No
version string No

WorkflowRunForListResponse

Name Type Description Required
created_at integer No
created_by_account SimpleAccountResponse No
elapsed_time number No
exceptions_count integer No
finished_at integer No
id string Yes
retry_index integer No
status string No
total_steps integer No
total_tokens integer No
version string No

WorkflowRunNodeExecutionListResponse

Name Type Description Required
data [ WorkflowRunNodeExecutionResponse ] Yes

WorkflowRunNodeExecutionResponse

Name Type Description Required
created_at integer No
created_by_account SimpleAccountResponse No
created_by_end_user SimpleEndUser No
created_by_role string No
elapsed_time number No
error string No
execution_metadata No
extras No
finished_at integer No
id string Yes
index integer No
inputs No
inputs_truncated boolean No
node_id string No
node_type string No
outputs No
outputs_truncated boolean No
predecessor_node_id string No
process_data No
process_data_truncated boolean No
retry_index integer No
status string No
title string No

WorkflowRunPayload

Name Type Description Required
attachments [ string ] Local file paths attached to the run itself (the app's sys.files), not to a variable No
files object Local file paths keyed by the app's file variable name; each file is uploaded and becomes that variable's value. Give a list of paths for a file-list variable No
inputs object Variables declared by the app. The exact shape is per app: read input_schema from describe.console_app. A file variable takes a Dify file mapping (remote url or upload id) here, or a local path in files, not both. No
workflow_id string Pin a published workflow version No
workspace_id string Workspace that owns the app No

WorkflowWebApp

Name Type Description Required
access_token string No
app_base_url string Yes
copyright string No
custom_disclaimer string No
default_language string No
description string No
enabled boolean Yes
icon string No
icon_background string No
icon_type string No
privacy_policy string No
show_workflow_steps boolean No
title string No
url string No

WorkflowWebAppPatch

Name Type Description Required
copyright string Footer copyright text No
custom_disclaimer string Disclaimer shown on the page No
default_language string Language code, e.g. en-US No
description string Page description No
enabled boolean Turn the web app on or off No
icon string Emoji, file id or URL, per icon_type No
icon_background string Background colour for an emoji icon No
icon_type string,
Available values: "emoji", "image", "link"
emoji, image or link No
privacy_policy string Privacy policy URL No
show_workflow_steps boolean Show each node step to users No
title string Page title No

WorkspaceDetailResponse

Name Type Description Required
created_at string No
id string Yes
name string Yes
role string Yes
status string Yes

WorkspaceListQuery

Strict (extra='forbid').

Name Type Description Required
limit integer,
Default: 20
No
page integer,
Default: 1
No

WorkspaceListResponse

Name Type Description Required
data [ WorkspaceSummaryResponse ] Yes
has_more boolean Yes
hints [ Hint ] Next steps the caller can take No
limit integer Yes
page integer Yes
total integer Yes

WorkspacePayload

Name Type Description Required
id string Yes
name string Yes
role string Yes

WorkspaceSummaryResponse

Name Type Description Required
id string Yes
name string Yes
role string Yes
status string Yes