Files
dify-docs/ja/api-reference/openapi_workflow.json
T
Riskey 32e1b169da feat: consolidate and restructure the API reference (Phase 1) (#846)
* docs: correct HITL API integration flow and sync translations

- Fix the claim that the resume endpoint differs per app type (same
  endpoint; only the entry endpoint differs)
- Tie workflow_run_id guidance to the human_input_required event
  (chatflow message chunks don't carry it)
- Require the same user when resuming the event stream (mismatch
  returns 404); add include_state_snapshot and continue_on_pause
  guidance
- Note at the capture step that a null form_token means Email delivery
- Soften the upload-time validation claim to file size limits
- Split long paragraphs; align zh endpoint name with the reference page

* fix: correct API references against verified backend behavior

Audit of the Service API specs against dify hotfix/1.15.0-fix.1, with
every change code-verified and the serious items adversarially
confirmed. Applies to en/zh/ja.

- Add curl samples for GET endpoints with required query params
  (Mintlify omits query params from generated snippets)
- Document 401 once in every spec's auth scheme description
- Correct wrong facts: workflow run detail returns inputs as a JSON
  string; DELETE /conversations requires a JSON body; audio-to-text
  accepts audio/{mp3,m4a,wav,amr,mpga} by MIME type; workflow log
  created_by_account filters by email; triggered_from values are
  app-run/webhook/schedule/plugin; stop endpoints' user semantics
  differ per app type
- Remove unreachable docs: phantom text_replace SSE event, annotation
  403, file preview endpoint in the workflow spec, invented
  score_threshold bounds
- Make upload user optional (DEFAULT-USER fallback), fix upload
  response example, add missing invalid_param error
- Declare text_to_speech.autoPlay in parameters responses (prose
  values, no response-field enums)

* fix: complete API reference audit for knowledge and completion specs

* feat: add API spec consolidation pipeline

Phase-1 of the API docs consolidation: tooling that merges the five per-app-type Service API specs into one openapi_service.json per language, with every divergence resolved explicitly in resolutions.json and rendering-preserving namespacing for mode-scoped schema families. Includes the audit lint and parity checks (lint taught the new language-prefixed href scheme), hand-merged mode-aware SSE documentation for POST /chat-messages in en/zh/ja, and the New Agent (Beta) virtual nav group with code-verified mode notes.

* feat: consolidate API reference into one spec per language

Emit {en,zh,ja}/api-reference/openapi_service.json (82 ops, 130 components) from the audit-fixed per-app-type specs; wire docs.json to them with explicit per-app-type endpoint lists, x-mint.href URLs (/{lang}/api-reference/{tag}/{summary} with shared English slugs for in-place language switching), 265 redirects covering the legacy en and CJK URLs, per-app-type overview pages including New Agent (Beta), and rewritten legacy API links in 21 MDX bodies. The old five specs per language stay as pipeline input; they are no longer rendered.

* fix: remove dead conversation_completed error from chat specs

ConversationCompletedError is never raised anywhere at the verified 1.15.0 ref (7a4252b3de): controllers catch it, but no service code raises it, so the documented 400 conversation_completed can never fire. Remove the bullet and example from the chat and chatflow /chat-messages docs in en/zh/ja. Found and adversarially confirmed during the New Agent (PR #836) verification; filed on the upstream bug list.

* feat: add membership matrix and restructure nav config

* feat: rename resource tags and update all references

* feat: stamp per-operation availability lines

* feat: wire three-group API navigation

* feat: add app-type page coverage lint

* docs: rewrite chatflow overview as app-type API guide

* docs: polish chatflow overview zh and ja wording

* docs: rewrite workflow overview as app-type API guide

* docs: align workflow overview details across languages

* docs: expand new agent overview into app-type API guide

* docs: use task-oriented heading on new agent overview

* docs: rewrite chatbot and agent overview as app-type API guide

* docs: rewrite text generator overview as app-type API guide

* docs: match end user link text to merged spec summary

* docs: rewrite knowledge overview as app-type API guide

* docs: move knowledge api guide into api reference

* docs: localize ui labels on knowledge overview

* docs: refresh pipeline readme for restructure modes

* docs: name app-type pages in the guides sidebar

* feat: rename zh completion messages tag to match resource framing

* docs: prototype endpoints-first layout on chatflow overview

* docs: correct detail accuracy on chatflow overview

* docs: move human input flow guide into api reference

Move the shared HITL API integration walkthrough from its six per-product
copies into {en,zh,ja}/api-reference/guides/human-input-flow as the first
task guide in the API docs. Guides gains an App Types subgroup (expanded
by default) with the flow guide after it; six redirects cover the old
paths; the Human Input node docs and the chatflow overview link to the
new home.

* fix: update spec links to the moved human input guide

* fix: let spec lint accept mdx guide pages under api-reference

* docs: align chatflow zh and ja overviews to endpoints-first layout

* docs: polish chatflow zh and ja mode terms and hitl wording

* docs: align workflow overviews to endpoints-first layout

* docs: document form expiry path in human input flow guide

* docs: align new agent overviews to endpoints-first layout

* docs: align chatbot and agent overviews to endpoints-first layout

* docs: align text generator overviews to endpoints-first layout

* docs: align knowledge overviews to endpoints-first layout

* docs: correct built-in metadata examples and agent heading

* docs: flatten app-type pages directly under guides

* docs: make guide pages self-contained and trim reference detail

* docs: add get started guide and retire developing-with-apis

* docs: update new agent api behavior for latest main

New Agent behavior re-verified against dify origin/main (f3ba2846):
agent_thought events now stream through the Service API carrying the
model's reasoning steps and tool calls; a new agent_not_published 400
fires on Send Chat Message and Get App Parameters; the files claim is
softened to contents-not-processed (raw references now reach the prompt;
runtime confirmation pending). Streaming-only, message_end metadata, and
the endpoint surface are unchanged.

* docs: audit fixes for get started and human input flow guides

* docs: fix em dash spacing and ja sentence length in get started

* docs: move message_end note to the send endpoint line

* docs: update writing guides and API skill for app-type naming

- Glossary and zh/ja translation guides: Workflow and Chatflow app types stay English (Workflow 应用 / Chatflow アプリ); lowercase workflow localizes to 工作流 / ワークフロー.
- formatting-guide: API reference links use the language prefix with English slugs.
- dify-docs-api-reference skill: Spec Structure documents source specs merged into openapi_service.json by the pipeline.

* feat: add operation sidebar titles and simplify API redirects

- merge_specs stamps x-mint.metadata.sidebarTitle per operation so translated summaries show in the sidebar.
- Redirects reduced to a catch-all to the English API home plus three knowledge-base exceptions.
- memberships, strings, and SSE overrides carry app-type labels (Workflow/Chatflow English, New Agent, API Overviews group).

* docs: correct app-type naming and translations across API specs

- English mode enum labels Chatflow and Workflow apps.
- zh/ja app references use Workflow/Chatflow; New Agent is 新 Agent / 新しい Agent.
- ja knowledge tag データセット becomes ナレッジベース; zh 模型提供商 becomes 模型供应商.
- Regenerate merged openapi_service.json with per-operation sidebar titles.

* docs: add streaming, errors, and end-user identity API guides

- Consume Streaming Responses: response modes, SSE parsing, event dispatch, and reconnect.
- Handle Errors and Rate Limits: the error envelope, status classes, and retry guidance.
- End User Identity: what the user field scopes and why it stays consistent.
- English source with zh and ja translations.

* docs: reconcile API guides and apply app-type naming

- Reader-test fixes and content audit on get-started and the app-type overview pages.
- zh/ja reconciled to the English source.
- Workflow/Chatflow and New Agent naming applied in prose.

* feat: wire API nav and redirects for consolidated guides

- Rename the guides group to API Overviews and register the new guide pages.
- Redirects: catch-all to the English API home plus three product-embedded knowledge-base links to the Knowledge guide.

* fix: normalize zh model-provider term to 模型供应商

Aligns the POSITION_PROVIDER_* descriptions with the canonical glossary term.

* docs: use Info callouts for guide forward-link notes

Wrap the authentication, base URL, and `user` field forward-reference in each app-type guide (agent, chat, chatflow, completion, workflow; en/zh/ja) in an `<Info>` callout.

* refactor: remove one-time analyze mode and verification compose

- Drop the `analyze` mode (design-time spec-overlap analysis) and its helpers; the merge is stable and nothing invokes it.
- Delete `compose.swagger.yml`, the throwaway local code-vs-spec verification stack (flagged in review for inline credentials).
- README: drop the analyze entry and correct the redirect description.

* fix: correct Chatflow naming and reasoning wording in SSE overrides

- Use "Chatflow" (English) for the app type in the `/chat-messages` SSE tables instead of 对话流/チャットフロー, and fix the legacy zh chatflow "对话流工作流" description. Standalone table cells were missed by the earlier app-type rename.
- Describe `reasoning_chunk` as "reasoning content" in en/ja (matching the `reasoning` field and the zh wording) instead of "chain-of-thought".

* docs: refine API guide wording and simplify the human-input example

* docs: standardize Workflow and Chatflow app-type capitalization

Capitalize Chatflow and Workflow when they name an app type; keep "workflow" lowercase for the general engine, graph, or run sense.

* fix: use 供应商 for model provider in the zh Knowledge spec

* fix: rename the Knowledge API nav group to "Knowledge APIs"

* fix: un-deprecate Update Document by Text in the Knowledge spec

* translate: un-deprecate Update Document by Text in zh/ja specs

Mirror the en fix (6802d5eb) into the zh and ja Knowledge specs, source and merged: drop the deprecated flag and the leading Deprecated notice from the update-by-text operation. It is the canonical text-update route; only Update Document by File stays deprecated.
2026-07-09 16:40:54 +08:00

4422 lines
191 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"openapi": "3.0.1",
"info": {
"title": "Workflow アプリAPI",
"description": "Workflow アプリケーションはセッションなしの動作をサポートし、翻訳、記事作成、要約 AI などに最適です。",
"version": "1.0.0"
},
"servers": [
{
"url": "https://{api_base_url}",
"description": "Workflow App API のベース URL です。セルフホスト環境では、独自の API ベース URL に置き換えてください。",
"variables": {
"api_base_url": {
"default": "api.dify.ai/v1",
"description": "API ベース URL のホストとパス(`https://` を除く)。"
}
}
}
],
"security": [
{
"ApiKeyAuth": []
}
],
"paths": {
"/workflows/run": {
"post": {
"summary": "ワークフローを実行",
"description": "ワークフローを実行します。公開済みのワークフローがないと実行できません。",
"operationId": "executeWorkflowJp",
"tags": [
"ワークフロー"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowExecutionRequest"
},
"examples": {
"streaming_example": {
"summary": "リクエスト例 - ストリーミングモード",
"value": {
"inputs": {
"query": "Summarize this text: The quick brown fox jumps over the lazy dog."
},
"response_mode": "streaming",
"user": "user_workflow_123"
}
},
"blocking_example": {
"summary": "リクエスト例 - ブロッキングモード",
"value": {
"inputs": {
"query": "Translate this to French: Hello world"
},
"response_mode": "blocking",
"user": "user_workflow_456"
}
},
"with_file_array_variable": {
"summary": "Request Example - File array input",
"value": {
"inputs": {
"my_documents": [
{
"type": "document",
"transfer_method": "local_file",
"upload_file_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
},
{
"type": "image",
"transfer_method": "remote_url",
"url": "https://example.com/image.jpg"
}
]
},
"response_mode": "blocking",
"user": "user_workflow_789"
}
}
}
}
}
},
"responses": {
"200": {
"description": "リクエスト成功。コンテンツタイプと構造はリクエストの `response_mode` パラメータに依存します。\n\n- `response_mode` が `blocking` の場合、 `application/json` で `WorkflowBlockingResponse` オブジェクトを返します。\n- `response_mode` が `streaming` の場合、 `text/event-stream` で `ChunkWorkflowEvent` オブジェクトのストリームを返します。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowBlockingResponse"
},
"examples": {
"blockingResponse": {
"summary": "レスポンス例 - ブロッキングモード",
"value": {
"task_id": "c3800678-a077-43df-a102-53f23ed20b88",
"workflow_run_id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
"data": {
"id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
"workflow_id": "7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345",
"status": "succeeded",
"outputs": {
"result": "Bonjour le monde"
},
"error": null,
"elapsed_time": 1.23,
"total_tokens": 150,
"total_steps": 3,
"created_at": 1705407629,
"finished_at": 1705407630
}
}
}
}
},
"text/event-stream": {
"schema": {
"type": "string",
"description": "Server-Sent Events (SSE) のストリーム。\n\n**パース**:各行は `data: ` で始まり JSON オブジェクトが続き、`\\n\\n` で終了します。JSON をパースする前に `data: ` プレフィックスを除去し、`event` フィールドを読み取ってイベントタイプを判定してください。`ping` イベント(接続維持のため 10 秒ごとに送信)は無視してください。\n\n**ストリームライフサイクル**`workflow_finished`、`workflow_paused`、または `error` イベントを受信するとストリームが閉じます。エラーはストリーム内の `error` イベントとして HTTP ステータス `200` で配信されます。ステータスコードではなくイベントペイロードを確認して詳細を取得してください。\n\n**推論イベント**\n- `reasoning_chunk``reasoning_format` が `separated` の LLM ノードが発行する思考過程のデルタです。連続する `reasoning_chunk` イベントを連結すると、完全な推論を復元できます。`is_final: true` のイベントはノードの思考完了を示し、空の `reasoning` を伴う場合があります。ペイロードは `data` の下にあり、チャットアプリとは異なり `message_id` や `conversation_id` は含まれません。並行する `text_chunk` ストリームには `<think>` タグが含まれません。\n\n**人間の入力イベント**\n- `human_input_required`:ワークフローが人間の入力ノードに到達した際に `workflow_paused` と同時に発行されます。ペイロードの `form_token` を使用して、[人間の入力 API](/api-reference/人間の入力/人間の入力フォームを取得) でフォーム処理を進めます。\n- `human_input_form_filled`:受信者がフォームを送信し、ワークフロー実行が再開されます。\n- `human_input_form_timeout`:応答がないままフォームが期限切れ。タイムアウトのフォールバックエッジが定義されている場合、ワークフローはそのエッジを通って実行されます。"
},
"examples": {
"streamingResponse": {
"summary": "レスポンス例 - ストリーミングモード",
"value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"query\": \"Translate this\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}} data: {\"event\": \"node_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"node_exec_1\", \"node_id\": \"node_1\", \"node_type\": \"llm\", \"title\": \"LLM Node\", \"index\": 1, \"created_at\": 1705407629}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"Let me translate that.\", \"node_id\": \"node_1\", \"is_final\": false}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"\", \"node_id\": \"node_1\", \"is_final\": true}} data: {\"event\": \"text_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"text\": \"Bonjour\", \"from_variable_selector\": [\"node_1\", \"text\"]}} data: {\"event\": \"workflow_finished\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"status\": \"succeeded\", \"outputs\": {\"result\": \"Bonjour le monde\"}, \"elapsed_time\": 1.23, \"total_tokens\": 150, \"total_steps\": 3, \"created_at\": 1705407629, \"finished_at\": 1705407630}}"
},
"humanInputPause": {
"summary": "レスポンス例 - 人間の入力での一時停止",
"value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"draft\": \"Hello\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}} data: {\"event\": \"human_input_required\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_token\": \"tok_abc123\", \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"form_content\": \"Please review the draft.\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"Approve\", \"button_style\": \"primary\"}], \"display_in_ui\": false, \"resolved_default_values\": {\"comment\": \"\"}, \"expiration_time\": 1705494029}} data: {\"event\": \"workflow_paused\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"status\": \"paused\", \"created_at\": 1705407629, \"elapsed_time\": 0.5}}"
}
}
}
}
},
"400": {
"description": "- `not_workflow_app` : App mode does not match the API route.\n- `provider_not_initialize` : 有効なモデルプロバイダーの認証情報が見つかりません。\n- `provider_quota_exceeded` : モデルプロバイダーのクォータが使い切られました。\n- `model_currently_not_support` : 現在のモデルは利用できません。\n- `completion_request_error` : Workflow execution request failed.\n- `invalid_param` : Invalid parameter value.",
"content": {
"application/json": {
"examples": {
"not_workflow_app": {
"summary": "not_workflow_app",
"value": {
"status": 400,
"code": "not_workflow_app",
"message": "Please check if your app mode matches the right API route."
}
},
"provider_not_initialize": {
"summary": "provider_not_initialize",
"value": {
"status": 400,
"code": "provider_not_initialize",
"message": "No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials."
}
},
"provider_quota_exceeded": {
"summary": "provider_quota_exceeded",
"value": {
"status": 400,
"code": "provider_quota_exceeded",
"message": "Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials."
}
},
"model_currently_not_support": {
"summary": "model_currently_not_support",
"value": {
"status": 400,
"code": "model_currently_not_support",
"message": "Dify Hosted OpenAI trial currently not support the GPT-4 model."
}
},
"completion_request_error": {
"summary": "completion_request_error",
"value": {
"status": 400,
"code": "completion_request_error",
"message": "Completion request failed."
}
},
"invalid_param": {
"summary": "invalid_param",
"value": {
"status": 400,
"code": "invalid_param",
"message": "Arg user must be provided."
}
}
}
}
}
},
"429": {
"description": "- `too_many_requests` : このアプリケーションへの同時リクエストが多すぎます。\n- `rate_limit_error` : アップストリームのモデルプロバイダーのレート制限を超えました。",
"content": {
"application/json": {
"examples": {
"too_many_requests": {
"summary": "too_many_requests",
"value": {
"status": 429,
"code": "too_many_requests",
"message": "Too many requests. Please try again later."
}
},
"rate_limit_error": {
"summary": "rate_limit_error",
"value": {
"status": 429,
"code": "rate_limit_error",
"message": "Rate Limit Error"
}
}
}
}
}
},
"500": {
"description": "`internal_server_error` : 内部サーバーエラー。",
"content": {
"application/json": {
"examples": {
"internal_server_error": {
"summary": "internal_server_error",
"value": {
"status": 500,
"code": "internal_server_error",
"message": "Internal Server Error."
}
}
}
}
}
}
}
}
},
"/workflows/{workflow_id}/run": {
"post": {
"summary": "ID でワークフローを実行",
"description": "ID で指定された特定のワークフローバージョンを実行します。ワークフローの特定の公開バージョンを実行する場合に便利です。",
"operationId": "runWorkflowByIdJa",
"tags": [
"ワークフロー"
],
"parameters": [
{
"name": "workflow_id",
"in": "path",
"required": true,
"description": "実行する特定バージョンのワークフロー ID です。この値は [ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) のレスポンスおよび [ワークフロー実行詳細を取得](/api-reference/ワークフロー/ワークフロー実行詳細を取得) の `workflow_id` フィールドで返されます。",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowExecutionRequest"
},
"examples": {
"example": {
"summary": "リクエスト例",
"value": {
"inputs": {
"query": "Summarize this article"
},
"response_mode": "blocking",
"user": "user_workflow_123"
}
}
}
}
}
},
"responses": {
"200": {
"description": "リクエスト成功。コンテンツタイプと構造はリクエストの `response_mode` パラメータに依存します。\n\n- `response_mode` が `blocking` の場合、 `application/json` で `WorkflowBlockingResponse` オブジェクトを返します。\n- `response_mode` が `streaming` の場合、 `text/event-stream` で `ChunkWorkflowEvent` オブジェクトのストリームを返します。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowBlockingResponse"
},
"examples": {
"blockingResponse": {
"summary": "レスポンス例 - ブロッキングモード",
"value": {
"task_id": "c3800678-a077-43df-a102-53f23ed20b88",
"workflow_run_id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
"data": {
"id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
"workflow_id": "7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345",
"status": "succeeded",
"outputs": {
"result": "Article summary here"
},
"error": null,
"elapsed_time": 2.45,
"total_tokens": 280,
"total_steps": 4,
"created_at": 1705407629,
"finished_at": 1705407631
}
}
}
}
},
"text/event-stream": {
"schema": {
"type": "string",
"description": "Server-Sent Events (SSE) のストリーム。\n\n**パース**:各行は `data: ` で始まり JSON オブジェクトが続き、`\\n\\n` で終了します。JSON をパースする前に `data: ` プレフィックスを除去し、`event` フィールドを読み取ってイベントタイプを判定してください。`ping` イベント(接続維持のため 10 秒ごとに送信)は無視してください。\n\n**ストリームライフサイクル**`workflow_finished`、`workflow_paused`、または `error` イベントを受信するとストリームが閉じます。エラーはストリーム内の `error` イベントとして HTTP ステータス `200` で配信されます。ステータスコードではなくイベントペイロードを確認して詳細を取得してください。\n\n**推論イベント**\n- `reasoning_chunk``reasoning_format` が `separated` の LLM ノードが発行する思考過程のデルタです。連続する `reasoning_chunk` イベントを連結すると、完全な推論を復元できます。`is_final: true` のイベントはノードの思考完了を示し、空の `reasoning` を伴う場合があります。ペイロードは `data` の下にあり、チャットアプリとは異なり `message_id` や `conversation_id` は含まれません。並行する `text_chunk` ストリームには `<think>` タグが含まれません。\n\n**人間の入力イベント**\n- `human_input_required`:ワークフローが人間の入力ノードに到達した際に `workflow_paused` と同時に発行されます。ペイロードの `form_token` を使用して、[人間の入力 API](/api-reference/人間の入力/人間の入力フォームを取得) でフォーム処理を進めます。\n- `human_input_form_filled`:受信者がフォームを送信し、ワークフロー実行が再開されます。\n- `human_input_form_timeout`:応答がないままフォームが期限切れ。タイムアウトのフォールバックエッジが定義されている場合、ワークフローはそのエッジを通って実行されます。"
},
"examples": {
"streamingResponse": {
"summary": "レスポンス例 - ストリーミングモード",
"value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"query\": \"Translate this\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}} data: {\"event\": \"node_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"node_exec_1\", \"node_id\": \"node_1\", \"node_type\": \"llm\", \"title\": \"LLM Node\", \"index\": 1, \"created_at\": 1705407629}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"Let me translate that.\", \"node_id\": \"node_1\", \"is_final\": false}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"\", \"node_id\": \"node_1\", \"is_final\": true}} data: {\"event\": \"text_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"text\": \"Bonjour\", \"from_variable_selector\": [\"node_1\", \"text\"]}} data: {\"event\": \"workflow_finished\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"status\": \"succeeded\", \"outputs\": {\"result\": \"Bonjour le monde\"}, \"elapsed_time\": 1.23, \"total_tokens\": 150, \"total_steps\": 3, \"created_at\": 1705407629, \"finished_at\": 1705407630}}"
},
"humanInputPause": {
"summary": "レスポンス例 - 人間の入力での一時停止",
"value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"draft\": \"Hello\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}} data: {\"event\": \"human_input_required\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_token\": \"tok_abc123\", \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"form_content\": \"Please review the draft.\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"Approve\", \"button_style\": \"primary\"}], \"display_in_ui\": false, \"resolved_default_values\": {\"comment\": \"\"}, \"expiration_time\": 1705494029}} data: {\"event\": \"workflow_paused\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"status\": \"paused\", \"created_at\": 1705407629, \"elapsed_time\": 0.5}}"
}
}
}
}
},
"400": {
"description": "- `not_workflow_app` : App mode does not match the API route.\n- `bad_request` : Workflow is a draft or has an invalid ID format.\n- `provider_not_initialize` : 有効なモデルプロバイダーの認証情報が見つかりません。\n- `provider_quota_exceeded` : モデルプロバイダーのクォータが使い切られました。\n- `model_currently_not_support` : 現在のモデルは利用できません。\n- `completion_request_error` : Workflow execution request failed.\n- `invalid_param` : Required parameter missing or invalid.",
"content": {
"application/json": {
"examples": {
"not_workflow_app": {
"summary": "not_workflow_app",
"value": {
"status": 400,
"code": "not_workflow_app",
"message": "Please check if your app mode matches the right API route."
}
},
"bad_request": {
"summary": "bad_request",
"value": {
"status": 400,
"code": "bad_request",
"message": "Workflow is a draft and cannot be executed."
}
},
"provider_not_initialize": {
"summary": "provider_not_initialize",
"value": {
"status": 400,
"code": "provider_not_initialize",
"message": "No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials."
}
},
"provider_quota_exceeded": {
"summary": "provider_quota_exceeded",
"value": {
"status": 400,
"code": "provider_quota_exceeded",
"message": "Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials."
}
},
"model_currently_not_support": {
"summary": "model_currently_not_support",
"value": {
"status": 400,
"code": "model_currently_not_support",
"message": "Dify Hosted OpenAI trial currently not support the GPT-4 model."
}
},
"completion_request_error": {
"summary": "completion_request_error",
"value": {
"status": 400,
"code": "completion_request_error",
"message": "Completion request failed."
}
},
"invalid_param": {
"summary": "invalid_param",
"value": {
"status": 400,
"code": "invalid_param",
"message": "Arg user must be provided."
}
}
}
}
}
},
"404": {
"description": "`not_found` : ワークフローが見つかりません。",
"content": {
"application/json": {
"examples": {
"not_found": {
"summary": "not_found",
"value": {
"status": 404,
"code": "not_found",
"message": "Workflow not found."
}
}
}
}
}
},
"429": {
"description": "- `too_many_requests` : このアプリケーションへの同時リクエストが多すぎます。\n- `rate_limit_error` : アップストリームのモデルプロバイダーのレート制限を超えました。",
"content": {
"application/json": {
"examples": {
"too_many_requests": {
"summary": "too_many_requests",
"value": {
"status": 429,
"code": "too_many_requests",
"message": "Too many requests. Please try again later."
}
},
"rate_limit_error": {
"summary": "rate_limit_error",
"value": {
"status": 429,
"code": "rate_limit_error",
"message": "Rate Limit Error"
}
}
}
}
}
},
"500": {
"description": "`internal_server_error` : 内部サーバーエラー。",
"content": {
"application/json": {
"examples": {
"internal_server_error": {
"summary": "internal_server_error",
"value": {
"status": 500,
"code": "internal_server_error",
"message": "Internal Server Error."
}
}
}
}
}
}
}
}
},
"/workflows/run/{workflow_run_id}": {
"get": {
"summary": "ワークフロー実行詳細を取得",
"description": "ワークフロー実行 ID に基づいて、ワークフロータスクの現在の実行結果を取得します。",
"operationId": "getWorkflowRunDetailJp",
"tags": [
"ワークフロー"
],
"parameters": [
{
"name": "workflow_run_id",
"in": "path",
"required": true,
"description": "ワークフロー実行 ID です。ワークフロー実行レスポンスまたはストリーミングイベントから取得できます。",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "ワークフロー実行の詳細の取得に成功しました。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowRunDetailResponse"
},
"examples": {
"workflowRunDetail": {
"summary": "レスポンス例",
"value": {
"id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
"workflow_id": "7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345",
"status": "succeeded",
"inputs": "{\"query\": \"Translate this to French\"}",
"outputs": {
"result": "Traduisez ceci en francais"
},
"error": null,
"total_steps": 3,
"total_tokens": 150,
"created_at": 1705407629,
"finished_at": 1705407630,
"elapsed_time": 1.23
}
}
}
}
}
},
"400": {
"description": "`not_workflow_app` : アプリモードが API ルートと一致しません。",
"content": {
"application/json": {
"examples": {
"not_workflow_app": {
"summary": "not_workflow_app",
"value": {
"status": 400,
"code": "not_workflow_app",
"message": "Please check if your app mode matches the right API route."
}
}
}
}
}
},
"404": {
"description": "`not_found` : ワークフロー実行記録が見つかりません。",
"content": {
"application/json": {
"examples": {
"workflow_run_not_found": {
"summary": "not_found",
"value": {
"status": 404,
"code": "not_found",
"message": "Workflow run not found."
}
}
}
}
}
}
}
}
},
"/workflows/logs": {
"get": {
"summary": "ワークフローログ一覧を取得",
"description": "過去のワークフロー実行を、任意のフィルターで一覧表示します。各エントリは実行単位のサマリー(ステータス、トークン使用量、ステップ数、所要時間)であり、ノードごとの実行ログではありません。\n\n実行のノードレベルのイベントを追跡するには、代わりにストリーミングを使用します。\n\n- **自分で開始する実行**:[ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) をストリーミングモードで使用すると、実行の進行に応じて `node_started` と `node_finished` が送信されます。\n- **すでに進行中の実行**:[ワークフローイベントをストリーム](/api-reference/ワークフロー/ワークフローイベントをストリーム) を `include_state_snapshot=true` 付きで呼び出し、実行済み各ノードのステータスを再送してから、残りをストリーミングします。\n\n完了した実行のノードレベルのログは、サービス API 経由では取得できません。",
"operationId": "getWorkflowLogsJp",
"tags": [
"ワークフロー"
],
"parameters": [
{
"name": "keyword",
"in": "query",
"description": "ログ内を検索するキーワードです。",
"schema": {
"type": "string"
}
},
{
"name": "status",
"in": "query",
"description": "実行ステータスでフィルタリングします。",
"schema": {
"type": "string",
"enum": [
"succeeded",
"failed",
"stopped"
]
}
},
{
"name": "page",
"in": "query",
"description": "ページネーションのページ番号。",
"schema": {
"type": "integer",
"default": 1,
"minimum": 1,
"maximum": 99999
}
},
{
"name": "limit",
"in": "query",
"description": "1 ページあたりの件数です。",
"schema": {
"type": "integer",
"default": 20,
"minimum": 1,
"maximum": 100
}
},
{
"name": "created_at__before",
"in": "query",
"description": "この ISO 8601 タイムスタンプ以前に作成されたログをフィルタリングします。",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "created_at__after",
"in": "query",
"description": "この ISO 8601 タイムスタンプ以降に作成されたログをフィルタリングします。",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "created_by_end_user_session_id",
"in": "query",
"description": "エンドユーザーセッション ID でフィルタリングします。",
"schema": {
"type": "string"
}
},
{
"name": "created_by_account",
"in": "query",
"description": "作成者のアカウントのメールアドレス(例:`name@example.com`)でフィルタリングします。",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "ワークフローログの取得に成功しました。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowLogsResponse"
},
"examples": {
"workflowLogs": {
"summary": "レスポンス例",
"value": {
"page": 1,
"limit": 20,
"total": 1,
"has_more": false,
"data": [
{
"id": "b7e2f8a1-3c4d-5e6f-7890-abcdef123456",
"workflow_run": {
"id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
"version": "2025-01-16 12:00:00.000000",
"status": "succeeded",
"error": null,
"elapsed_time": 1.23,
"total_tokens": 150,
"total_steps": 3,
"created_at": 1705407629,
"finished_at": 1705407630,
"exceptions_count": 0,
"triggered_from": "app-run"
},
"created_from": "service-api",
"created_by_role": "end_user",
"created_by_account": null,
"created_by_end_user": {
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"type": "service_api",
"is_anonymous": false,
"session_id": "user_workflow_123"
},
"created_at": 1705407629
}
]
}
}
}
}
}
}
}
}
},
"/workflows/tasks/{task_id}/stop": {
"post": {
"summary": "ワークフロータスクを停止",
"description": "実行中のワークフロータスクを停止します。`streaming` モードでのみサポートされます。",
"operationId": "stopWorkflowTaskGenerationJp",
"tags": [
"ワークフロー"
],
"parameters": [
{
"name": "task_id",
"in": "path",
"required": true,
"description": "タスク ID です。[ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) API のストリーミングチャンクレスポンスから取得できます。",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"user"
],
"properties": {
"user": {
"type": "string",
"description": "ユーザー識別子です。エンドユーザーの識別のみに使用され、[ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) リクエストで渡した `user` と一致する必要はありません。停止はユーザーに関係なくタスクに適用されます。"
}
}
},
"examples": {
"example": {
"summary": "リクエスト例",
"value": {
"user": "user_workflow_123"
}
}
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/SuccessResult"
},
"400": {
"description": "- `not_workflow_app` : アプリモードが API ルートと一致しません。\n- `invalid_param` : 必須パラメータが不足しているか無効です。",
"content": {
"application/json": {
"examples": {
"not_workflow_app": {
"summary": "not_workflow_app",
"value": {
"status": 400,
"code": "not_workflow_app",
"message": "Please check if your app mode matches the right API route."
}
},
"invalid_param": {
"summary": "invalid_param",
"value": {
"status": 400,
"code": "invalid_param",
"message": "Arg user must be provided."
}
}
}
}
}
}
}
}
},
"/files/upload": {
"post": {
"operationId": "uploadWorkflowFileJp",
"tags": [
"ファイル操作"
],
"summary": "ファイルをアップロード",
"description": "メッセージ送信時に使用するファイルをアップロードします。画像、ドキュメント、音声、動画のマルチモーダル理解が可能です。アップロードされたファイルは現在のエンドユーザーのみが使用できます。",
"requestBody": {
"description": "ファイルアップロードリクエスト。multipart/form-data 形式が必要です。",
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"required": [
"file"
],
"properties": {
"file": {
"type": "string",
"format": "binary",
"description": "アップロードするファイル。サポートされるタイプには画像、ドキュメント、音声、動画が含まれます。"
},
"user": {
"type": "string",
"description": "ユーザー識別子。開発者のルールで定義され、アプリケーション内で一意である必要があります。Service API と WebApp のユーザー ID は独立しており、値が同じでも同じユーザーを指しません。省略した場合、アップロードは共有の `DEFAULT-USER` エンドユーザーに帰属します。ファイルは、アップロード時と同じ `user` 値を持つリクエストからのみ使用できます。"
}
}
}
}
}
},
"responses": {
"201": {
"description": "ファイルが正常にアップロードされました。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileUploadResponse"
},
"examples": {
"uploadSuccess": {
"summary": "レスポンス例",
"value": {
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"name": "product-photo.png",
"size": 204800,
"extension": "png",
"mime_type": "image/png",
"created_by": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"created_at": 1705407629,
"preview_url": null,
"source_url": "https://upload.dify.ai/files/a1b2c3d4-5678-90ab-cdef-1234567890ab/file-preview?timestamp=1705407629&nonce=8b3e26a5&sign=rN5DXW3xkVGwGE5MSvptu_BhQVXpMbXWmVJ0ib0LMzI=",
"original_url": null,
"user_id": null,
"tenant_id": "11223344-5566-7788-99aa-bbccddeeff00",
"conversation_id": null,
"file_key": null
}
}
}
}
}
},
"400": {
"description": "- `no_file_uploaded` : リクエストにファイルが提供されていません。\n- `too_many_files` : 1 回のリクエストにつき 1 ファイルのみ許可されています。\n- `filename_not_exists_error` : アップロードされたファイルにファイル名がありません。\n- `invalid_param` : ファイル名に不正な文字(`/` または `\\`)が含まれています。",
"content": {
"application/json": {
"examples": {
"no_file_uploaded": {
"summary": "no_file_uploaded",
"value": {
"status": 400,
"code": "no_file_uploaded",
"message": "Please upload your file."
}
},
"too_many_files": {
"summary": "too_many_files",
"value": {
"status": 400,
"code": "too_many_files",
"message": "Only one file is allowed."
}
},
"filename_not_exists_error": {
"summary": "filename_not_exists_error",
"value": {
"status": 400,
"code": "filename_not_exists_error",
"message": "The specified filename does not exist."
}
},
"invalid_param": {
"summary": "invalid_param",
"value": {
"status": 400,
"code": "invalid_param",
"message": "Filename contains invalid characters"
}
}
}
}
}
},
"413": {
"description": "`file_too_large` : ファイルサイズの上限を超えています。",
"content": {
"application/json": {
"examples": {
"file_too_large": {
"summary": "file_too_large",
"value": {
"status": 413,
"code": "file_too_large",
"message": "File size exceeded."
}
}
}
}
}
},
"415": {
"description": "`unsupported_file_type` : 許可されていないファイルタイプです。",
"content": {
"application/json": {
"examples": {
"unsupported_file_type": {
"summary": "unsupported_file_type",
"value": {
"status": 415,
"code": "unsupported_file_type",
"message": "File type not allowed."
}
}
}
}
}
}
}
}
},
"/end-users/{end_user_id}": {
"get": {
"operationId": "getEndUserWorkflowJp",
"tags": [
"エンドユーザー"
],
"summary": "エンドユーザー取得",
"description": "ID を指定してエンドユーザーを取得します。他の API がエンドユーザー ID を返す場合(例:[ファイルをアップロード](/api-reference/ファイル操作/ファイルをアップロード)の `created_by`)に便利です。",
"parameters": [
{
"name": "end_user_id",
"in": "path",
"required": true,
"description": "エンドユーザー ID。",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "エンドユーザーを正常に取得しました。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EndUserDetail"
},
"examples": {
"endUserDetail": {
"summary": "レスポンス例",
"value": {
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"tenant_id": "11223344-5566-7788-99aa-bbccddeeff00",
"app_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"type": "service_api",
"external_user_id": "abc-123",
"name": null,
"is_anonymous": false,
"session_id": "abc-123",
"created_at": "2024-01-16T12:00:29Z",
"updated_at": "2024-01-16T12:00:29Z"
}
}
}
}
}
},
"404": {
"description": "`end_user_not_found` : エンドユーザーが見つかりません。",
"content": {
"application/json": {
"examples": {
"end_user_not_found": {
"summary": "end_user_not_found",
"value": {
"status": 404,
"code": "end_user_not_found",
"message": "End user not found."
}
}
}
}
}
}
}
}
},
"/audio-to-text": {
"post": {
"operationId": "workflowAudioToTextJa",
"tags": [
"音声・テキスト変換"
],
"summary": "音声をテキストに変換",
"description": "音声ファイルをテキストに変換します。アップロードされたファイルの MIME タイプで検証され、`audio/mp3`、`audio/m4a`、`audio/wav`、`audio/amr`、`audio/mpga` のいずれかである必要があります。それ以外のタイプ(一般的な `audio/mpeg` を含む)は `unsupported_audio_type` エラーで拒否されます。ファイルサイズの上限は `30 MB` です。",
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/AudioToTextRequest"
}
}
}
},
"responses": {
"200": {
"description": "音声からテキストへの変換に成功しました。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AudioToTextResponse"
},
"examples": {
"audioToTextSuccess": {
"summary": "レスポンス例",
"value": {
"text": "Hello, I would like to know more about the iPhone 13 Pro Max."
}
}
}
}
}
},
"400": {
"description": "- `app_unavailable` : アプリケーションが利用できないか、設定が正しくありません。\n- `no_audio_uploaded` : 音声ファイルがアップロードされていません。\n- `provider_not_support_speech_to_text` : モデルプロバイダーが音声認識をサポートしていません。\n- `provider_not_initialize` : 有効なモデルプロバイダーの認証情報が見つかりません。\n- `provider_quota_exceeded` : モデルプロバイダーのクォータが使い切られました。\n- `model_currently_not_support` : 現在のモデルはこの操作をサポートしていません。\n- `completion_request_error` : 音声認識リクエストに失敗しました。",
"content": {
"application/json": {
"examples": {
"app_unavailable": {
"summary": "app_unavailable",
"value": {
"status": 400,
"code": "app_unavailable",
"message": "App unavailable, please check your app configurations."
}
},
"no_audio_uploaded": {
"summary": "no_audio_uploaded",
"value": {
"status": 400,
"code": "no_audio_uploaded",
"message": "Please upload your audio."
}
},
"provider_not_support_speech_to_text": {
"summary": "provider_not_support_speech_to_text",
"value": {
"status": 400,
"code": "provider_not_support_speech_to_text",
"message": "Provider not support speech to text."
}
},
"provider_not_initialize": {
"summary": "provider_not_initialize",
"value": {
"status": 400,
"code": "provider_not_initialize",
"message": "No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials."
}
},
"provider_quota_exceeded": {
"summary": "provider_quota_exceeded",
"value": {
"status": 400,
"code": "provider_quota_exceeded",
"message": "Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials."
}
},
"model_currently_not_support": {
"summary": "model_currently_not_support",
"value": {
"status": 400,
"code": "model_currently_not_support",
"message": "Dify Hosted OpenAI trial currently not support the GPT-4 model."
}
},
"completion_request_error": {
"summary": "completion_request_error",
"value": {
"status": 400,
"code": "completion_request_error",
"message": "Completion request failed."
}
}
}
}
}
},
"413": {
"description": "`audio_too_large` : 音声ファイルサイズが上限を超えています。",
"content": {
"application/json": {
"examples": {
"audio_too_large": {
"summary": "audio_too_large",
"value": {
"status": 413,
"code": "audio_too_large",
"message": "Audio size exceeded."
}
}
}
}
}
},
"415": {
"description": "`unsupported_audio_type` : 許可されていない音声タイプです。",
"content": {
"application/json": {
"examples": {
"unsupported_audio_type": {
"summary": "unsupported_audio_type",
"value": {
"status": 415,
"code": "unsupported_audio_type",
"message": "Audio type not allowed."
}
}
}
}
}
},
"500": {
"description": "`internal_server_error` : 内部サーバーエラー。",
"content": {
"application/json": {
"examples": {
"internal_server_error": {
"summary": "internal_server_error",
"value": {
"status": 500,
"code": "internal_server_error",
"message": "Internal server error."
}
}
}
}
}
}
}
}
},
"/text-to-audio": {
"post": {
"operationId": "workflowTextToAudioJa",
"tags": [
"音声・テキスト変換"
],
"summary": "テキストを音声に変換",
"description": "テキストを音声に変換します。",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TextToAudioRequest"
},
"examples": {
"textToAudioExample": {
"summary": "リクエスト例",
"value": {
"text": "Hello, welcome to our service.",
"user": "abc-123",
"voice": "alloy",
"streaming": false
}
}
}
}
}
},
"responses": {
"200": {
"description": "生成された音声ファイルを返します。`Content-Type` ヘッダーは音声の MIME タイプ(例:`audio/wav`、`audio/mp3`)に設定されます。`streaming` が `true` の場合、音声はチャンク転送エンコーディングでストリーミングされます。",
"content": {
"audio/mpeg": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"400": {
"description": "- `app_unavailable` : アプリケーションが利用できないか、設定が正しくありません。\n- `provider_not_initialize` : 有効なモデルプロバイダーの認証情報が見つかりません。\n- `provider_quota_exceeded` : モデルプロバイダーのクォータが使い切られました。\n- `model_currently_not_support` : 現在のモデルはこの操作をサポートしていません。\n- `completion_request_error` : テキスト読み上げリクエストに失敗しました。",
"content": {
"application/json": {
"examples": {
"app_unavailable": {
"summary": "app_unavailable",
"value": {
"status": 400,
"code": "app_unavailable",
"message": "App unavailable, please check your app configurations."
}
},
"provider_not_initialize": {
"summary": "provider_not_initialize",
"value": {
"status": 400,
"code": "provider_not_initialize",
"message": "No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials."
}
},
"provider_quota_exceeded": {
"summary": "provider_quota_exceeded",
"value": {
"status": 400,
"code": "provider_quota_exceeded",
"message": "Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials."
}
},
"model_currently_not_support": {
"summary": "model_currently_not_support",
"value": {
"status": 400,
"code": "model_currently_not_support",
"message": "Dify Hosted OpenAI trial currently not support the GPT-4 model."
}
},
"completion_request_error": {
"summary": "completion_request_error",
"value": {
"status": 400,
"code": "completion_request_error",
"message": "Completion request failed."
}
}
}
}
}
},
"500": {
"description": "`internal_server_error` : 内部サーバーエラー。",
"content": {
"application/json": {
"examples": {
"internal_server_error": {
"summary": "internal_server_error",
"value": {
"status": 500,
"code": "internal_server_error",
"message": "Internal server error."
}
}
}
}
}
}
}
}
},
"/info": {
"get": {
"operationId": "getWorkflowAppInfoJp",
"tags": [
"アプリケーション設定"
],
"summary": "アプリケーションの基本情報を取得",
"description": "このアプリケーションの基本情報(名前、説明、タグ、モード)を取得します。",
"responses": {
"200": {
"description": "アプリケーションの基本情報。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppInfoResponse"
},
"examples": {
"appInfo": {
"summary": "レスポンス例",
"value": {
"name": "My Workflow App",
"description": "便利なカスタマーサービスチャットボット。",
"tags": [
"customer-service",
"chatbot"
],
"mode": "workflow",
"author_name": "Dify Team"
}
}
}
}
}
}
}
}
},
"/parameters": {
"get": {
"operationId": "getWorkflowAppParametersJp",
"tags": [
"アプリケーション設定"
],
"summary": "アプリケーションのパラメータ情報を取得",
"description": "アプリケーションの入力フォーム設定(機能スイッチ、入力パラメータ名、タイプ、デフォルト値)を取得します。",
"responses": {
"200": {
"description": "アプリケーションパラメータ情報。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkflowAppParametersResponse"
},
"examples": {
"appParameters": {
"summary": "レスポンス例",
"value": {
"opening_statement": "Hello! How can I help you today?",
"suggested_questions": [
"What can you do?",
"Tell me about your features."
],
"suggested_questions_after_answer": {
"enabled": true
},
"speech_to_text": {
"enabled": false
},
"text_to_speech": {
"enabled": false,
"voice": "alloy",
"language": "en-US",
"autoPlay": "disabled"
},
"retriever_resource": {
"enabled": true
},
"annotation_reply": {
"enabled": false
},
"more_like_this": {
"enabled": false
},
"sensitive_word_avoidance": {
"enabled": false
},
"user_input_form": [
{
"text-input": {
"label": "City",
"variable": "city",
"required": true,
"default": ""
}
}
],
"file_upload": {
"image": {
"enabled": true,
"number_limits": 3,
"detail": "high",
"transfer_methods": [
"remote_url",
"local_file"
]
}
},
"system_parameters": {
"file_size_limit": 15,
"image_file_size_limit": 10,
"audio_file_size_limit": 50,
"video_file_size_limit": 100,
"workflow_file_upload_limit": 10
}
}
}
}
}
}
},
"400": {
"description": "`app_unavailable` : アプリケーションが利用できないか、設定が正しくありません。",
"content": {
"application/json": {
"examples": {
"app_unavailable": {
"summary": "app_unavailable",
"value": {
"status": 400,
"code": "app_unavailable",
"message": "App unavailable, please check your app configurations."
}
}
}
}
}
}
}
}
},
"/meta": {
"get": {
"operationId": "getWorkflowAppMetaJa",
"tags": [
"アプリケーション設定"
],
"summary": "アプリケーションのメタ情報を取得",
"description": "このアプリケーションのメタデータ(ツールアイコンやその他の設定詳細)を取得します。",
"responses": {
"200": {
"description": "アプリケーションのメタ情報を正常に取得しました。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppMetaResponse"
},
"examples": {
"appMeta": {
"summary": "レスポンス例",
"value": {
"tool_icons": {
"dalle3": "https://example.com/icons/dalle3.png",
"calculator": {
"background": "#4A90D9",
"content": "🧮"
}
}
}
}
}
}
}
}
}
}
},
"/site": {
"get": {
"operationId": "getWorkflowWebAppSettingsJp",
"tags": [
"アプリケーション設定"
],
"summary": "アプリの WebApp 設定を取得",
"description": "このアプリケーションの WebApp 設定(サイト設定、テーマ、カスタマイズオプション)を取得します。",
"responses": {
"200": {
"description": "アプリケーションの WebApp 設定。",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WebAppSettingsResponse"
},
"examples": {
"webAppSettings": {
"summary": "レスポンス例",
"value": {
"title": "My Chat App",
"chat_color_theme": "#4A90D9",
"chat_color_theme_inverted": false,
"icon_type": "emoji",
"icon": "🤖",
"icon_background": "#FFFFFF",
"icon_url": null,
"description": "便利なカスタマーサービスチャットボット。",
"copyright": "2025 Dify",
"privacy_policy": "https://example.com/privacy",
"custom_disclaimer": "",
"default_language": "en-US",
"show_workflow_steps": false,
"use_icon_as_answer_icon": true
}
}
}
}
}
},
"403": {
"description": "`forbidden` : このアプリケーションのサイトが見つからないか、ワークスペースがアーカイブされています。",
"content": {
"application/json": {
"examples": {
"forbidden": {
"summary": "forbidden",
"value": {
"status": 403,
"code": "forbidden",
"message": "Forbidden."
}
}
}
}
}
}
}
}
},
"/form/human_input/{form_token}": {
"get": {
"tags": [
"人間の入力"
],
"summary": "人間の入力フォームを取得",
"description": "一時停止中の人間の入力フォームの内容を取得します。 WebApp 配信が必要です。\n\n人間の入力エンドポイントを呼び出す一連の流れについては、[API 連携フロー](/ja/api-reference/guides/human-input-flow) を参照してください。",
"operationId": "getWorkflowHumanInputForm",
"parameters": [
{
"name": "form_token",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "一時停止中のフォームへのアクセストークン。ストリーミングモードのワークフローを実行エンドポイントまたはチャットメッセージを送信エンドポイントが返す `human_input_required` イベントから取得します。"
}
],
"responses": {
"200": {
"description": "フォーム内容の取得に成功しました。",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"form_content": {
"type": "string",
"description": "ワークフロー変数を埋め込んだ、事前レンダリング済みのフォーム本文。"
},
"inputs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "フォーム入力コントロールの種類。利用可能な値: `paragraph` (複数行テキスト入力)、 `select` (リストからの単一選択)、 `file` (単一ファイルアップロード)、 `file-list` (複数ファイルアップロード)。"
},
"output_variable_name": {
"type": "string",
"description": "ワークフロー内でこの入力の送信値を参照する際の変数名。送信リクエストの `inputs` オブジェクトのキーに対応します。"
},
"default": {
"type": "object",
"nullable": true,
"description": "`paragraph` 入力の生のデフォルト値設定。クライアントはこのフィールドを直接解決すべきではありません。デフォルトの表示には `resolved_default_values` を使用してください。その他の入力タイプ、またはデフォルト値が未設定の場合は `null` になります。",
"properties": {
"type": {
"type": "string",
"description": "デフォルト値のソース。 `constant` は `value` をリテラル文字列として使用することを示します。 `variable` は `selector` がワークフロー変数を指すことを示します。"
},
"selector": {
"type": "array",
"items": {
"type": "string"
},
"description": "`type` が `variable` の場合の変数参照パス(例: `[\"node_id\", \"var_name\"]`)。少なくとも 2 つの要素を含む必要があります。"
},
"value": {
"type": "string",
"description": "`type` が `constant` の場合のリテラルなデフォルト値。常に文字列です。"
}
}
},
"option_source": {
"type": "object",
"description": "`select` 入力の選択肢のソース。 `type` が `select` の場合のみ含まれます。",
"properties": {
"type": {
"type": "string",
"enum": [
"variable",
"constant"
],
"description": "選択肢のソース。 `constant` は `value` に選択肢を直接列挙することを示します。 `variable` は `selector` が選択肢を提供する `array[string]` 型のワークフロー変数を指すことを示します。"
},
"selector": {
"type": "array",
"items": {
"type": "string"
},
"description": "`type` が `variable` の場合の変数参照パス。"
},
"value": {
"type": "array",
"items": {
"type": "string"
},
"description": "`type` が `constant` の場合のリテラルな選択肢リスト。"
}
}
},
"allowed_file_types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"image",
"document",
"audio",
"video",
"custom"
]
},
"description": "受信者がアップロード可能なファイルカテゴリ。 `file` および `file-list` 入力に含まれます。値: `image`、 `document`、 `audio`、 `video`、 `custom`。"
},
"allowed_file_extensions": {
"type": "array",
"items": {
"type": "string"
},
"description": "`allowed_file_types` に `custom` が含まれる場合に許可されるファイル拡張子。各拡張子には先頭の `.` を含めてください。たとえば `.md` です。`file` および `file-list` 入力に含まれます。"
},
"allowed_file_upload_methods": {
"type": "array",
"items": {
"type": "string",
"enum": [
"local_file",
"remote_url"
]
},
"description": "受信者が使用できるアップロード方法。値: `local_file`、 `remote_url`。 `file` および `file-list` 入力に含まれます。"
},
"number_limits": {
"type": "integer",
"description": "受信者がアップロードできるファイルの最大数。 `file-list` 入力のみに含まれます。"
}
}
},
"description": "フォーム入力フィールドの定義。"
},
"resolved_default_values": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "フォームに表示するための事前計算済みデフォルト値。入力の `output_variable_name` をキーとします。デフォルト値がワークフロー変数から解決可能な `paragraph` 入力にのみ設定されます。解決可能なデフォルトがない入力では空になります。クライアントはこれらの値をそのまま表示してください。 `default` をクライアント側で再解決する必要はありません。すべての値は文字列化されています。"
},
"user_actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 20,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"description": "アクションボタンの識別子。受信者がこのボタンを選択したときに、[人間の入力フォームを送信](/api-reference/人間の入力/人間の入力フォームを送信) エンドポイントの `action` として渡します。"
},
"title": {
"type": "string",
"maxLength": 100,
"description": "受信者に表示されるボタンのラベル。"
},
"button_style": {
"type": "string",
"description": "ボタンの視覚スタイル。利用可能な値: `primary`、 `default`、 `accent`、 `ghost`。"
}
}
},
"description": "利用可能な送信アクション。"
},
"expiration_time": {
"type": "integer",
"format": "int64",
"description": "Unix タイムスタンプ(秒)。この時刻以降、フォームは送信できなくなります。",
"nullable": true
}
}
},
"examples": {
"success": {
"summary": "レスポンス例",
"value": {
"form_content": "Please review the draft, set a priority, and confirm or request changes.",
"inputs": [
{
"type": "paragraph",
"output_variable_name": "feedback",
"default": {
"type": "constant",
"selector": [],
"value": ""
}
},
{
"type": "select",
"output_variable_name": "priority",
"option_source": {
"type": "constant",
"selector": [],
"value": [
"low",
"medium",
"high"
]
}
},
{
"type": "file",
"output_variable_name": "attachment",
"allowed_file_types": [
"image",
"document"
],
"allowed_file_extensions": [],
"allowed_file_upload_methods": [
"local_file",
"remote_url"
]
},
{
"type": "file-list",
"output_variable_name": "attachments",
"allowed_file_types": [
"image",
"document"
],
"allowed_file_extensions": [],
"allowed_file_upload_methods": [
"local_file",
"remote_url"
],
"number_limits": 5
}
],
"resolved_default_values": {
"feedback": ""
},
"user_actions": [
{
"id": "approve",
"title": "Approve",
"button_style": "primary"
},
{
"id": "reject",
"title": "Request changes",
"button_style": "default"
}
],
"expiration_time": 1745510400
}
}
}
}
}
},
"404": {
"description": "`not_found` :フォームが見つかりません。",
"content": {
"application/json": {
"examples": {
"not_found": {
"summary": "not_found",
"value": {
"status": 404,
"code": "not_found",
"message": "フォームが見つかりません"
}
}
}
}
}
},
"412": {
"description": "- `human_input_form_submitted` :フォームは送信済みです。フォームはワンショットで、最初の応答が有効になります(送信したユーザーは問いません)。\n- `human_input_form_expired` :送信が到達する前にフォームの有効期限が切れています。",
"content": {
"application/json": {
"examples": {
"human_input_form_submitted": {
"summary": "human_input_form_submitted",
"value": {
"status": 412,
"code": "human_input_form_submitted",
"message": "このフォームは他のユーザーによって送信済みです。form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
},
"human_input_form_expired": {
"summary": "human_input_form_expired",
"value": {
"status": 412,
"code": "human_input_form_expired",
"message": "このフォームは有効期限切れです。form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
}
}
}
}
}
},
"post": {
"tags": [
"人間の入力"
],
"summary": "人間の入力フォームを送信",
"description": "一時停止中の人間の入力フォームに受信者の応答を送信します。受理されるとワークフローが再開され、後続のイベントはワークフローイベントをストリーミングエンドポイントで追跡できます。 WebApp 配信が必要です。",
"operationId": "submitWorkflowHumanInputForm",
"parameters": [
{
"name": "form_token",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "一時停止中のフォームへのアクセストークン。ストリーミングモードのワークフローを実行エンドポイントまたはチャットメッセージを送信エンドポイントが返す `human_input_required` イベントから取得します。"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"inputs",
"action",
"user"
],
"properties": {
"inputs": {
"type": "object",
"additionalProperties": true,
"description": "各入力の `output_variable_name` をキーとして送信する値。段落と選択の入力は文字列、`file` 入力は単一のファイルマッピング、`file-list` 入力はファイルマッピングの配列です。ファイルマッピングは `{transfer_method: local_file, upload_file_id, type}` または `{transfer_method: remote_url, url, type}` で、`type` はそのフィールドの `allowed_file_types` のいずれか(`image`、`document`、`audio`、`video`、`custom`)です。`local_file` の場合、`upload_file_id` は [ファイルをアップロード](/api-reference/ファイル操作/ファイルをアップロード) が返す `id` です。実行、アップロード、送信の各呼び出しで一貫した `user` を使用してください。"
},
"action": {
"type": "string",
"description": "受信者が選択したアクションボタンの ID。フォームの `user_actions` リスト([人間の入力フォームを取得](/api-reference/人間の入力/人間の入力フォームを取得) エンドポイントから返される)にある `id` のいずれかと一致する必要があります。"
},
"user": {
"type": "string",
"description": "ユーザー識別子。開発者のルールで定義され、アプリケーション内で一意である必要があります。Service API と WebApp のユーザー ID は独立しており、値が同じでも同じユーザーを指しません。"
}
}
},
"examples": {
"approve": {
"summary": "リクエスト例",
"value": {
"inputs": {
"feedback": "公開して問題ありません",
"priority": "high",
"attachment": {
"transfer_method": "local_file",
"upload_file_id": "3c8fa1b2-7d4e-4f9a-b0c1-d2e3f4a5b6c7",
"type": "image"
},
"attachments": [
{
"transfer_method": "local_file",
"upload_file_id": "1a77f0df-c0e6-461c-987c-e72526f341ee",
"type": "document"
},
{
"transfer_method": "remote_url",
"url": "https://example.com/report.pdf",
"type": "document"
}
]
},
"action": "approve",
"user": "abc-123"
}
}
}
}
}
},
"responses": {
"200": {
"description": "フォームの送信に成功しました。レスポンスボディは空のオブジェクトです。",
"content": {
"application/json": {
"schema": {
"type": "object"
},
"examples": {
"success": {
"summary": "レスポンス例",
"value": {}
}
}
}
}
},
"400": {
"description": "- `bad_request` :フォーム受信者のタイプが無効です。\n- `invalid_form_data` :送信内容がフォーム定義の検証に失敗しました。",
"content": {
"application/json": {
"examples": {
"bad_request": {
"summary": "bad_request",
"value": {
"status": 400,
"code": "bad_request",
"message": "フォーム受信者のタイプが無効です"
}
},
"invalid_form_data": {
"summary": "invalid_form_data",
"value": {
"status": 400,
"code": "invalid_form_data",
"message": "必須入力が不足しています:feedback"
}
}
}
}
}
},
"404": {
"description": "`not_found` :フォームが見つかりません。",
"content": {
"application/json": {
"examples": {
"not_found": {
"summary": "not_found",
"value": {
"status": 404,
"code": "not_found",
"message": "フォームが見つかりません"
}
}
}
}
}
},
"412": {
"description": "- `human_input_form_submitted` :フォームは送信済みです。フォームはワンショットで、最初の応答が有効になります(送信したユーザーは問いません)。\n- `human_input_form_expired` :送信が到達する前にフォームの有効期限が切れています。",
"content": {
"application/json": {
"examples": {
"human_input_form_submitted": {
"summary": "human_input_form_submitted",
"value": {
"status": 412,
"code": "human_input_form_submitted",
"message": "このフォームは他のユーザーによって送信済みです。form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
},
"human_input_form_expired": {
"summary": "human_input_form_expired",
"value": {
"status": 412,
"code": "human_input_form_expired",
"message": "このフォームは有効期限切れです。form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
}
}
}
}
}
}
},
"/workflow/{workflow_run_id}/events": {
"get": {
"tags": [
"ワークフロー"
],
"summary": "ワークフローイベントをストリーム",
"description": "一時停止後または元の SSE 接続が切断された後にワークフロー実行の Server-Sent Events ストリームを再開します。すでに完了している実行に対しては、`workflow_finished` イベントを 1 つ送信してストリームを閉じます。\n\n進行中の実行のノードレベルのステータスと進捗を確認するには、`include_state_snapshot=true` を指定して呼び出します。ストリームは新しいイベントの送信前に、実行済み各ノードのステータスを再送します。",
"operationId": "streamWorkflowEvents",
"parameters": [
{
"name": "workflow_run_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"description": "イベントストリームを再開するワークフロー実行 ID(元のワークフロー実行レスポンスの `workflow_run_id`)。"
},
{
"name": "user",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "この実行を最初にトリガーしたエンドユーザー識別子。ワークフロー実行の作成者と一致している必要があります。"
},
{
"name": "include_state_snapshot",
"in": "query",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"description": "`true` の場合、永続化された状態スナップショットからリプレイし、新しいイベントのストリーミング開始前に実行済みノードのステータスサマリーを含めます。"
},
{
"name": "continue_on_pause",
"in": "query",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"description": "`true` に設定すると、複数の `workflow_paused` イベントを跨いでストリームを開いたままにします(ワークフローに複数の人間の入力ノードが連続する場合に有用)。デフォルトでは最初の一時停止で閉じます。"
}
],
"responses": {
"200": {
"description": "Server-Sent Events ストリーム。各イベントは `data: {JSON}\\n\\n` として配信されます。イベントペイロードは元のストリーミングレスポンスと同じスキーマに従います。",
"content": {
"text/event-stream": {
"schema": {
"type": "string",
"description": "再開されたワークフロー実行のイベントの SSE ストリームです。形式は [ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) と同じです。再開された部分で `reasoning_format: separated` を指定した LLM ノードが実行される場合、このストリームには `reasoning_chunk` イベントも含まれます。"
},
"examples": {
"resumedRun": {
"summary": "レスポンス例 - 再開実行",
"value": "data: {\"event\": \"human_input_form_filled\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"rendered_content\": \"Please review the draft.\", \"action_id\": \"approve\", \"action_text\": \"Approve\"}} data: {\"event\": \"node_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"node_exec_2\", \"node_id\": \"node_1\", \"node_type\": \"llm\", \"title\": \"LLM Node\", \"index\": 2, \"created_at\": 1705407705}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"Approved, now translating.\", \"node_id\": \"node_1\", \"is_final\": false}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"\", \"node_id\": \"node_1\", \"is_final\": true}} data: {\"event\": \"text_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"text\": \"Bonjour\", \"from_variable_selector\": [\"node_1\", \"text\"]}} data: {\"event\": \"workflow_finished\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"status\": \"succeeded\", \"outputs\": {\"result\": \"Bonjour\"}, \"elapsed_time\": 2.1, \"total_tokens\": 42, \"total_steps\": 2, \"created_at\": 1705407629, \"finished_at\": 1705407706}}"
}
}
}
}
},
"400": {
"description": "`not_workflow_app` : Please check if your app mode matches the right API route.",
"content": {
"application/json": {
"examples": {
"not_workflow_app": {
"summary": "not_workflow_app",
"value": {
"status": 400,
"code": "not_workflow_app",
"message": "Please check if your app mode matches the right API route."
}
}
}
}
}
},
"404": {
"description": "`not_found` : Workflow run not found.",
"content": {
"application/json": {
"examples": {
"not_found": {
"summary": "not_found",
"value": {
"status": 404,
"code": "not_found",
"message": "Workflow run not found"
}
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "bash",
"label": "ストリームを再開",
"source": "curl -N --request GET \\\n --url 'https://{api_base_url}/workflow/{workflow_run_id}/events?user={user}' \\\n --header 'Authorization: Bearer {api_key}'"
},
{
"lang": "bash",
"label": "状態スナップショット付き",
"source": "curl -N --request GET \\\n --url 'https://{api_base_url}/workflow/{workflow_run_id}/events?user={user}&include_state_snapshot=true' \\\n --header 'Authorization: Bearer {api_key}'"
}
]
}
}
},
"components": {
"securitySchemes": {
"ApiKeyAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "API_KEY",
"description": "API Key 認証です。すべての API リクエストにおいて、`Authorization` HTTP ヘッダーに `Bearer ` プレフィックスを付けた API Key を含めてください。例:`Authorization: Bearer {API_KEY}`。**API Key はサーバーサイドに保存し、クライアントサイドで共有・保存しないことを強く推奨します。API Key の漏洩は深刻な結果につながる可能性があります。**API Key が欠落または無効な場合、HTTP `401` とエラーコード `unauthorized` が返されます。"
}
},
"responses": {
"SuccessResult": {
"description": "操作が成功しました。",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"result": {
"type": "string",
"enum": [
"success"
],
"description": "操作結果です。"
}
}
},
"examples": {
"success": {
"summary": "レスポンス例",
"value": {
"result": "success"
}
}
}
}
}
}
},
"schemas": {
"WorkflowExecutionRequest": {
"type": "object",
"required": [
"inputs",
"user"
],
"properties": {
"inputs": {
"type": "object",
"description": "ワークフロー入力変数のキーと値のペアです。ファイル型変数の値は、`type`、`transfer_method`、および `url` または `upload_file_id` を持つファイルオブジェクトの配列である必要があります。アプリが期待する変数名と型については、[アプリケーションのパラメータ情報を取得](/api-reference/アプリケーション設定/アプリケーションのパラメータ情報を取得) レスポンスの `user_input_form` フィールドを参照してください。",
"additionalProperties": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "object"
},
{
"type": "array",
"items": {
"$ref": "#/components/schemas/InputFileObject"
}
}
]
}
},
"response_mode": {
"type": "string",
"enum": [
"streaming",
"blocking"
],
"description": "レスポンスモードです。同期レスポンスには `blocking`Cloudflare タイムアウトは `100 s`)、サーバー送信イベントには `streaming` を使用します。省略した場合、デフォルトはブロッキング動作になります。"
},
"user": {
"type": "string",
"description": "開発者のルールで定義されるユーザー識別子で、アプリケーション内で一意である必要があります。この識別子はデータアクセスの範囲を限定します——ワークフロー実行とファイルは同じ `user` 値でクエリした場合にのみ表示されます。"
},
"files": {
"type": "array",
"items": {
"$ref": "#/components/schemas/InputFileObject"
},
"nullable": true,
"description": "ファイルリストです。ファイルとテキストを組み合わせて入力する場合に適しており、モデルが Vision 機能をサポートしている場合にのみ使用できます。ローカルファイルを添付するには、まず [ファイルをアップロード](/api-reference/ファイル操作/ファイルをアップロード) でアップロードし、返された `id` を `upload_file_id` として `transfer_method: local_file` で使用します。"
}
}
},
"InputFileObject": {
"type": "object",
"required": [
"type",
"transfer_method"
],
"properties": {
"type": {
"type": "string",
"enum": [
"document",
"image",
"audio",
"video",
"custom"
],
"description": "ファイルタイプ。"
},
"transfer_method": {
"type": "string",
"enum": [
"remote_url",
"local_file"
],
"description": "転送方法です。ファイル URL の場合は `remote_url`、アップロードファイルの場合は `local_file` です。"
},
"url": {
"type": "string",
"format": "url",
"description": "ファイル URL`transfer_method` が `remote_url` の場合)です。"
},
"upload_file_id": {
"type": "string",
"description": "[ファイルをアップロード](/api-reference/ファイル操作/ファイルをアップロード) API から取得したアップロード済みファイル ID です(`transfer_method` が `local_file` の場合に使用)。"
}
}
},
"WorkflowBlockingResponse": {
"type": "object",
"properties": {
"task_id": {
"type": "string",
"format": "uuid",
"description": "進行中の実行のタスク ID です。[ワークフロータスクを停止](/api-reference/ワークフロー/ワークフロータスクを停止) と組み合わせて、実行中のワークフローをキャンセルします。実行中のみ有効です。"
},
"workflow_run_id": {
"type": "string",
"format": "uuid",
"description": "このワークフロー実行記録の永続的な識別子です。[ワークフロー実行詳細を取得](/api-reference/ワークフロー/ワークフロー実行詳細を取得) と組み合わせて、実行後に結果を取得します。"
},
"data": {
"$ref": "#/components/schemas/WorkflowFinishedData"
}
}
},
"ChunkWorkflowEvent": {
"type": "object",
"required": [
"event"
],
"properties": {
"event": {
"type": "string",
"enum": [
"workflow_started",
"node_started",
"node_finished",
"node_retry",
"iteration_started",
"iteration_next",
"iteration_completed",
"loop_started",
"loop_next",
"loop_completed",
"reasoning_chunk",
"text_chunk",
"workflow_finished",
"tts_message",
"tts_message_end",
"workflow_paused",
"agent_log",
"human_input_required",
"human_input_form_filled",
"human_input_form_timeout",
"error",
"ping"
],
"description": "ストリーミングイベントの種類。"
}
},
"discriminator": {
"propertyName": "event",
"mapping": {
"workflow_started": "#/components/schemas/StreamEventWorkflowStarted",
"node_started": "#/components/schemas/StreamEventNodeStarted",
"node_finished": "#/components/schemas/StreamEventNodeFinished",
"node_retry": "#/components/schemas/StreamEventNodeRetry",
"iteration_started": "#/components/schemas/StreamEventIterationStarted",
"iteration_next": "#/components/schemas/StreamEventIterationNext",
"iteration_completed": "#/components/schemas/StreamEventIterationCompleted",
"loop_started": "#/components/schemas/StreamEventLoopStarted",
"loop_next": "#/components/schemas/StreamEventLoopNext",
"loop_completed": "#/components/schemas/StreamEventLoopCompleted",
"reasoning_chunk": "#/components/schemas/StreamEventReasoningChunk",
"text_chunk": "#/components/schemas/StreamEventTextChunk",
"workflow_finished": "#/components/schemas/StreamEventWorkflowFinished",
"tts_message": "#/components/schemas/StreamEventTtsMessage",
"tts_message_end": "#/components/schemas/StreamEventTtsMessageEnd",
"error": "#/components/schemas/StreamEventError",
"ping": "#/components/schemas/StreamEventPing",
"workflow_paused": "#/components/schemas/StreamEventWorkflowPaused",
"agent_log": "#/components/schemas/StreamEventAgentLog",
"human_input_required": "#/components/schemas/StreamEventHumanInputRequired",
"human_input_form_filled": "#/components/schemas/StreamEventHumanInputFormFilled",
"human_input_form_timeout": "#/components/schemas/StreamEventHumanInputFormTimeout"
}
}
},
"StreamEventBase": {
"type": "object",
"properties": {
"task_id": {
"type": "string",
"format": "uuid",
"description": "進行中の実行のタスク ID です。[ワークフロータスクを停止](/api-reference/ワークフロー/ワークフロータスクを停止) と組み合わせて、実行中のワークフローをキャンセルします。実行中のみ有効です。"
},
"workflow_run_id": {
"type": "string",
"format": "uuid",
"description": "このワークフロー実行記録の永続的な識別子です。[ワークフロー実行詳細を取得](/api-reference/ワークフロー/ワークフロー実行詳細を取得) と組み合わせて、実行後に結果を取得します。"
}
}
},
"StreamEventWorkflowStarted": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ワークフロー実行 ID です。"
},
"workflow_id": {
"type": "string",
"format": "uuid",
"description": "Workflow ID."
},
"inputs": {
"type": "object",
"additionalProperties": true,
"description": "このワークフロー実行の入力変数です。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "ワークフロー実行が開始した Unix タイムスタンプです。"
},
"reason": {
"type": "string",
"description": "ワークフロー開始の理由です。`initial` は新規実行、`resumption` は一時停止状態からの再開を示します。"
}
}
}
}
}
]
},
"StreamEventNodeStarted": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ノード実行 ID です。"
},
"node_id": {
"type": "string",
"description": "ワークフローグラフ内のノード ID です。"
},
"node_type": {
"type": "string",
"description": "ノードタイプ(例:`llm`、`code`、`template-transform`)です。"
},
"title": {
"type": "string",
"description": "ノードの表示名です。"
},
"index": {
"type": "integer",
"description": "実行シーケンスインデックスです。"
},
"predecessor_node_id": {
"type": "string",
"nullable": true,
"description": "先行ノードの ID(存在する場合)です。"
},
"inputs": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "このノードの入力変数です。"
},
"inputs_truncated": {
"type": "boolean",
"description": "`inputs` データが切り捨てられたかどうかです。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "ノード実行が開始した Unix タイムスタンプです。"
},
"extras": {
"type": "object",
"additionalProperties": true,
"description": "ノード実行の追加メタデータです。"
},
"iteration_id": {
"type": "string",
"nullable": true,
"description": "このノードがイテレーション内で実行される場合の親イテレーション ID です。"
},
"loop_id": {
"type": "string",
"nullable": true,
"description": "このノードがループ内で実行される場合の親ループ ID です。"
}
}
}
}
}
]
},
"StreamEventNodeFinished": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ノード実行 ID です。"
},
"node_id": {
"type": "string",
"description": "ワークフローグラフ内のノード ID です。"
},
"node_type": {
"type": "string",
"description": "Node type."
},
"title": {
"type": "string",
"description": "ノードの表示名です。"
},
"index": {
"type": "integer",
"description": "実行シーケンスインデックスです。"
},
"predecessor_node_id": {
"type": "string",
"nullable": true,
"description": "先行ノードの ID(存在する場合)です。"
},
"inputs": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "このノードの入力変数です。"
},
"inputs_truncated": {
"type": "boolean",
"description": "`inputs` データが切り捨てられたかどうかです。"
},
"process_data": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "ノード実行中に生成された処理データです。"
},
"process_data_truncated": {
"type": "boolean",
"description": "`process_data` が切り詰められたかどうかです。"
},
"outputs": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "ノードからの出力データです。"
},
"outputs_truncated": {
"type": "boolean",
"description": "`outputs` データが切り詰められたかどうかです。"
},
"status": {
"type": "string",
"description": "ノードの実行ステータスです。`running` は進行中、`succeeded` は完了、`failed` はエラー、`stopped` は手動停止、`exception` は予期しない障害を示します。"
},
"error": {
"type": "string",
"nullable": true,
"description": "ノードが失敗した場合のエラーメッセージです。"
},
"elapsed_time": {
"type": "number",
"format": "float",
"description": "経過時間(秒)です。"
},
"execution_metadata": {
"type": "object",
"nullable": true,
"description": "トークン使用量を含む実行メタデータです。",
"properties": {
"total_tokens": {
"type": "integer",
"nullable": true,
"description": "このノードで消費された合計トークン数です。"
},
"total_price": {
"type": "number",
"format": "float",
"nullable": true,
"description": "このノード実行の合計コストです。"
},
"currency": {
"type": "string",
"nullable": true,
"description": "コストの通貨(例: `USD`)です。"
}
}
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "ノード実行が開始した Unix タイムスタンプです。"
},
"finished_at": {
"type": "integer",
"format": "int64",
"description": "ノード実行が完了した Unix タイムスタンプです。"
},
"files": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"additionalProperties": true
},
"description": "このノードで生成されたファイルです。"
},
"iteration_id": {
"type": "string",
"nullable": true,
"description": "このノードがイテレーション内で実行される場合の親イテレーション ID です。"
},
"loop_id": {
"type": "string",
"nullable": true,
"description": "このノードがループ内で実行される場合の親ループ ID です。"
}
}
}
}
}
]
},
"StreamEventNodeRetry": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ノード実行 ID です。"
},
"node_id": {
"type": "string",
"description": "ワークフローグラフ内のノード ID です。"
},
"node_type": {
"type": "string",
"description": "Node type."
},
"title": {
"type": "string",
"description": "ノードの表示名です。"
},
"index": {
"type": "integer",
"description": "実行シーケンスインデックスです。"
},
"predecessor_node_id": {
"type": "string",
"nullable": true,
"description": "先行ノードの ID(存在する場合)です。"
},
"inputs": {
"type": "object",
"additionalProperties": true,
"nullable": true
},
"inputs_truncated": {
"type": "boolean",
"description": "`inputs` データが切り捨てられたかどうかです。"
},
"process_data": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "ノード実行中に生成された処理データです。"
},
"process_data_truncated": {
"type": "boolean",
"description": "`process_data` が切り詰められたかどうかです。"
},
"outputs": {
"type": "object",
"additionalProperties": true,
"nullable": true
},
"outputs_truncated": {
"type": "boolean",
"description": "`outputs` データが切り詰められたかどうかです。"
},
"status": {
"type": "string",
"description": "リトライ時点のノード実行ステータスです。"
},
"error": {
"type": "string",
"nullable": true,
"description": "リトライをトリガーしたエラーメッセージです。"
},
"elapsed_time": {
"type": "number",
"format": "float",
"description": "経過時間(秒)です。"
},
"created_at": {
"type": "integer",
"format": "int64"
},
"finished_at": {
"type": "integer",
"format": "int64"
},
"retry_index": {
"type": "integer",
"description": "ゼロ始まりのリトライ回数インデックスです。"
},
"iteration_id": {
"type": "string",
"nullable": true
},
"loop_id": {
"type": "string",
"nullable": true
},
"execution_metadata": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "ノード実行のメタデータです。"
},
"files": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "実行中にノードが生成したファイルです。"
}
}
}
}
}
]
},
"StreamEventIterationStarted": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ノード実行 ID です。"
},
"node_id": {
"type": "string",
"description": "イテレーションノード ID です。"
},
"node_type": {
"type": "string",
"description": "ノードの種類(常に `iteration`)です。"
},
"title": {
"type": "string",
"description": "イテレーションノードの表示名です。"
},
"created_at": {
"type": "integer",
"format": "int64"
},
"inputs": {
"type": "object",
"additionalProperties": true,
"description": "イテレーションの入力変数です。"
},
"inputs_truncated": {
"type": "boolean",
"description": "`inputs` データが切り捨てられたかどうかです。"
},
"metadata": {
"type": "object",
"additionalProperties": true,
"description": "イテレーションのメタデータです。"
},
"extras": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
]
},
"StreamEventIterationNext": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"node_id": {
"type": "string"
},
"node_type": {
"type": "string"
},
"title": {
"type": "string"
},
"index": {
"type": "integer",
"description": "現在のイテレーションインデックス(ゼロ始まり)です。"
},
"created_at": {
"type": "integer",
"format": "int64"
},
"extras": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
]
},
"StreamEventIterationCompleted": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"node_id": {
"type": "string"
},
"node_type": {
"type": "string"
},
"title": {
"type": "string"
},
"outputs": {
"type": "object",
"additionalProperties": true,
"nullable": true
},
"outputs_truncated": {
"type": "boolean",
"description": "`outputs` データが切り詰められたかどうかです。"
},
"inputs": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "イテレーションの入力変数です。"
},
"inputs_truncated": {
"type": "boolean",
"description": "`inputs` データが切り捨てられたかどうかです。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "イテレーションが開始した Unix タイムスタンプです。"
},
"extras": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "イテレーションの追加メタデータです。"
},
"status": {
"type": "string",
"description": "イテレーションの完了ステータスです。"
},
"error": {
"type": "string",
"nullable": true
},
"elapsed_time": {
"type": "number",
"format": "float"
},
"total_tokens": {
"type": "integer"
},
"execution_metadata": {
"type": "object",
"additionalProperties": true,
"description": "トークン使用量を含む実行メタデータです。"
},
"finished_at": {
"type": "integer",
"format": "int64"
},
"steps": {
"type": "integer",
"description": "完了したイテレーションステップ数です。"
}
}
}
}
}
]
},
"StreamEventLoopStarted": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"node_id": {
"type": "string"
},
"node_type": {
"type": "string"
},
"title": {
"type": "string"
},
"created_at": {
"type": "integer",
"format": "int64"
},
"inputs": {
"type": "object",
"additionalProperties": true
},
"inputs_truncated": {
"type": "boolean",
"description": "`inputs` データが切り捨てられたかどうかです。"
},
"metadata": {
"type": "object",
"additionalProperties": true
},
"extras": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
]
},
"StreamEventLoopNext": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"node_id": {
"type": "string"
},
"node_type": {
"type": "string"
},
"title": {
"type": "string"
},
"index": {
"type": "integer",
"description": "現在のループイテレーションインデックス(ゼロベース)です。"
},
"created_at": {
"type": "integer",
"format": "int64"
},
"pre_loop_output": {
"description": "前回のループイテレーションからの出力です。",
"nullable": true
},
"extras": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
]
},
"StreamEventLoopCompleted": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"node_id": {
"type": "string"
},
"node_type": {
"type": "string"
},
"title": {
"type": "string"
},
"outputs": {
"type": "object",
"additionalProperties": true,
"nullable": true
},
"outputs_truncated": {
"type": "boolean",
"description": "`outputs` データが切り詰められたかどうかです。"
},
"inputs": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "ループの入力変数です。"
},
"inputs_truncated": {
"type": "boolean",
"description": "`inputs` データが切り捨てられたかどうかです。"
},
"created_at": {
"type": "integer",
"format": "int64"
},
"extras": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "ループの追加メタデータです。"
},
"status": {
"type": "string",
"description": "ループの完了ステータスです。"
},
"error": {
"type": "string",
"nullable": true
},
"elapsed_time": {
"type": "number",
"format": "float"
},
"total_tokens": {
"type": "integer"
},
"execution_metadata": {
"type": "object",
"additionalProperties": true,
"description": "トークン使用量を含む実行メタデータです。"
},
"finished_at": {
"type": "integer",
"format": "int64"
},
"steps": {
"type": "integer",
"description": "完了したループイテレーション数です。"
}
}
}
}
}
]
},
"StreamEventReasoningChunk": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"reasoning": {
"type": "string",
"description": "`reasoning_format` が `separated` の LLM ノードが発行する思考過程のデルタです。連続する `reasoning_chunk` イベントを連結すると、完全な推論を復元できます。このストリームは `text_chunk` と並行しており、`text` ストリームには `<think>` タグが含まれません。"
},
"node_id": {
"type": "string",
"nullable": true,
"description": "推論を生成している LLM ノードの ID です。複数の LLM ノードが実行される場合に、推論の出所を特定できます。"
},
"is_final": {
"type": "boolean",
"description": "`true` は LLM ノードの推論フェーズの終了(「思考完了」のシグナル)を示します。空の `reasoning` を伴う場合があります。"
}
}
}
}
}
]
},
"StreamEventTextChunk": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "テキスト内容のチャンクです。"
},
"from_variable_selector": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true,
"description": "ワークフロー内のテキスト変数のソースパスです。"
}
}
}
}
}
]
},
"StreamEventWorkflowFinished": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/WorkflowFinishedData"
}
}
}
]
},
"StreamEventTtsMessage": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"audio": {
"type": "string",
"format": "byte",
"description": "Base64 エンコードされた MP3 音声チャンク。すべてのチャンクを順番にデコードして連結すると、完全な音声ファイルが生成されます。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "このオーディオチャンクが生成された Unix タイムスタンプです。"
}
}
}
]
},
"StreamEventTtsMessageEnd": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"audio": {
"type": "string",
"description": "空の文字列。音声ストリームの終了を示します。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "音声ストリームが終了した Unix タイムスタンプです。"
}
}
}
]
},
"StreamEventError": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"status": {
"type": "integer",
"description": "エラーの HTTP ステータスコードです。"
},
"code": {
"type": "string",
"description": "エラーコード。"
},
"message": {
"type": "string",
"description": "エラーメッセージ。"
}
}
}
]
},
"StreamEventPing": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"type": "object",
"description": "キープアライブ ping イベントです。追加プロパティはありません。"
}
]
},
"WorkflowFinishedData": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ワークフロー実行 ID です。"
},
"workflow_id": {
"type": "string",
"format": "uuid",
"description": "Workflow ID."
},
"status": {
"type": "string",
"description": "ワークフローの実行ステータスです。`running` は実行中、`succeeded` は正常完了、`failed` は実行エラー、`stopped` は手動停止、`partial-succeeded` は一部のノードが成功し他が失敗、`paused` は人間の入力待ちを示します。"
},
"outputs": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "ワークフローからの出力データです。"
},
"error": {
"type": "string",
"nullable": true,
"description": "ワークフローが失敗した場合のエラーメッセージです。"
},
"elapsed_time": {
"type": "number",
"format": "float",
"description": "合計経過時間(秒)です。"
},
"total_tokens": {
"type": "integer",
"description": "全ノードで消費された合計トークン数です。"
},
"total_steps": {
"type": "integer",
"description": "実行されたワークフローの合計ステップ数です。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "ワークフロー実行が作成された Unix タイムスタンプです。"
},
"finished_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "ワークフロー実行が完了した Unix タイムスタンプです。"
},
"created_by": {
"type": "object",
"additionalProperties": true,
"description": "作成者情報です。ストリーミングの `workflow_finished` イベントにのみ存在します。"
},
"exceptions_count": {
"type": "integer",
"nullable": true,
"description": "実行中に発生した例外の数です。ストリーミングの `workflow_finished` イベントにのみ含まれます。"
},
"files": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"nullable": true,
"description": "ワークフロー実行中に生成されたファイルです。ストリーミングの `workflow_finished` イベントにのみ存在します。"
}
}
},
"WorkflowRunDetailResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ワークフロー実行 ID です。"
},
"workflow_id": {
"type": "string",
"format": "uuid",
"description": "Workflow ID."
},
"status": {
"type": "string",
"description": "ワークフローの実行ステータスです。`running` は実行中、`succeeded` は正常完了、`failed` は実行エラー、`stopped` は手動停止、`partial-succeeded` は一部のノードが成功し他が失敗、`paused` は人間の入力待ちを示します。"
},
"inputs": {
"type": "string",
"nullable": true,
"description": "ワークフロー実行の入力変数です。生の JSON 文字列として返されるため(例:`{\"query\": \"...\"}`)、クライアント側でパースする必要があります。`null` の場合もあります。"
},
"outputs": {
"type": "object",
"additionalProperties": true,
"description": "ワークフローからの出力データです。出力がまだない場合は空のオブジェクトです。"
},
"error": {
"type": "string",
"nullable": true,
"description": "ワークフローが失敗した場合のエラーメッセージです。"
},
"total_steps": {
"type": "integer",
"description": "実行されたワークフローの合計ステップ数です。"
},
"total_tokens": {
"type": "integer",
"description": "消費された合計トークン数です。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "ワークフロー実行が作成された Unix タイムスタンプです。"
},
"finished_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "ワークフロー実行が完了した Unix タイムスタンプです。"
},
"elapsed_time": {
"type": "number",
"format": "float",
"nullable": true,
"description": "合計経過時間(秒)です。"
}
}
},
"FileUploadResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "一意のファイル ID。"
},
"name": {
"type": "string",
"description": "ファイル名。"
},
"size": {
"type": "integer",
"description": "ファイルサイズ(バイト)。"
},
"extension": {
"type": "string",
"nullable": true,
"description": "ファイル拡張子。"
},
"mime_type": {
"type": "string",
"nullable": true,
"description": "ファイルの MIME タイプ。"
},
"created_by": {
"type": "string",
"format": "uuid",
"nullable": true,
"description": "ファイルをアップロードしたユーザーの ID。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "アップロードタイムスタンプ(Unix エポック秒)。"
},
"preview_url": {
"type": "string",
"nullable": true,
"description": "ファイルのプレビュー URL。"
},
"source_url": {
"type": "string",
"description": "ファイルの署名付きダウンロード URL です。"
},
"original_url": {
"type": "string",
"nullable": true,
"description": "ファイルの元の URL。"
},
"user_id": {
"type": "string",
"format": "uuid",
"nullable": true,
"description": "未使用です。常に `null` になります。"
},
"tenant_id": {
"type": "string",
"format": "uuid",
"nullable": true,
"description": "関連付けられたテナントの ID。"
},
"conversation_id": {
"type": "string",
"format": "uuid",
"nullable": true,
"description": "関連付けられた会話の ID。"
},
"file_key": {
"type": "string",
"nullable": true,
"description": "未使用です。常に `null` になります。"
}
}
},
"EndUserDetail": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "エンドユーザー ID。"
},
"tenant_id": {
"type": "string",
"format": "uuid",
"description": "テナント ID。"
},
"app_id": {
"type": "string",
"format": "uuid",
"nullable": true,
"description": "アプリケーション ID。"
},
"type": {
"type": "string",
"description": "エンドユーザーのタイプ。Service API ユーザーの場合は常に `service_api` です。"
},
"external_user_id": {
"type": "string",
"nullable": true,
"description": "API リクエストで提供された `user` 識別子です(例:[チャットメッセージを送信](/api-reference/チャットメッセージ/チャットメッセージを送信) の `user` フィールド)。"
},
"name": {
"type": "string",
"nullable": true,
"description": "エンドユーザー名。"
},
"is_anonymous": {
"type": "boolean",
"description": "ユーザーが匿名かどうかを示します。元の API リクエストで `user` 識別子が提供されなかった場合、`true` になります。"
},
"session_id": {
"type": "string",
"description": "セッション識別子。デフォルトは `external_user_id` の値です。"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "作成タイムスタンプ。"
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "最終更新タイムスタンプ。"
}
}
},
"WorkflowLogsResponse": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"description": "現在のページ番号です。"
},
"limit": {
"type": "integer",
"description": "1 ページあたりの件数です。"
},
"total": {
"type": "integer",
"description": "ログエントリの合計数です。"
},
"has_more": {
"type": "boolean",
"description": "さらにページがあるかどうかです。"
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkflowLogItem"
},
"description": "ワークフローログエントリのリストです。"
}
}
},
"WorkflowLogItem": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ログエントリ ID です。"
},
"workflow_run": {
"$ref": "#/components/schemas/WorkflowRunSummary"
},
"created_from": {
"type": "string",
"description": "ワークフロー実行のソース(例:`service-api`)です。"
},
"created_by_role": {
"type": "string",
"description": "作成者のロール(例:`end_user`、`account`)です。"
},
"created_by_account": {
"type": "object",
"nullable": true,
"description": "管理者ユーザーが作成した場合のアカウント詳細です。",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "アカウント ID。"
},
"name": {
"type": "string",
"description": "アカウント表示名。"
},
"email": {
"type": "string",
"description": "アカウントメールアドレス。"
}
}
},
"created_by_end_user": {
"$ref": "#/components/schemas/EndUserSummary"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "ログエントリが作成された Unix タイムスタンプです。"
},
"details": {
"type": "object",
"additionalProperties": true,
"nullable": true,
"description": "ログエントリの追加詳細です。"
}
}
},
"WorkflowRunSummary": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "ワークフロー実行 ID です。"
},
"version": {
"type": "string",
"description": "ワークフローバージョン識別子です。"
},
"status": {
"type": "string",
"description": "ワークフローの実行ステータスです。`running` は実行中、`succeeded` は正常完了、`failed` は実行エラー、`stopped` は手動停止、`partial-succeeded` は一部のノードが成功し他が失敗、`paused` は人間の入力待ちを示します。"
},
"error": {
"type": "string",
"nullable": true,
"description": "ワークフローが失敗した場合のエラーメッセージです。"
},
"elapsed_time": {
"type": "number",
"format": "float",
"description": "合計経過時間(秒)です。"
},
"total_tokens": {
"type": "integer",
"description": "消費された合計トークン数です。"
},
"total_steps": {
"type": "integer",
"description": "実行されたワークフローの合計ステップ数です。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "ワークフロー実行が作成された Unix タイムスタンプです。"
},
"finished_at": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "ワークフロー実行が完了した Unix タイムスタンプです。"
},
"exceptions_count": {
"type": "integer",
"description": "実行中に発生した例外の数です。"
},
"triggered_from": {
"type": "string",
"description": "ワークフロー実行をトリガーしたソースです。`app-run` はアプリまたは API からの実行、`webhook` は Webhook トリガーによる実行、`schedule` はスケジュールトリガーによる実行を示します、`plugin` はプラグイントリガーによる実行を示します。"
}
}
},
"EndUserSummary": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "エンドユーザー ID。"
},
"type": {
"type": "string",
"description": "エンドユーザーの種類です。"
},
"is_anonymous": {
"type": "boolean",
"description": "エンドユーザーが匿名かどうかです。"
},
"session_id": {
"type": "string",
"description": "セッション識別子です。"
}
}
},
"AudioToTextRequest": {
"type": "object",
"description": "音声からテキストへの変換のリクエストボディ。",
"required": [
"file"
],
"properties": {
"file": {
"type": "string",
"format": "binary",
"description": "音声ファイルです。MIME タイプで検証され、`audio/mp3`、`audio/m4a`、`audio/wav`、`audio/amr`、`audio/mpga` のいずれかである必要があります。上限:`30 MB`。"
},
"user": {
"type": "string",
"description": "ユーザー識別子。"
}
}
},
"AudioToTextResponse": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "音声認識からの出力テキスト。"
}
}
},
"TextToAudioRequest": {
"type": "object",
"description": "テキストから音声への変換のリクエストボディ。`message_id` または `text` のいずれかを指定してください。",
"properties": {
"message_id": {
"type": "string",
"format": "uuid",
"description": "メッセージ ID です。両方が指定された場合、`text` よりも優先されます。"
},
"text": {
"type": "string",
"description": "変換する音声コンテンツ。"
},
"user": {
"type": "string",
"description": "ユーザー識別子。"
},
"voice": {
"type": "string",
"description": "テキスト読み上げに使用する音声。利用可能な音声は、このアプリに設定された TTS プロバイダーによって異なります。デフォルトには[アプリケーションのパラメータ情報を取得](/api-reference/アプリケーション設定/アプリケーションのパラメータ情報を取得) → `text_to_speech.voice` の `voice` 値を使用してください。"
},
"streaming": {
"type": "boolean",
"description": "ストリーミングレスポンスを有効にするかどうか。"
}
}
},
"AppInfoResponse": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "アプリケーション名。"
},
"description": {
"type": "string",
"description": "アプリケーションの説明。"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "アプリケーションタグ。"
},
"mode": {
"type": "string",
"description": "アプリケーションモード。`completion` はテキスト生成アプリ、`chat` は基本チャットアプリ、`agent-chat` はエージェントベースのアプリ、`advanced-chat` は Chatflow アプリ、`workflow` は Workflow アプリです。"
},
"author_name": {
"type": "string",
"description": "アプリケーション作成者の名前。"
}
}
},
"WorkflowAppParametersResponse": {
"type": "object",
"properties": {
"opening_statement": {
"type": "string",
"nullable": true,
"description": "オープニングステートメントのテキストです。"
},
"suggested_questions": {
"type": "array",
"items": {
"type": "string"
},
"description": "提案された質問のリストです。"
},
"suggested_questions_after_answer": {
"type": "object",
"description": "回答後の提案質問の設定です。",
"properties": {
"enabled": {
"type": "boolean",
"description": "この機能が有効かどうか。"
}
}
},
"speech_to_text": {
"type": "object",
"description": "音声テキスト変換機能の設定です。",
"properties": {
"enabled": {
"type": "boolean",
"description": "この機能が有効かどうか。"
}
}
},
"text_to_speech": {
"type": "object",
"description": "テキスト音声変換機能の設定です。",
"properties": {
"enabled": {
"type": "boolean",
"description": "この機能が有効かどうか。"
},
"voice": {
"type": "string",
"description": "TTS 音声識別子。"
},
"language": {
"type": "string",
"description": "TTS 言語。"
},
"autoPlay": {
"type": "string",
"description": "自動再生設定です。音声を自動再生するには `enabled`、手動再生を要求するには `disabled` を指定します。"
}
}
},
"retriever_resource": {
"type": "object",
"description": "ナレッジ検索の引用リソース設定です。",
"properties": {
"enabled": {
"type": "boolean",
"description": "この機能が有効かどうか。"
}
}
},
"annotation_reply": {
"type": "object",
"description": "アノテーション返信機能の設定です。",
"properties": {
"enabled": {
"type": "boolean",
"description": "この機能が有効かどうか。"
}
}
},
"more_like_this": {
"type": "object",
"description": "類似コンテンツ機能の設定です。",
"properties": {
"enabled": {
"type": "boolean",
"description": "この機能が有効かどうか。"
}
}
},
"sensitive_word_avoidance": {
"type": "object",
"description": "コンテンツモデレーション機能の設定です。",
"properties": {
"enabled": {
"type": "boolean",
"description": "この機能が有効かどうか。"
}
}
},
"user_input_form": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"title": "Text Input",
"type": "object",
"properties": {
"text-input": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "入力フィールドの表示ラベルです。"
},
"variable": {
"type": "string",
"description": "ワークフローで使用される変数名です。"
},
"required": {
"type": "boolean",
"description": "このフィールドが必須かどうかです。"
},
"default": {
"type": "string",
"description": "入力フィールドのデフォルト値です。"
}
}
}
}
},
{
"title": "Paragraph",
"type": "object",
"properties": {
"paragraph": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "段落フィールドの表示ラベルです。"
},
"variable": {
"type": "string",
"description": "ワークフローで使用される変数名です。"
},
"required": {
"type": "boolean",
"description": "このフィールドが必須かどうかです。"
},
"default": {
"type": "string",
"description": "段落フィールドのデフォルト値です。"
}
}
}
}
},
{
"title": "Select",
"type": "object",
"properties": {
"select": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "セレクトフィールドの表示ラベルです。"
},
"variable": {
"type": "string",
"description": "ワークフローで使用される変数名です。"
},
"required": {
"type": "boolean",
"description": "このフィールドが必須かどうかです。"
},
"default": {
"type": "string",
"description": "デフォルトで選択される値。"
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"description": "このフォームコントロールの選択可能な値のリスト。"
}
}
}
}
}
]
},
"description": "ユーザー入力フォームの設定です。"
},
"file_upload": {
"type": "object",
"description": "ファイルアップロードの設定。",
"properties": {
"image": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "画像アップロードが有効かどうか。"
},
"number_limits": {
"type": "integer",
"description": "アップロード可能な画像の最大数です。"
},
"detail": {
"type": "string",
"description": "ビジョンモデルの画像詳細レベルです。"
},
"transfer_methods": {
"type": "array",
"items": {
"type": "string"
},
"description": "画像アップロードで許可される転送方法です。`remote_url` はファイル URL 経由、`local_file` はアップロード済みファイルを示します。"
}
}
}
}
},
"system_parameters": {
"type": "object",
"description": "システムレベルのパラメータ制限です。",
"properties": {
"file_size_limit": {
"type": "integer",
"description": "一般ファイルの最大サイズ(MB)です。"
},
"image_file_size_limit": {
"type": "integer",
"description": "最大画像ファイルサイズ(MB)。"
},
"audio_file_size_limit": {
"type": "integer",
"description": "最大音声ファイルサイズ(MB)。"
},
"video_file_size_limit": {
"type": "integer",
"description": "最大動画ファイルサイズ(MB)。"
},
"workflow_file_upload_limit": {
"type": "integer",
"description": "ワークフロー実行ごとの最大ファイル数です。"
}
}
}
}
},
"ToolIconDetail": {
"type": "object",
"properties": {
"background": {
"type": "string",
"description": "ツールアイコンの背景色です。"
},
"content": {
"type": "string",
"description": "絵文字またはアイコンの内容です。"
}
}
},
"AppMetaResponse": {
"type": "object",
"properties": {
"tool_icons": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"title": "Icon URL",
"type": "string",
"format": "url",
"description": "アイコンの URL。"
},
{
"$ref": "#/components/schemas/ToolIconDetail"
}
]
},
"description": "ツールアイコン。キーはツール名です。"
}
}
},
"WebAppSettingsResponse": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "WebApp タイトル。"
},
"chat_color_theme": {
"type": "string",
"description": "チャットカラーテーマ。"
},
"chat_color_theme_inverted": {
"type": "boolean",
"description": "チャットカラーテーマが反転しているかどうか。"
},
"icon_type": {
"type": "string",
"description": "使用されるアイコンのタイプ。`emoji` は絵文字アイコン、`image` はアップロードされた画像アイコンです。"
},
"icon": {
"type": "string",
"description": "アイコンのコンテンツ(絵文字または画像 ID)。"
},
"icon_background": {
"type": "string",
"description": "アイコンの背景色。"
},
"icon_url": {
"type": "string",
"format": "url",
"nullable": true,
"description": "アイコン画像の URL。"
},
"description": {
"type": "string",
"description": "WebApp の説明。"
},
"copyright": {
"type": "string",
"description": "著作権テキスト。"
},
"privacy_policy": {
"type": "string",
"description": "プライバシーポリシー URL。"
},
"custom_disclaimer": {
"type": "string",
"description": "カスタム免責事項テキスト。"
},
"default_language": {
"type": "string",
"description": "デフォルト言語コード。"
},
"show_workflow_steps": {
"type": "boolean",
"description": "ワークフローステップを表示するかどうか。"
},
"use_icon_as_answer_icon": {
"type": "boolean",
"description": "アプリアイコンを回答アイコンとして使用するかどうか。"
}
}
},
"StreamEventWorkflowPaused": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"workflow_run_id": {
"type": "string",
"format": "uuid",
"description": "このワークフロー実行記録の永続的な識別子です。[ワークフロー実行詳細を取得](/api-reference/ワークフロー/ワークフロー実行詳細を取得) と組み合わせて、実行後に結果を取得します。"
},
"paused_nodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "一時停止中のノード ID のリストです。"
},
"outputs": {
"type": "object",
"additionalProperties": true,
"description": "一時停止時の部分的な出力です。"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "一時停止の理由です。"
},
"status": {
"type": "string",
"description": "ワークフローの実行ステータスです。"
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "作成タイムスタンプ。"
},
"elapsed_time": {
"type": "number",
"format": "float",
"description": "合計経過時間(秒)です。"
},
"total_tokens": {
"type": "integer",
"description": "消費された合計トークン数です。"
},
"total_steps": {
"type": "integer",
"description": "実行された合計ステップ数です。"
}
}
}
}
}
]
},
"StreamEventAgentLog": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"node_execution_id": {
"type": "string",
"description": "ノード実行 ID です。"
},
"id": {
"type": "string",
"description": "エージェントログエントリ ID です。"
},
"label": {
"type": "string",
"description": "Log label."
},
"parent_id": {
"type": "string",
"nullable": true,
"description": "親ログエントリ ID です。"
},
"error": {
"type": "string",
"nullable": true,
"description": "エージェントステップが失敗した場合のエラーメッセージです。"
},
"status": {
"type": "string",
"description": "エージェントステップのステータスです。"
},
"data": {
"type": "object",
"additionalProperties": true,
"description": "エージェントステップのデータです。"
},
"metadata": {
"type": "object",
"additionalProperties": true,
"description": "エージェントステップのメタデータです。"
},
"node_id": {
"type": "string",
"description": "Node ID."
}
}
}
}
}
]
},
"StreamEventHumanInputRequired": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"form_id": {
"type": "string",
"description": "フォームインスタンスの識別子。エラーメッセージやログに含まれます。Service API の呼び出しには `form_token` を使用してください。"
},
"node_id": {
"type": "string",
"description": "このフォームを生成した Human Input ノードの ID。"
},
"node_title": {
"type": "string",
"description": "Human Input ノードの表示タイトル。"
},
"form_content": {
"type": "string",
"description": "ワークフロー変数が置換された、事前レンダリング済みのフォーム本文。"
},
"inputs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "フォーム入力コントロールの種類。使用可能な値:`paragraph`(複数行テキスト)、`select`(リストからの単一選択)、`file`(単一ファイルのアップロード)、`file-list`(複数ファイルのアップロード)。"
},
"output_variable_name": {
"type": "string",
"description": "この入力の送信値をワークフロー内で参照する変数名。送信時の `inputs` オブジェクトのキーに対応します。"
},
"default": {
"type": "object",
"nullable": true,
"description": "ワークフローコンテキストから解決されるデフォルト値。デフォルトが設定されていない場合は `null`。",
"properties": {
"type": {
"type": "string",
"description": "デフォルト値のソース。`constant` は `value` をリテラル文字列として使用します。`variable` は `selector` がワークフロー変数を指します。"
},
"selector": {
"type": "array",
"items": {
"type": "string"
},
"description": "`type` が `variable` の場合の変数参照パス(例:`[\"node_id\", \"var_name\"]`)。少なくとも 2 要素を含みます。"
},
"value": {
"type": "string",
"description": "`type` が `constant` の場合のリテラルデフォルト値。常に文字列です。"
}
}
}
}
},
"description": "受信者が記入するフォーム入力フィールド。"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 20,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"description": "アクションボタンの識別子。受信者がこのボタンを選択したら、`action` として [人間の入力フォームを送信](/api-reference/人間の入力/人間の入力フォームを送信) に渡します。"
},
"title": {
"type": "string",
"maxLength": 100,
"description": "受信者に表示されるボタンのラベル。"
},
"button_style": {
"type": "string",
"description": "ボタンの視覚スタイル。使用可能な値:`primary`、`default`、`accent`、`ghost`。"
}
}
},
"description": "送信時に受信者が選択できるアクション(ボタン)。"
},
"display_in_ui": {
"type": "boolean",
"description": "フォームが Dify コンソール UI にも表示されるかどうか。"
},
"form_token": {
"type": "string",
"nullable": true,
"description": "[人間の入力フォームを取得](/api-reference/人間の入力/人間の入力フォームを取得) と [人間の入力フォームを送信](/api-reference/人間の入力/人間の入力フォームを送信) のアクセストークン。人間の入力ノードがメール配信またはコンソール配信を使用する場合は `null` になります(Service API は WebApp 配信のフォームのみ操作できます)。"
},
"resolved_default_values": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "入力の `output_variable_name` をキーとする事前入力デフォルト値。すべての値は文字列化されます。"
},
"expiration_time": {
"type": "integer",
"format": "int64",
"description": "Unix タイムスタンプ(秒)。これを過ぎるとフォームは送信できなくなります。"
}
}
}
}
}
]
},
"StreamEventHumanInputFormFilled": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"node_id": {
"type": "string",
"description": "フォームが記入された Human Input ノードの ID。"
},
"node_title": {
"type": "string",
"description": "Human Input ノードの表示タイトル。"
},
"rendered_content": {
"type": "string",
"description": "受信者の入力値で描画されたフォーム本文(`human_input_required` の `form_content` は未入力のテンプレートです)。"
},
"action_id": {
"type": "string",
"description": "受信者が選択したアクションの識別子([人間の入力フォームを送信](/api-reference/人間の入力/人間の入力フォームを送信) に渡された `action` の値と一致します)。"
},
"action_text": {
"type": "string",
"description": "選択されたアクションの表示テキスト。"
}
}
}
}
}
]
},
"StreamEventHumanInputFormTimeout": {
"allOf": [
{
"$ref": "#/components/schemas/ChunkWorkflowEvent"
},
{
"$ref": "#/components/schemas/StreamEventBase"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"node_id": {
"type": "string",
"description": "フォームが期限切れとなった Human Input ノードの ID。"
},
"node_title": {
"type": "string",
"description": "Human Input ノードの表示タイトル。"
},
"expiration_time": {
"type": "integer",
"format": "int64",
"description": "Unix タイムスタンプ(秒)。フォームが期限切れとなった時刻。"
}
}
}
}
}
]
}
}
},
"tags": [
{
"name": "ワークフロー",
"description": "ワークフローの実行と管理のための操作です。"
},
{
"name": "ファイル操作",
"description": "ファイルのアップロード操作です。"
},
{
"name": "エンドユーザー",
"description": "エンドユーザー情報に関連する操作です。"
},
{
"name": "音声・テキスト変換",
"description": "音声からテキストおよびテキストから音声への変換です。"
},
{
"name": "アプリケーション設定",
"description": "アプリケーションの設定、パラメータ、メタデータです。"
},
{
"name": "人間の入力",
"description": "人間の入力を要する一時停止中のワークフローの再開操作です。"
}
]
}