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
[GET] /account
Responses
[GET] /account/sessions
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| limit |
query |
|
No |
integer, Default: 100 |
| page |
query |
|
No |
integer, Default: 1 |
Responses
[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
[GET] /apps/{app_id}
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| fields |
query |
|
No |
string |
| app_id |
path |
|
Yes |
string |
Responses
[POST] /apps/{app_id}/advanced-chat:run
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[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
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
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
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
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
[PATCH] /apps/{app_id}/app-info/completion
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[GET] /apps/{app_id}/app-info/workflow
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Responses
[PATCH] /apps/{app_id}/app-info/workflow
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[POST] /apps/{app_id}/chat:run
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[POST] /apps/{app_id}/completion:run
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[GET] /apps/{app_id}/dependencies:check
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Responses
[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
Responses
[POST] /apps/{app_id}/draft/advanced-chat:run
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[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
Responses
[POST] /apps/{app_id}/draft/workflow:run
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[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
[GET] /apps/{app_id}/env
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Responses
[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
[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
Responses
[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
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
[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
Responses
[GET] /apps/{app_id}/release:check
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Responses
[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
[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
[GET] /apps/{app_id}/runs/{run_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 |
| run_id |
path |
|
Yes |
string |
Responses
[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
[POST] /apps/{app_id}/runs/{run_id}:stop
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
| run_id |
path |
|
Yes |
string |
Responses
[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
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
[PATCH] /apps/{app_id}/service-api/agent
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[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
[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
[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
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
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
[PATCH] /apps/{app_id}/webapp/advanced-chat
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[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
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
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
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
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
[PATCH] /apps/{app_id}/webapp/workflow
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[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
Responses
[POST] /apps/{app_id}:publish
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| app_id |
path |
|
Yes |
string |
Request Body
Responses
[GET] /node-types
Responses
[GET] /node-types/{node_type}
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| node_type |
path |
|
Yes |
string |
Responses
[POST] /oauth/device/approve
Request Body
Responses
[POST] /oauth/device/code
Request Body
Responses
[POST] /oauth/device/deny
Request Body
Responses
[GET] /oauth/device/lookup
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| user_code |
query |
|
Yes |
string |
Responses
[POST] /oauth/device/token
Request Body
Responses
[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
[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
[GET] /workspaces/{workspace_id}
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| workspace_id |
path |
|
Yes |
string |
Responses
[POST] /workspaces/{workspace_id}/apps/advanced-chat
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| workspace_id |
path |
|
Yes |
string |
Request Body
Responses
[POST] /workspaces/{workspace_id}/apps/imports
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| workspace_id |
path |
|
Yes |
string |
Request Body
Responses
[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
Responses
[POST] /workspaces/{workspace_id}/apps/workflow
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| workspace_id |
path |
|
Yes |
string |
Request Body
Responses
[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
[GET] /workspaces/{workspace_id}/knowledge-fs/knowledge-spaces/{knowledge_space_id}/fs:cat
Read Agent Knowledge Base entry content (cat)
Reads a bounded text portion of one entry, equivalent to difyctl fs cat. Content follows stable source order. When next_page_token is present, reuse it with the same path and consistency_class. total is not returned because this response is a bounded content stream, not a collection. Requires an OAuth account bearer with WORKSPACE_READ. Authentication and workspace scope are checked before request validation, and Agent Knowledge Base membership is revalidated for every call. A hidden or missing Agent Knowledge Base or entry uses the same 404 response. These operations are read-only and do not emit mutation audit events.
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| knowledge_space_id |
path |
Stable Dify Agent Knowledge Base resource ID; treat it as opaque. |
Yes |
string |
| workspace_id |
path |
Dify workspace ID that owns the Agent Knowledge Base. |
Yes |
string |
| consistency_class |
query |
Optional Agent Knowledge Base read-consistency policy. |
No |
string, Available values: "cache-consistent", "eventual-preview", "path-consistent", "snapshot-consistent" |
| page_size |
query |
Maximum source segments to read (1-100); ignored when the selected entry has one bounded content value. |
No |
integer, Default: 100 |
| page_token |
query |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
string |
| path |
query |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
string |
Responses
| Code |
Description |
Schema |
| 200 |
Agent Knowledge Base entry content |
application/json: KnowledgeFSEntryReadContentResponse
|
| 400 |
Invalid Agent Knowledge Base request |
application/json: ErrorBody
|
| 401 |
Missing or invalid OAuth account bearer |
application/json: ErrorBody
|
| 403 |
Caller lacks workspace or Agent Knowledge Base read access |
application/json: ErrorBody
|
| 404 |
Agent Knowledge Base or entry is missing or hidden |
application/json: ErrorBody
|
| 409 |
Requested consistency conflicts with current state |
application/json: ErrorBody
|
| 413 |
Request exceeds an Agent Knowledge Base operational bound |
application/json: ErrorBody
|
| 422 |
Validation error |
application/json: ErrorBody
|
| 503 |
Agent Knowledge Base is temporarily unavailable |
application/json: ErrorBody
|
| default |
Error |
application/json: ErrorBody
|
[POST] /workspaces/{workspace_id}/knowledge-fs/knowledge-spaces/{knowledge_space_id}/fs:diff
Compare two Agent Knowledge Base entries (diff)
Performs a side-effect-free comparison, equivalent to difyctl fs diff. POST is used because this is a structured query and an optional semantic summary can consume model quota. Automatic retries are not safe when include_semantic_summary=true because each retry can consume quota again. Requires an OAuth account bearer with WORKSPACE_READ. Authentication and workspace scope are checked before request validation, and Agent Knowledge Base membership is revalidated for every call. A hidden or missing Agent Knowledge Base or entry uses the same 404 response. These operations are read-only and do not emit mutation audit events.
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| knowledge_space_id |
path |
Stable Dify Agent Knowledge Base resource ID; treat it as opaque. |
Yes |
string |
| workspace_id |
path |
Dify workspace ID that owns the Agent Knowledge Base. |
Yes |
string |
Request Body
Responses
| Code |
Description |
Schema |
| 200 |
Agent Knowledge Base entry comparison |
application/json: KnowledgeFSEntryComparisonResponse
|
| 400 |
Invalid Agent Knowledge Base request |
application/json: ErrorBody
|
| 401 |
Missing or invalid OAuth account bearer |
application/json: ErrorBody
|
| 403 |
Caller lacks workspace or Agent Knowledge Base read access |
application/json: ErrorBody
|
| 404 |
Agent Knowledge Base or entry is missing or hidden |
application/json: ErrorBody
|
| 409 |
Requested consistency conflicts with current state |
application/json: ErrorBody
|
| 413 |
Request exceeds an Agent Knowledge Base operational bound |
application/json: ErrorBody
|
| 422 |
Validation error |
application/json: ErrorBody
|
| 503 |
Agent Knowledge Base is temporarily unavailable |
application/json: ErrorBody
|
| default |
Error |
application/json: ErrorBody
|
[GET] /workspaces/{workspace_id}/knowledge-fs/knowledge-spaces/{knowledge_space_id}/fs:find
Find Agent Knowledge Base entries (find)
Searches entries beneath path by name, resource type, or an exact metadata key/value pair, equivalent to difyctl fs find. Results use the canonical, stable Agent Knowledge Base traversal order. The opaque next_page_token captures that order; reuse it with unchanged filters and consistency_class. total is intentionally omitted because tenant-aware visibility scans are bounded and an exact count can require an unbounded scan. Requires an OAuth account bearer with WORKSPACE_READ. Authentication and workspace scope are checked before request validation, and Agent Knowledge Base membership is revalidated for every call. A hidden or missing Agent Knowledge Base or entry uses the same 404 response. These operations are read-only and do not emit mutation audit events.
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| knowledge_space_id |
path |
Stable Dify Agent Knowledge Base resource ID; treat it as opaque. |
Yes |
string |
| workspace_id |
path |
Dify workspace ID that owns the Agent Knowledge Base. |
Yes |
string |
| consistency_class |
query |
Optional Agent Knowledge Base read-consistency policy. |
No |
string, Available values: "cache-consistent", "eventual-preview", "path-consistent", "snapshot-consistent" |
| metadata_key |
query |
Exact metadata key; metadata_value must be supplied with it. |
No |
string |
| metadata_value |
query |
Exact metadata value; metadata_key must be supplied with it. |
No |
string |
| name_contains |
query |
|
No |
string |
| page_size |
query |
Maximum number of results to return (1-100). |
No |
integer, Default: 20 |
| page_token |
query |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
string |
| path |
query |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
string |
| resource_type |
query |
|
No |
string, Available values: "artifact", "document", "evidence", "node", "source", "workspace" |
Responses
| Code |
Description |
Schema |
| 200 |
Agent Knowledge Base entry search results |
application/json: KnowledgeFSEntryListResponse
|
| 400 |
Invalid Agent Knowledge Base request |
application/json: ErrorBody
|
| 401 |
Missing or invalid OAuth account bearer |
application/json: ErrorBody
|
| 403 |
Caller lacks workspace or Agent Knowledge Base read access |
application/json: ErrorBody
|
| 404 |
Agent Knowledge Base or entry is missing or hidden |
application/json: ErrorBody
|
| 409 |
Requested consistency conflicts with current state |
application/json: ErrorBody
|
| 413 |
Request exceeds an Agent Knowledge Base operational bound |
application/json: ErrorBody
|
| 422 |
Validation error |
application/json: ErrorBody
|
| 503 |
Agent Knowledge Base is temporarily unavailable |
application/json: ErrorBody
|
| default |
Error |
application/json: ErrorBody
|
[GET] /workspaces/{workspace_id}/knowledge-fs/knowledge-spaces/{knowledge_space_id}/fs:grep
Search Agent Knowledge Base content (grep)
Searches readable content beneath path, equivalent to difyctl fs grep. Matches follow canonical entry traversal order and source-offset order within each entry. Results use the canonical, stable Agent Knowledge Base traversal order. The opaque next_page_token captures that order; reuse it with unchanged filters and consistency_class. total is intentionally omitted because tenant-aware visibility scans are bounded and an exact count can require an unbounded scan. Requires an OAuth account bearer with WORKSPACE_READ. Authentication and workspace scope are checked before request validation, and Agent Knowledge Base membership is revalidated for every call. A hidden or missing Agent Knowledge Base or entry uses the same 404 response. These operations are read-only and do not emit mutation audit events.
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| knowledge_space_id |
path |
Stable Dify Agent Knowledge Base resource ID; treat it as opaque. |
Yes |
string |
| workspace_id |
path |
Dify workspace ID that owns the Agent Knowledge Base. |
Yes |
string |
| consistency_class |
query |
Optional Agent Knowledge Base read-consistency policy. |
No |
string, Available values: "cache-consistent", "eventual-preview", "path-consistent", "snapshot-consistent" |
| page_size |
query |
Maximum number of results to return (1-100). |
No |
integer, Default: 20 |
| page_token |
query |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
string |
| path |
query |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
string |
| text |
query |
Text to find in readable entry content. |
Yes |
string |
| timeout_ms |
query |
Optional search time budget in milliseconds (1-10000). |
No |
integer |
Responses
| Code |
Description |
Schema |
| 200 |
Agent Knowledge Base content matches |
application/json: KnowledgeFSEntryContentSearchResponse
|
| 400 |
Invalid Agent Knowledge Base request |
application/json: ErrorBody
|
| 401 |
Missing or invalid OAuth account bearer |
application/json: ErrorBody
|
| 403 |
Caller lacks workspace or Agent Knowledge Base read access |
application/json: ErrorBody
|
| 404 |
Agent Knowledge Base or entry is missing or hidden |
application/json: ErrorBody
|
| 409 |
Requested consistency conflicts with current state |
application/json: ErrorBody
|
| 413 |
Request exceeds an Agent Knowledge Base operational bound |
application/json: ErrorBody
|
| 422 |
Validation error |
application/json: ErrorBody
|
| 503 |
Agent Knowledge Base is temporarily unavailable |
application/json: ErrorBody
|
| default |
Error |
application/json: ErrorBody
|
[GET] /workspaces/{workspace_id}/knowledge-fs/knowledge-spaces/{knowledge_space_id}/fs:ls
List an Agent Knowledge Base directory (ls)
Lists direct child entries under path, equivalent to difyctl fs ls. Results use the canonical, stable Agent Knowledge Base traversal order. The opaque next_page_token captures that order; reuse it with unchanged filters and consistency_class. total is intentionally omitted because tenant-aware visibility scans are bounded and an exact count can require an unbounded scan. Requires an OAuth account bearer with WORKSPACE_READ. Authentication and workspace scope are checked before request validation, and Agent Knowledge Base membership is revalidated for every call. A hidden or missing Agent Knowledge Base or entry uses the same 404 response. These operations are read-only and do not emit mutation audit events.
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| knowledge_space_id |
path |
Stable Dify Agent Knowledge Base resource ID; treat it as opaque. |
Yes |
string |
| workspace_id |
path |
Dify workspace ID that owns the Agent Knowledge Base. |
Yes |
string |
| consistency_class |
query |
Optional Agent Knowledge Base read-consistency policy. |
No |
string, Available values: "cache-consistent", "eventual-preview", "path-consistent", "snapshot-consistent" |
| page_size |
query |
Maximum number of results to return (1-100). |
No |
integer, Default: 20 |
| page_token |
query |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
string |
| path |
query |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
string |
Responses
| Code |
Description |
Schema |
| 200 |
Agent Knowledge Base entry page |
application/json: KnowledgeFSEntryListResponse
|
| 400 |
Invalid Agent Knowledge Base request |
application/json: ErrorBody
|
| 401 |
Missing or invalid OAuth account bearer |
application/json: ErrorBody
|
| 403 |
Caller lacks workspace or Agent Knowledge Base read access |
application/json: ErrorBody
|
| 404 |
Agent Knowledge Base or entry is missing or hidden |
application/json: ErrorBody
|
| 409 |
Requested consistency conflicts with current state |
application/json: ErrorBody
|
| 413 |
Request exceeds an Agent Knowledge Base operational bound |
application/json: ErrorBody
|
| 422 |
Validation error |
application/json: ErrorBody
|
| 503 |
Agent Knowledge Base is temporarily unavailable |
application/json: ErrorBody
|
| default |
Error |
application/json: ErrorBody
|
[GET] /workspaces/{workspace_id}/knowledge-fs/knowledge-spaces/{knowledge_space_id}/fs:stat
Inspect an Agent Knowledge Base entry (stat)
Returns stable metadata for one entry selected by canonical virtual path without reading content, equivalent to difyctl fs stat. Requires an OAuth account bearer with WORKSPACE_READ. Authentication and workspace scope are checked before request validation, and Agent Knowledge Base membership is revalidated for every call. A hidden or missing Agent Knowledge Base or entry uses the same 404 response. These operations are read-only and do not emit mutation audit events.
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| knowledge_space_id |
path |
Stable Dify Agent Knowledge Base resource ID; treat it as opaque. |
Yes |
string |
| workspace_id |
path |
Dify workspace ID that owns the Agent Knowledge Base. |
Yes |
string |
| consistency_class |
query |
Optional Agent Knowledge Base read-consistency policy. |
No |
string, Available values: "cache-consistent", "eventual-preview", "path-consistent", "snapshot-consistent" |
| path |
query |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
string |
Responses
| Code |
Description |
Schema |
| 200 |
Agent Knowledge Base entry metadata |
application/json: KnowledgeFSEntryMetadataResponse
|
| 400 |
Invalid Agent Knowledge Base request |
application/json: ErrorBody
|
| 401 |
Missing or invalid OAuth account bearer |
application/json: ErrorBody
|
| 403 |
Caller lacks workspace or Agent Knowledge Base read access |
application/json: ErrorBody
|
| 404 |
Agent Knowledge Base or entry is missing or hidden |
application/json: ErrorBody
|
| 409 |
Requested consistency conflicts with current state |
application/json: ErrorBody
|
| 413 |
Request exceeds an Agent Knowledge Base operational bound |
application/json: ErrorBody
|
| 422 |
Validation error |
application/json: ErrorBody
|
| 503 |
Agent Knowledge Base is temporarily unavailable |
application/json: ErrorBody
|
| default |
Error |
application/json: ErrorBody
|
[GET] /workspaces/{workspace_id}/knowledge-fs/knowledge-spaces/{knowledge_space_id}/fs:tree
Traverse an Agent Knowledge Base directory (tree)
Returns a depth- and page-size-bounded tree rooted at path, equivalent to difyctl fs tree. Results use the canonical, stable Agent Knowledge Base traversal order. The opaque next_page_token captures that order; reuse it with unchanged filters and consistency_class. total is intentionally omitted because tenant-aware visibility scans are bounded and an exact count can require an unbounded scan. Requires an OAuth account bearer with WORKSPACE_READ. Authentication and workspace scope are checked before request validation, and Agent Knowledge Base membership is revalidated for every call. A hidden or missing Agent Knowledge Base or entry uses the same 404 response. These operations are read-only and do not emit mutation audit events.
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| knowledge_space_id |
path |
Stable Dify Agent Knowledge Base resource ID; treat it as opaque. |
Yes |
string |
| workspace_id |
path |
Dify workspace ID that owns the Agent Knowledge Base. |
Yes |
string |
| consistency_class |
query |
Optional Agent Knowledge Base read-consistency policy. |
No |
string, Available values: "cache-consistent", "eventual-preview", "path-consistent", "snapshot-consistent" |
| depth |
query |
Maximum tree depth (1-8). |
No |
integer |
| page_size |
query |
Maximum number of results to return (1-100). |
No |
integer, Default: 20 |
| page_token |
query |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
string |
| path |
query |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
string |
Responses
| Code |
Description |
Schema |
| 200 |
Agent Knowledge Base entry tree |
application/json: KnowledgeFSEntryTreeResponse
|
| 400 |
Invalid Agent Knowledge Base request |
application/json: ErrorBody
|
| 401 |
Missing or invalid OAuth account bearer |
application/json: ErrorBody
|
| 403 |
Caller lacks workspace or Agent Knowledge Base read access |
application/json: ErrorBody
|
| 404 |
Agent Knowledge Base or entry is missing or hidden |
application/json: ErrorBody
|
| 409 |
Requested consistency conflicts with current state |
application/json: ErrorBody
|
| 413 |
Request exceeds an Agent Knowledge Base operational bound |
application/json: ErrorBody
|
| 422 |
Validation error |
application/json: ErrorBody
|
| 503 |
Agent Knowledge Base is temporarily unavailable |
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
[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
[POST] /workspaces/{workspace_id}/members
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| workspace_id |
path |
|
Yes |
string |
Request Body
Responses
[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
[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
Responses
[GET] /workspaces/{workspace_id}/model-providers/{provider}
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| provider |
path |
|
Yes |
string |
| workspace_id |
path |
|
Yes |
string |
Responses
[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
Responses
[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
Responses
[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
Responses
[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
Responses
[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
[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
[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
[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
[POST] /workspaces/{workspace_id}/plugins:install
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| workspace_id |
path |
|
Yes |
string |
Request Body
Responses
[GET] /workspaces/{workspace_id}/skills
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| keyword |
query |
Words to match in the name, display name or description |
No |
string |
| limit |
query |
|
No |
integer, Default: 20 |
| page |
query |
|
No |
integer, Default: 1 |
| tag |
query |
Only skills with every one of these tags; repeat to give several |
No |
[ string ] |
| workspace_id |
path |
|
Yes |
string |
Responses
[POST] /workspaces/{workspace_id}/skills/imports
Import an admitted editor's validated folder, returning a count of file entries only
Creates a draft (201) or overwrites it (200), relaying archive and service errors.
Import never publishes. draft_hash is the draft's updated_at in whole seconds,
so an edit made in the same second as the export is not detected.
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| workspace_id |
path |
|
Yes |
string |
Request Body
Responses
[GET] /workspaces/{workspace_id}/skills/{skill_id}
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| skill_id |
path |
|
Yes |
string |
| workspace_id |
path |
|
Yes |
string |
Responses
[GET] /workspaces/{workspace_id}/skills/{skill_id}/archive
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| version_id |
query |
Export this published version instead of the draft |
No |
string (uuid) |
| skill_id |
path |
|
Yes |
string |
| workspace_id |
path |
|
Yes |
string |
Responses
[GET] /workspaces/{workspace_id}/skills/{skill_id}/versions
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| limit |
query |
|
No |
integer, Default: 20 |
| page |
query |
|
No |
integer, Default: 1 |
| skill_id |
path |
|
Yes |
string |
| workspace_id |
path |
|
Yes |
string |
Responses
[POST] /workspaces/{workspace_id}/skills/{skill_id}:publish
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| skill_id |
path |
|
Yes |
string |
| workspace_id |
path |
|
Yes |
string |
Request Body
Responses
[GET] /workspaces/{workspace_id}/tool-providers/{provider}
Parameters
| Name |
Located in |
Description |
Required |
Schema |
| provider |
path |
|
Yes |
string |
| workspace_id |
path |
|
Yes |
string |
Responses
[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
Responses
[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
Responses
[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
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 |
BinaryFileResponse
| Name |
Type |
Description |
Required |
| BinaryFileResponse |
string |
|
|
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
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
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 |
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 |
KnowledgeFSConsistencyClass
| Name |
Type |
Description |
Required |
| KnowledgeFSConsistencyClass |
string |
|
|
KnowledgeFSEntryComparePayload
| Name |
Type |
Description |
Required |
| consistency_class |
KnowledgeFSConsistencyClass |
Optional Agent Knowledge Base read-consistency policy. |
No |
| include_semantic_summary |
boolean |
Whether to generate a bounded semantic change summary. This can consume model quota. |
No |
| mode |
string, Available values: "line", "word" |
Comparison granularity. |
No |
| new_path |
string |
Canonical path of the entry to compare. |
Yes |
| old_path |
string |
Canonical path of the baseline entry. |
Yes |
KnowledgeFSEntryComparisonOperationResponse
| Name |
Type |
Description |
Required |
| kind |
string, Available values: "delete", "equal", "insert" |
Enum: "delete", "equal", "insert" |
Yes |
| new_end |
integer |
|
No |
| new_start |
integer |
|
No |
| old_end |
integer |
|
No |
| old_start |
integer |
|
No |
| text |
string |
|
Yes |
KnowledgeFSEntryComparisonResponse
KnowledgeFSEntryComparisonStatsResponse
| Name |
Type |
Description |
Required |
| delete |
integer |
|
Yes |
| equal |
integer |
|
Yes |
| insert |
integer |
|
Yes |
KnowledgeFSEntryContentMatchResponse
| Name |
Type |
Description |
Required |
| end_offset |
integer |
|
Yes |
| kind |
string, Available values: "node", "segment" |
Enum: "node", "segment" |
Yes |
| metadata |
object |
|
Yes |
| node_id |
string |
|
No |
| path |
string |
|
Yes |
| segment_id |
string |
|
No |
| snippet |
string |
|
Yes |
| start_offset |
integer |
|
Yes |
KnowledgeFSEntryContentSearchQuery
| Name |
Type |
Description |
Required |
| consistency_class |
KnowledgeFSConsistencyClass |
Optional Agent Knowledge Base read-consistency policy. |
No |
| page_size |
integer, Default: 20 |
Maximum number of results to return (1-100). |
No |
| page_token |
string |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
| path |
string |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
| text |
string |
Text to find in readable entry content. |
Yes |
| timeout_ms |
integer |
Optional search time budget in milliseconds (1-10000). |
No |
KnowledgeFSEntryContentSearchResponse
| Name |
Type |
Description |
Required |
| data |
[ KnowledgeFSEntryContentMatchResponse ] |
|
Yes |
| has_more |
boolean |
|
Yes |
| next_page_token |
string |
Opaque continuation token for the next page; null when no continuation is available. |
No |
| path |
string |
|
Yes |
| truncated |
boolean |
Whether operational bounds made the result incomplete, even when no continuation is available. |
Yes |
KnowledgeFSEntryInspectQuery
| Name |
Type |
Description |
Required |
| consistency_class |
KnowledgeFSConsistencyClass |
Optional Agent Knowledge Base read-consistency policy. |
No |
| path |
string |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
KnowledgeFSEntryListQuery
List direct children in stable Agent Knowledge Base traversal order.
| Name |
Type |
Description |
Required |
| consistency_class |
KnowledgeFSConsistencyClass |
Optional Agent Knowledge Base read-consistency policy. |
No |
| page_size |
integer, Default: 20 |
Maximum number of results to return (1-100). |
No |
| page_token |
string |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
| path |
string |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
KnowledgeFSEntryListResponse
| Name |
Type |
Description |
Required |
| consistency_class |
string |
Open response value. Clients must tolerate unknown future values and fall back to generic display behavior. |
No |
| data |
[ KnowledgeFSEntryResponse ] |
|
Yes |
| has_more |
boolean |
|
Yes |
| next_page_token |
string |
Opaque continuation token for the next page; null when no continuation is available. |
No |
| path |
string |
|
Yes |
| preview |
boolean |
|
No |
| truncated |
boolean |
Whether operational bounds made the result incomplete, even when no continuation is available. |
Yes |
KnowledgeFSEntryMetadataResponse
| Name |
Type |
Description |
Required |
| consistency_class |
string |
Open response value. Clients must tolerate unknown future values and fall back to generic display behavior. |
No |
| content_type |
string |
|
No |
| metadata |
object |
|
Yes |
| parser_status |
string |
Open response value. Clients must tolerate unknown future values and fall back to generic display behavior. |
No |
| path |
string |
|
Yes |
| preview |
boolean |
|
No |
| resource_type |
string |
Open response value. Clients must tolerate unknown future values and fall back to generic display behavior. |
Yes |
| sha256 |
string |
|
No |
| size_bytes |
integer |
|
No |
| target_id |
string |
|
Yes |
| version |
integer |
|
No |
KnowledgeFSEntryReadContentQuery
| Name |
Type |
Description |
Required |
| consistency_class |
KnowledgeFSConsistencyClass |
Optional Agent Knowledge Base read-consistency policy. |
No |
| page_size |
integer, Default: 100 |
Maximum source segments to read (1-100); ignored when the selected entry has one bounded content value. |
No |
| page_token |
string |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
| path |
string |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
KnowledgeFSEntryReadContentResponse
| Name |
Type |
Description |
Required |
| content_type |
string |
|
Yes |
| has_more |
boolean |
|
Yes |
| next_page_token |
string |
Opaque continuation token for the next page; null when no continuation is available. |
No |
| path |
string |
|
Yes |
| text |
string |
|
Yes |
| truncated |
boolean |
Whether operational bounds made the content incomplete, even when no continuation is available. |
Yes |
KnowledgeFSEntryResponse
| Name |
Type |
Description |
Required |
| kind |
string, Available values: "directory", "resource" |
Enum: "directory", "resource" |
Yes |
| metadata |
object |
|
Yes |
| name |
string |
|
Yes |
| path |
string |
|
Yes |
| resource_type |
string |
Open response value. Clients must tolerate unknown future values and fall back to generic display behavior. |
No |
| target_id |
string |
|
No |
| version |
integer |
|
No |
KnowledgeFSEntrySearchQuery
| Name |
Type |
Description |
Required |
| consistency_class |
KnowledgeFSConsistencyClass |
Optional Agent Knowledge Base read-consistency policy. |
No |
| metadata_key |
string |
Exact metadata key; metadata_value must be supplied with it. |
No |
| metadata_value |
string |
Exact metadata value; metadata_key must be supplied with it. |
No |
| name_contains |
string |
|
No |
| page_size |
integer, Default: 20 |
Maximum number of results to return (1-100). |
No |
| page_token |
string |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
| path |
string |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
| resource_type |
KnowledgeFSResourceType |
|
No |
KnowledgeFSEntrySemanticChangeResponse
| Name |
Type |
Description |
Required |
| category |
string |
|
Yes |
| evidence |
[ string ] |
|
Yes |
| summary |
string |
|
Yes |
KnowledgeFSEntrySemanticSummaryResponse
KnowledgeFSEntryTreeNodeResponse
| Name |
Type |
Description |
Required |
| children |
[ KnowledgeFSEntryTreeNodeResponse ] |
|
No |
| kind |
string, Available values: "directory", "resource" |
Enum: "directory", "resource" |
Yes |
| metadata |
object |
|
Yes |
| name |
string |
|
Yes |
| path |
string |
|
Yes |
| resource_type |
string |
Open response value. Clients must tolerate unknown future values and fall back to generic display behavior. |
No |
| target_id |
string |
|
No |
| version |
integer |
|
No |
KnowledgeFSEntryTreeQuery
| Name |
Type |
Description |
Required |
| consistency_class |
KnowledgeFSConsistencyClass |
Optional Agent Knowledge Base read-consistency policy. |
No |
| depth |
integer |
Maximum tree depth (1-8). |
No |
| page_size |
integer, Default: 20 |
Maximum number of results to return (1-100). |
No |
| page_token |
string |
Opaque continuation token returned as next_page_token. Repeat the same query without inspecting the token. |
No |
| path |
string |
Canonical Agent Knowledge Base virtual path under /sources, /knowledge, /evidence, or /workspaces. |
Yes |
KnowledgeFSEntryTreeResponse
| Name |
Type |
Description |
Required |
| consistency_class |
string |
Open response value. Clients must tolerate unknown future values and fall back to generic display behavior. |
No |
| has_more |
boolean |
|
Yes |
| next_page_token |
string |
Opaque continuation token for the next page; null when no continuation is available. |
No |
| path |
string |
|
Yes |
| preview |
boolean |
|
No |
| root |
KnowledgeFSEntryTreeNodeResponse |
|
Yes |
| truncated |
boolean |
Whether operational bounds made the result incomplete, even when no continuation is available. |
Yes |
KnowledgeFSResourceType
| Name |
Type |
Description |
Required |
| KnowledgeFSResourceType |
string |
|
|
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 |
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
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 |
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
PluginDependencyGithub
| Name |
Type |
Description |
Required |
| github_plugin_unique_identifier |
string |
|
Yes |
| package |
string |
|
Yes |
| repo |
string |
|
Yes |
| version |
string |
|
Yes |
PluginDependencyMarketplace
| Name |
Type |
Description |
Required |
| marketplace_plugin_unique_identifier |
string |
|
Yes |
| version |
string |
|
No |
PluginDependencyPackage
| Name |
Type |
Description |
Required |
| plugin_unique_identifier |
string |
|
Yes |
| version |
string |
|
No |
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
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.
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 |
SkillDescribeResponse
| Name |
Type |
Description |
Required |
| description |
string |
|
Yes |
| display_name |
string |
|
Yes |
| draft_hash |
string |
Opaque; names the draft this was read from |
Yes |
| hints |
[ Hint ] |
Next steps the caller can take |
No |
| icon |
string |
|
Yes |
| id |
string |
|
Yes |
| latest_published_version_id |
string |
Null while the skill has never been published |
Yes |
| latest_version |
SkillVersionRow |
Null while the skill has never been published |
Yes |
| name |
string |
|
Yes |
| tags |
[ string ] |
|
Yes |
| updated_at |
integer |
|
Yes |
SkillExportQuery
| Name |
Type |
Description |
Required |
| version_id |
string |
Export this published version instead of the draft |
No |
SkillImportPayload
| Name |
Type |
Description |
Required |
| draft_hash |
string |
From describe.skill; rejects the overwrite if the draft changed since |
No |
| files |
object |
The skill folder, one part per file; SKILL.md at its root |
Yes |
| skill_id |
string |
Overwrite this skill's draft; omit to create a new skill |
No |
SkillImportResponse
| Name |
Type |
Description |
Required |
| draft_hash |
string |
Opaque; names the draft this wrote |
Yes |
| file_count |
integer |
|
Yes |
| hints |
[ Hint ] |
Next steps the caller can take |
No |
| id |
string |
|
Yes |
| name |
string |
|
Yes |
SkillListQuery
| Name |
Type |
Description |
Required |
| keyword |
string |
Words to match in the name, display name or description |
No |
| limit |
integer, Default: 20 |
|
No |
| page |
integer, Default: 1 |
|
No |
| tag |
[ string ] |
Only skills with every one of these tags; repeat to give several |
No |
SkillListResponse
| Name |
Type |
Description |
Required |
| data |
[ SkillRow ] |
|
Yes |
| has_more |
boolean |
|
Yes |
| hints |
[ Hint ] |
Next steps the caller can take |
No |
| limit |
integer |
|
Yes |
| page |
integer |
|
Yes |
| total |
integer |
|
Yes |
SkillPublishPayload
| Name |
Type |
Description |
Required |
| publish_note |
string |
Note for the new version |
No |
| version_name |
string |
Name for the new version |
No |
SkillPublishResponse
| Name |
Type |
Description |
Required |
| created_at |
integer |
|
Yes |
| created_by |
string |
Account id that published it |
Yes |
| hints |
[ Hint ] |
Next steps the caller can take |
No |
| id |
string |
|
Yes |
| publish_note |
string |
|
Yes |
| version_name |
string |
|
Yes |
| version_number |
integer |
|
Yes |
SkillRow
| Name |
Type |
Description |
Required |
| description |
string |
|
Yes |
| display_name |
string |
|
Yes |
| icon |
string |
|
Yes |
| id |
string |
|
Yes |
| latest_published_version_id |
string |
Null while the skill has never been published |
Yes |
| name |
string |
|
Yes |
| tags |
[ string ] |
|
Yes |
| updated_at |
integer |
|
Yes |
SkillVersionListQuery
| Name |
Type |
Description |
Required |
| limit |
integer, Default: 20 |
|
No |
| page |
integer, Default: 1 |
|
No |
SkillVersionListResponse
| Name |
Type |
Description |
Required |
| data |
[ SkillVersionRow ] |
|
Yes |
| has_more |
boolean |
|
Yes |
| hints |
[ Hint ] |
Next steps the caller can take |
No |
| limit |
integer |
|
Yes |
| page |
integer |
|
Yes |
| total |
integer |
|
Yes |
SkillVersionRow
| Name |
Type |
Description |
Required |
| created_at |
integer |
|
Yes |
| created_by |
string |
Account id that published it |
Yes |
| id |
string |
|
Yes |
| publish_note |
string |
|
Yes |
| version_name |
string |
|
Yes |
| version_number |
integer |
|
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//runs/<run_id>:stop and POST /apps//tasks/<task_id>:stop.
The handlers always return {"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
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
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 |