Replaces the entire flow definition with a new one. This operation is only
allowed for flows in ‘draft’ status. Creates a new version of the flow.
Restrictions
Only flows with status ‘draft’ can be updated
Published flows cannot be modified
A new version is created with each update
Validation
New definition is validated before applying
If validation fails, the original definition remains unchanged
Use include_validation_errors=true to see validation details
Concurrent writers
Send expected_revision (the revision of the flow you read) so a save never
overwrites a change made since, for example by an agent: a stale value returns
409 revision_conflict and saves nothing
Include topologically sorted list of task names in execution order. Useful for visualizing task dependencies. Adds ~50ms latency for complex flows with 20+ tasks.
Include DSL validation errors if the flow definition is malformed. Essential for debugging invalid flows during development. No performance impact as validation runs regardless.
Include runtime configuration options for each task (e.g., dropdown values, available resources). Requires authentication to external services. May add 100-500ms latency depending on integration APIs.
Include JSON Schema definitions for input task executors' input structure. Calls get_input_model() to generate dynamic input schemas for form building.
Include each task's default reference modes (single/collection) as the task-level 'default_reference_modes' property. Lets the UI show the resolved default instead of an ambiguous 'Default' option. Cheap to compute.
Flow definition in DSL format. The definition contains a 'flow' metadata object and a 'flow_configs' array with task configurations. Each task has a unique 'name' (UUID), 'task_executor_name' (the task type), 'task_title' (display name), 'parameters' (executor-specific config), and optional 'visual_properties' for UI layout. Tasks reference upstream outputs using '{{task_name.output_field}}' template syntax in their parameters to define dependencies.
Optional. The revision of the flow this write is based on, from the FlowResponse you last read or saved. When set, the write applies only if the latest version is still at that revision, checked under the flow lock; otherwise nothing is saved and the response is 409 with code revision_conflict and details.current_revision. Reload the flow, re-apply your change and retry. When omitted, the write applies on top of whatever is latest (last writer wins).
Response
Flow definition successfully updated
Response model for a flow object.
Represents a complete flow definition with metadata, execution statistics,
and optional computed fields. Use query parameters to include additional
fields that require extra processing.
Expansion Parameters
Control which computed fields are included using these query parameters:
include_ordered_task_names: Adds task_names field with topological sort
include_validation_errors: Adds validation_errors field if flow is invalid
include_dynamic_data: Enriches each task in definition with runtime config options
include_output_schemas: Enriches each task in definition with JSON schema
Performance Considerations
Each expansion parameter adds processing overhead. Only request fields you need:
Complete flow definition in DSL format. May be enriched with additional fields when using expansion parameters (include_dynamic_data, include_output_schemas). Enriched fields are added to each task within definition.tasks[].
Opaque token for the stored state of this flow version: <version>:<hash of the stored definition>. It changes on every definition write, including saves that keep the version (task moves, retitles). Send it back as expected_revision on PUT /definition, PUT /task or POST /versions/{version}/restore to save only if nobody changed the flow since you read it; a stale value returns 409 revision_conflict. Never stored; not affected by expansion parameters.
Number of queued, running or awaiting-input runs that hold a Human In The Loop task (either HITL task type) that is still pending or in progress. Runs paused for other input, such as webhook data, are not counted. Populated by the flows list; null when the caller's role cannot read review tasks.
Number of awaiting-input runs without an open Human In The Loop task, such as runs waiting on webhook data. Populated by the flows list; null when the caller's role cannot read review tasks.
Number of runs that failed, were cancelled or are being cancelled, or that have a failed task (such a run still ends completed unless the flow fails executions on task errors). Populated by the flows list when include_error_executions_count=true or sorting by it.
When any non-deleted run of this flow was last created or updated — the flow's last processing activity. Null when the flow has never run. Populated by the flows list.
Number of executions on the most recent flow version that has any runs — the dataset calibration samples. Only included when include_latest_version_executions_count=true.
Topologically sorted list of task names in execution order. Only included when include_ordered_task_names=true. Useful for visualizing task dependencies and execution flow.
DSL validation errors if the flow definition is malformed. Only included when include_validation_errors=true. Empty list indicates a valid flow. Each error contains location and message details.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SuperAI Flows","description":"Build reliable, scalable workflows that orchestrate AI models, data processing, and business logic through a simple API.","colors":{"primary":"#7443ff","light":"#9775f7","dark":"#6c40f5"},"logo":{"light":"https://mintcdn.com/superai-flows-docs/mOFmLJuUNWWCPrgW/logo/light.svg?fit=max\u0026auto=format\u0026n=mOFmLJuUNWWCPrgW\u0026q=85\u0026s=763a91d73e6886f99fbebba85459ee15","dark":"https://mintcdn.com/superai-flows-docs/mOFmLJuUNWWCPrgW/logo/dark.svg?fit=max\u0026auto=format\u0026n=mOFmLJuUNWWCPrgW\u0026q=85\u0026s=5e03ccaedeb7b9890d260cd5f28ba690","href":"https://flows.super.ai"},"favicon":"https://mintcdn.com/superai-flows-docs/mOFmLJuUNWWCPrgW/favicon.png?fit=max\u0026auto=format\u0026n=mOFmLJuUNWWCPrgW\u0026q=85\u0026s=a54a72f5610b7af45f895302bd9fec95","navbar":{"links":[{"href":"mailto:support@super.ai","label":"Support"},{"href":"https://status.super.ai","label":"Status"}],"primary":{"type":"button","label":"Dashboard","href":"https://flows.super.ai"}},"footer":{"socials":{"website":"https://super.ai","x":"https://x.com/mysuperai","linkedin":"https://www.linkedin.com/company/mysuperai"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"superai-flows-docs","hasAudioNarration":false,"actualSubdomain":"superai-flows-docs","customDomains":["docs.flows.super.ai"],"gitSource":{"type":"github","owner":"mysuperai","repo":"superai-flows-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"4c020797-e5c5-4927-8e18-f9ead2828ae7","liveDeploymentHistoryId":"6adb511a124faf20fe6181b8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb511a124faf20fe6181b8"},"entitlements":{},"buildId":"6adb511a124faf20fe6181b8","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":159},{"language":"default","tag":"Endpoints","count":155},{"language":"default","tag":"integrations","count":37},{"language":"default","tag":"flows","count":31},{"language":"default","tag":"organizations","count":15},{"language":"default","tag":"plugins","count":11},{"language":"default","tag":"auth","count":9},{"language":"default","tag":"service-accounts","count":9},{"language":"default","tag":"flow-executions","count":8},{"language":"default","tag":"human-review-tasks","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/flows/update-flow-definition","slug":"/api-reference/flows/update-flow-definition","pageMetadata":{"title":"Update flow definition","description":"Update the complete definition of a flow.\n\nReplaces the entire flow definition with a new one. This operation is only\nallowed for flows in 'draft' status. Creates a new version of the flow.\n\n## Restrictions\n- Only flows with status 'draft' can be updated\n- Published flows cannot be modified\n- A new version is created with each update\n\n## Validation\n- New definition is validated before applying\n- If validation fails, the original definition remains unchanged\n- Use `include_validation_errors=true` to see validation details\n\n## Concurrent writers\n- Send `expected_revision` (the `revision` of the flow you read) so a save never\n overwrites a change made since, for example by an agent: a stale value returns\n 409 `revision_conflict` and saves nothing\n- Without it the save is last-writer-wins","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/definition","href":"/api-reference/flows/update-flow-definition","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h2: \"h2\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Update the complete definition of a flow.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Replaces the entire flow definition with a new one. This operation is only\\nallowed for flows in ‘draft’ status. Creates a new version of the flow.\"\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Restrictions\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Only flows with status ‘draft’ can be updated\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Published flows cannot be modified\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"A new version is created with each update\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Validation\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"New definition is validated before applying\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"If validation fails, the original definition remains unchanged\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Use \", _jsx(_components.code, {\n children: \"include_validation_errors=true\"\n }), \" to see validation details\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Concurrent writers\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Send \", _jsx(_components.code, {\n children: \"expected_revision\"\n }), \" (the \", _jsx(_components.code, {\n children: \"revision\"\n }), \" of the flow you read) so a save never\\noverwrites a change made since, for example by an agent: a stale value returns\\n409 \", _jsx(_components.code, {\n children: \"revision_conflict\"\n }), \" and saves nothing\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Without it the save is last-writer-wins\"\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update flow definition","description":"Update the complete definition of a flow.\n\nReplaces the entire flow definition with a new one. This operation is only\nallowed for flows in 'draft' status. Creates a new version of the flow.\n\n## Restrictions\n- Only flows with status 'draft' can be updated\n- Published flows cannot be modified\n- A new version is created with each update\n\n## Validation\n- New definition is validated before applying\n- If validation fails, the original definition remains unchanged\n- Use `include_validation_errors=true` to see validation details\n\n## Concurrent writers\n- Send `expected_revision` (the `revision` of the flow you read) so a save never\n overwrites a change made since, for example by an agent: a stale value returns\n 409 `revision_conflict` and saves nothing\n- Without it the save is last-writer-wins","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/definition","href":"/api-reference/flows/update-flow-definition","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Update the complete definition of a flow.\n\nReplaces the entire flow definition with a new one. This operation is only\nallowed for flows in 'draft' status. Creates a new version of the flow.\n\n## Restrictions\n- Only flows with status 'draft' can be updated\n- Published flows cannot be modified\n- A new version is created with each update\n\n## Validation\n- New definition is validated before applying\n- If validation fails, the original definition remains unchanged\n- Use `include_validation_errors=true` to see validation details\n\n## Concurrent writers\n- Send `expected_revision` (the `revision` of the flow you read) so a save never\n overwrites a change made since, for example by an agent: a stale value returns\n 409 `revision_conflict` and saves nothing\n- Without it the save is last-writer-wins","operationId":"update_flow_definition_api_flows__flow_id__definition_put","parameters":["f797eca8-4ef8-43f9-a237-877cb880fb96","a41b82d0-7a39-4f1b-aecc-0f6aaecebacd","16905088-b8f7-4b06-859f-eba425b3b81f","47e839c9-e863-4f9c-8c80-7dc776ee3898","3bd0d29e-be55-48f2-b9da-83bc99124455","c2dc1512-3e55-499d-8a93-27774d14f456","c934031b-2763-497b-8edf-78e0537e14c9"],"requestBody":"b86211c3-a879-4764-824b-537803c3aa0b","responses":{"200":"f200dbad-6e8f-4f55-bd92-e2e00f91bc55","400":"4deb230d-3e79-4279-9d1e-6c693bbef5d9","401":"fa707669-daf9-4df4-9e79-35d3e7c45caf","403":"c249d107-f937-4073-bce2-45df6321c43a","404":"8314eaa8-6efd-43d6-899c-ee79b5014634","409":"9ae9781f-5e75-44e0-8d95-65ba6fd90165","422":"1da22fa3-2603-44ef-9d2b-3f15e1083fcf"},"security":["e02d60f3-7879-49ab-9110-6611d05ef532","91f0147a-6ffb-4301-9845-ffb1fd81eaaa"],"summary":"Update flow definition","tags":["flows"],"method":"put","type":"path","servers":["4d0b7ba2-10f8-42a9-8f2d-c56b9c660af5"],"path":"/api/flows/{flow_id}/definition","baseUrlOptions":["https://flows.super.ai"],"title":"Update flow definition","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"f797eca8-4ef8-43f9-a237-877cb880fb96":{"in":"path","name":"flow_id","required":true,"schema":{"format":"uuid","title":"Flow Id","type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"a41b82d0-7a39-4f1b-aecc-0f6aaecebacd":{"description":"Include topologically sorted list of task names in execution order. Useful for visualizing task dependencies. Adds ~50ms latency for complex flows with 20+ tasks.","in":"query","name":"include_ordered_task_names","required":false,"schema":{"default":false,"description":"Include topologically sorted list of task names in execution order. Useful for visualizing task dependencies. Adds ~50ms latency for complex flows with 20+ tasks.","title":"Include Ordered Task Names","type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"}},"16905088-b8f7-4b06-859f-eba425b3b81f":{"description":"Include DSL validation errors if the flow definition is malformed. Essential for debugging invalid flows during development. No performance impact as validation runs regardless.","in":"query","name":"include_validation_errors","required":false,"schema":{"default":false,"description":"Include DSL validation errors if the flow definition is malformed. Essential for debugging invalid flows during development. No performance impact as validation runs regardless.","title":"Include Validation Errors","type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"}},"47e839c9-e863-4f9c-8c80-7dc776ee3898":{"description":"Include runtime configuration options for each task (e.g., dropdown values, available resources). Requires authentication to external services. May add 100-500ms latency depending on integration APIs.","in":"query","name":"include_dynamic_data","required":false,"schema":{"default":false,"description":"Include runtime configuration options for each task (e.g., dropdown values, available resources). Requires authentication to external services. May add 100-500ms latency depending on integration APIs.","title":"Include Dynamic Data","type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"}},"3bd0d29e-be55-48f2-b9da-83bc99124455":{"description":"Include JSON Schema definitions for each task's output structure. Required for building dynamic UIs or validating task connections. ","in":"query","name":"include_output_schemas","required":false,"schema":{"default":false,"description":"Include JSON Schema definitions for each task's output structure. Required for building dynamic UIs or validating task connections. ","title":"Include Output Schemas","type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"}},"c2dc1512-3e55-499d-8a93-27774d14f456":{"description":"Include JSON Schema definitions for input task executors' input structure. Calls get_input_model() to generate dynamic input schemas for form building. ","in":"query","name":"include_input_schema","required":false,"schema":{"default":false,"description":"Include JSON Schema definitions for input task executors' input structure. Calls get_input_model() to generate dynamic input schemas for form building. ","title":"Include Input Schema","type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"}},"c934031b-2763-497b-8edf-78e0537e14c9":{"description":"Include each task's default reference modes (single/collection) as the task-level 'default_reference_modes' property. Lets the UI show the resolved default instead of an ambiguous 'Default' option. Cheap to compute.","in":"query","name":"include_default_reference_modes","required":false,"schema":{"default":false,"description":"Include each task's default reference modes (single/collection) as the task-level 'default_reference_modes' property. Lets the UI show the resolved default instead of an ambiguous 'Default' option. Cheap to compute.","title":"Include Default Reference Modes","type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"}}},"requestBody":{"content":{"application/json":{"schema":{"description":"Model for flow definition update request.","properties":{"definition":{"additionalProperties":true,"description":"Flow definition in DSL format. The definition contains a 'flow' metadata object and a 'flow_configs' array with task configurations. Each task has a unique 'name' (UUID), 'task_executor_name' (the task type), 'task_title' (display name), 'parameters' (executor-specific config), and optional 'visual_properties' for UI layout. Tasks reference upstream outputs using '{{task_name.output_field}}' template syntax in their parameters to define dependencies.","examples":[{"flow":{"author_uuid":"","created_at":""},"flow_configs":[{"config":{"groups":[],"notes":[],"tasks":[{"is_schedulable_executor":false,"name":"e264bc8d-d6d3-4bef-a18e-a27ad491cd26","parameters":{},"task_executor_name":"receive_file","task_title":"Receive File","visual_properties":{"collapsed":false,"position":{"x":584.5,"y":359.5},"zIndex":2}},{"is_schedulable_executor":false,"name":"6ef3e60a-94e7-48b0-adbf-80d3ef81c3a6","parameters":{"document_url":"{{e264bc8d-d6d3-4bef-a18e-a27ad491cd26.document_url}}","fields":[{"columns":[],"data_type":"int","id":"InvoiceID","instructions":"","title":"Invoice ID"}],"worker":"gpt-4.1"},"task_executor_name":"doc_to_structured","task_title":"Doc To Structured","visual_properties":{"collapsed":false,"position":{"x":1170,"y":360},"zIndex":2}}]},"meta":{"description":"Extract data from invoices","name":"Invoice Processing"}}]}],"title":"Definition","type":"object","isRequired":true,"uniqueKey":"definition","typeLabel":"Definition · object"},"expected_revision":{"oneOf":[{"type":"string","title":"Expected Revision","description":"Optional. The `revision` of the flow this write is based on, from the `FlowResponse` you last read or saved. When set, the write applies only if the latest version is still at that revision, checked under the flow lock; otherwise nothing is saved and the response is 409 with code `revision_conflict` and `details.current_revision`. Reload the flow, re-apply your change and retry. When omitted, the write applies on top of whatever is latest (last writer wins).","uniqueKey":"expected_revision.oneOf.0","typeLabel":"string"},{"type":"null","title":"Expected Revision","description":"Optional. The `revision` of the flow this write is based on, from the `FlowResponse` you last read or saved. When set, the write applies only if the latest version is still at that revision, checked under the flow lock; otherwise nothing is saved and the response is 409 with code `revision_conflict` and `details.current_revision`. Reload the flow, re-apply your change and retry. When omitted, the write applies on top of whatever is latest (last writer wins).","uniqueKey":"expected_revision.oneOf.1","typeLabel":"null"}],"uniqueKey":"expected_revision","typeLabel":"string | null"}},"required":["definition"],"title":"FlowDefinitionUpdate","type":"object","uniqueKey":"","typeLabel":"FlowDefinitionUpdate · object"},"examples":{"Example":{"title":"Example","value":{"definition":{"flow":{"author_uuid":"","created_at":""},"flow_configs":[{"config":{"groups":[],"notes":[],"tasks":[{"is_schedulable_executor":false,"name":"e264bc8d-d6d3-4bef-a18e-a27ad491cd26","parameters":{},"task_executor_name":"receive_file","task_title":"Receive File","visual_properties":{"collapsed":false,"position":{"x":584.5,"y":359.5},"zIndex":2}},{"is_schedulable_executor":false,"name":"6ef3e60a-94e7-48b0-adbf-80d3ef81c3a6","parameters":{"document_url":"{{e264bc8d-d6d3-4bef-a18e-a27ad491cd26.document_url}}","fields":[{"columns":[],"data_type":"int","id":"InvoiceID","instructions":"","title":"Invoice ID"}],"worker":"gpt-4.1"},"task_executor_name":"doc_to_structured","task_title":"Doc To Structured","visual_properties":{"collapsed":false,"position":{"x":1170,"y":360},"zIndex":2}}]},"meta":{"description":"Extract data from invoices","name":"Invoice Processing"}}]},"expected_revision":"\u003cstring>"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"f200dbad-6e8f-4f55-bd92-e2e00f91bc55":{"content":{"application/json":{"schema":{"description":"Response model for a flow object.\n\nRepresents a complete flow definition with metadata, execution statistics,\nand optional computed fields. Use query parameters to include additional\nfields that require extra processing.\n\n## Expansion Parameters\n\nControl which computed fields are included using these query parameters:\n\n- `include_ordered_task_names`: Adds `task_names` field with topological sort\n- `include_validation_errors`: Adds `validation_errors` field if flow is invalid\n- `include_dynamic_data`: Enriches each task in `definition` with runtime config options\n- `include_output_schemas`: Enriches each task in `definition` with JSON schema\n\n## Performance Considerations\n\nEach expansion parameter adds processing overhead. Only request fields you need:\n\n- Base response: ~50-100ms\n- `+ include_ordered_task_names`: +50ms for 20+ tasks\n- `+ include_dynamic_data`: +100-500ms (calls external APIs)\n- `+ include_output_schemas`: +10-50ms\n- `+ include_validation_errors`: No overhead (always validated)","properties":{"created_at":{"format":"date-time","title":"Created At","type":"string","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"definition":{"additionalProperties":true,"description":"Complete flow definition in DSL format. May be enriched with additional fields when using expansion parameters (include_dynamic_data, include_output_schemas). Enriched fields are added to each task within definition.tasks[].","title":"Definition","type":"object","isRequired":true,"uniqueKey":"definition","typeLabel":"Definition · object"},"display_name":{"description":"Human-readable flow name","title":"Display Name","type":"string","isRequired":true,"uniqueKey":"display_name","typeLabel":"string"},"id":{"format":"uuid","title":"Id","type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"is_latest":{"description":"Whether this is the latest version of the flow","title":"Is Latest","type":"boolean","isRequired":true,"uniqueKey":"is_latest","typeLabel":"boolean"},"modified_by":{"title":"Modified By","type":"string","isRequired":true,"uniqueKey":"modified_by","typeLabel":"string"},"organization_id":{"description":"Organization that owns this flow","format":"uuid","title":"Organization Id","type":"string","isRequired":true,"uniqueKey":"organization_id","typeLabel":"string\u003cuuid>"},"revision":{"description":"Opaque token for the stored state of this flow version: `\u003cversion>:\u003chash of the stored definition>`. It changes on every definition write, including saves that keep the version (task moves, retitles). Send it back as `expected_revision` on `PUT /definition`, `PUT /task` or `POST /versions/{version}/restore` to save only if nobody changed the flow since you read it; a stale value returns 409 `revision_conflict`. Never stored; not affected by expansion parameters.","readOnly":true,"title":"Revision","type":"string","isRequired":true,"uniqueKey":"revision","typeLabel":"string"},"status":{"description":"Flow lifecycle status. Values: 'draft' (editable), 'published' (ready for production use)","title":"Status","type":"string","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"version":{"description":"Flow version number. Increments on each update.","minimum":1,"title":"Version","type":"integer","isRequired":true,"uniqueKey":"version","typeLabel":"integer"},"awaiting_hitl_executions_count":{"oneOf":[{"type":"integer","title":"Awaiting Hitl Executions Count","description":"Number of queued, running or awaiting-input runs that hold a Human In The Loop task (either HITL task type) that is still pending or in progress. Runs paused for other input, such as webhook data, are not counted. Populated by the flows list; null when the caller's role cannot read review tasks.","uniqueKey":"awaiting_hitl_executions_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Awaiting Hitl Executions Count","description":"Number of queued, running or awaiting-input runs that hold a Human In The Loop task (either HITL task type) that is still pending or in progress. Runs paused for other input, such as webhook data, are not counted. Populated by the flows list; null when the caller's role cannot read review tasks.","uniqueKey":"awaiting_hitl_executions_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"awaiting_hitl_executions_count","typeLabel":"integer | null"},"awaiting_input_executions_count":{"oneOf":[{"type":"integer","title":"Awaiting Input Executions Count","description":"Number of awaiting-input runs without an open Human In The Loop task, such as runs waiting on webhook data. Populated by the flows list; null when the caller's role cannot read review tasks.","uniqueKey":"awaiting_input_executions_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Awaiting Input Executions Count","description":"Number of awaiting-input runs without an open Human In The Loop task, such as runs waiting on webhook data. Populated by the flows list; null when the caller's role cannot read review tasks.","uniqueKey":"awaiting_input_executions_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"awaiting_input_executions_count","typeLabel":"integer | null"},"deleted":{"default":false,"title":"Deleted","type":"boolean","uniqueKey":"deleted","typeLabel":"boolean"},"description":{"oneOf":[{"type":"string","title":"Description","description":"Detailed flow description","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"Detailed flow description","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"error_executions_count":{"oneOf":[{"type":"integer","title":"Error Executions Count","description":"Number of runs that failed, were cancelled or are being cancelled, or that have a failed task (such a run still ends completed unless the flow fails executions on task errors). Populated by the flows list when include_error_executions_count=true or sorting by it.","uniqueKey":"error_executions_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Error Executions Count","description":"Number of runs that failed, were cancelled or are being cancelled, or that have a failed task (such a run still ends completed unless the flow fails executions on task errors). Populated by the flows list when include_error_executions_count=true or sorting by it.","uniqueKey":"error_executions_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"error_executions_count","typeLabel":"integer | null"},"flow_executions_count":{"default":0,"description":"Total number of times this flow has been executed across all versions","title":"Flow Executions Count","type":"integer","uniqueKey":"flow_executions_count","typeLabel":"integer"},"is_hidden":{"default":false,"description":"Whether an organization admin hid this flow from the Hub. Populated by the flows list.","title":"Is Hidden","type":"boolean","uniqueKey":"is_hidden","typeLabel":"boolean"},"last_execution_activity_at":{"oneOf":[{"type":"string","title":"Last Execution Activity At","description":"When any non-deleted run of this flow was last created or updated — the flow's last processing activity. Null when the flow has never run. Populated by the flows list.","format":"date-time","uniqueKey":"last_execution_activity_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","title":"Last Execution Activity At","description":"When any non-deleted run of this flow was last created or updated — the flow's last processing activity. Null when the flow has never run. Populated by the flows list.","uniqueKey":"last_execution_activity_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"last_execution_activity_at","typeLabel":"string\u003cdate-time> | null"},"latest_version_executions_count":{"oneOf":[{"type":"integer","title":"Latest Version Executions Count","description":"Number of executions on the most recent flow version that has any runs — the dataset calibration samples. Only included when include_latest_version_executions_count=true.","uniqueKey":"latest_version_executions_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Latest Version Executions Count","description":"Number of executions on the most recent flow version that has any runs — the dataset calibration samples. Only included when include_latest_version_executions_count=true.","uniqueKey":"latest_version_executions_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"latest_version_executions_count","typeLabel":"integer | null"},"settings":{"oneOf":[{"type":"object","title":"FlowSettings","description":"Flow-level configuration settings","properties":{"appearance":{"oneOf":[{"type":"object","title":"FlowAppearance","description":"Icon and badge colour shown in the Hub","properties":{"color":{"oneOf":[{"type":"string","title":"Color","description":"Badge colour, one of: yellow, green, blue, purple, pink, red, orange. Unset uses the default brand colour.","maxLength":16,"uniqueKey":"settings.oneOf.0.appearance.oneOf.0.color.oneOf.0","typeLabel":"string"},{"type":"null","title":"Color","description":"Badge colour, one of: yellow, green, blue, purple, pink, red, orange. Unset uses the default brand colour.","uniqueKey":"settings.oneOf.0.appearance.oneOf.0.color.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings.oneOf.0.appearance.oneOf.0.color","typeLabel":"string | null"},"icon":{"oneOf":[{"type":"string","title":"Icon","description":"Icon key from the UI's curated icon set","maxLength":64,"uniqueKey":"settings.oneOf.0.appearance.oneOf.0.icon.oneOf.0","typeLabel":"string"},{"type":"null","title":"Icon","description":"Icon key from the UI's curated icon set","uniqueKey":"settings.oneOf.0.appearance.oneOf.0.icon.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings.oneOf.0.appearance.oneOf.0.icon","typeLabel":"string | null"},"text":{"oneOf":[{"type":"string","title":"Text","description":"1-4 characters shown under the icon","maxLength":4,"uniqueKey":"settings.oneOf.0.appearance.oneOf.0.text.oneOf.0","typeLabel":"string"},{"type":"null","title":"Text","description":"1-4 characters shown under the icon","uniqueKey":"settings.oneOf.0.appearance.oneOf.0.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings.oneOf.0.appearance.oneOf.0.text","typeLabel":"string | null"}},"uniqueKey":"settings.oneOf.0.appearance.oneOf.0","typeLabel":"FlowAppearance · object"},{"type":"null","description":"Icon and badge colour shown in the Hub","uniqueKey":"settings.oneOf.0.appearance.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings.oneOf.0.appearance","typeLabel":"FlowAppearance · object | null"},"on_task_error":{"description":"What happens when a task execution fails. 'continue': the task is marked failed, tasks that depend on its output are not executed, all other tasks still run and the flow execution ends 'completed'. 'fail_execution': once all executions of the failed task have finished, no further task starts and the flow execution ends 'failed', with the cause in its `status_data`. Applies to flow executions started after the change.","enum":["continue","fail_execution"],"title":"OnTaskError","type":"string","default":"continue","uniqueKey":"settings.oneOf.0.on_task_error","typeLabel":"enum\u003cstring>"},"reexecute_on_update":{"default":false,"description":"Reexecute stale tasks on flow update","title":"Reexecute On Update","type":"boolean","uniqueKey":"settings.oneOf.0.reexecute_on_update","typeLabel":"boolean"},"review_view_id":{"oneOf":[{"type":"string","title":"Review View Id","description":"Reference to FlowView for review navigation. Determines which tasks are visible when reviewing runs from Runs View.","format":"uuid","uniqueKey":"settings.oneOf.0.review_view_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Review View Id","description":"Reference to FlowView for review navigation. Determines which tasks are visible when reviewing runs from Runs View.","uniqueKey":"settings.oneOf.0.review_view_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings.oneOf.0.review_view_id","typeLabel":"string\u003cuuid> | null"},"ttl":{"description":"Time-to-live settings for automatic execution deletion","properties":{"seconds":{"oneOf":[{"type":"integer","title":"Seconds","description":"TTL in seconds after completion (1 minute to 30 days). Required when enabled=True.","maximum":5097600,"minimum":60,"uniqueKey":"settings.oneOf.0.ttl.seconds.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Seconds","description":"TTL in seconds after completion (1 minute to 30 days). Required when enabled=True.","uniqueKey":"settings.oneOf.0.ttl.seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings.oneOf.0.ttl.seconds","typeLabel":"integer | null"}},"title":"TTLSettings","type":"object","default":{},"uniqueKey":"settings.oneOf.0.ttl","typeLabel":"TTLSettings · object"}},"uniqueKey":"settings.oneOf.0","typeLabel":"FlowSettings · object"},{"type":"null","description":"Flow-level configuration settings","uniqueKey":"settings.oneOf.1","typeLabel":"null"}],"uniqueKey":"settings","typeLabel":"FlowSettings · object | null"},"tags":{"items":{"type":"string","uniqueKey":"tags.items.[INDEX]","typeLabel":"string"},"title":"Tags","type":"array","uniqueItems":true,"uniqueKey":"tags","typeLabel":"string[]"},"task_names":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"task_names.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Task Names","description":"Topologically sorted list of task names in execution order. Only included when include_ordered_task_names=true. Useful for visualizing task dependencies and execution flow.","uniqueKey":"task_names.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Task Names","description":"Topologically sorted list of task names in execution order. Only included when include_ordered_task_names=true. Useful for visualizing task dependencies and execution flow.","uniqueKey":"task_names.oneOf.1","typeLabel":"null"}],"uniqueKey":"task_names","typeLabel":"string[] | null"},"validation_errors":{"oneOf":[{"type":"array","items":{"properties":{"input":{"oneOf":[{"title":"Input","isRequired":true}],"isRequired":true,"uniqueKey":"validation_errors.oneOf.0.items.[INDEX].input","typeLabel":"any"},"loc":{"items":{"oneOf":[{"type":"integer","uniqueKey":"validation_errors.oneOf.0.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"integer"},{"type":"string","uniqueKey":"validation_errors.oneOf.0.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"string"}],"uniqueKey":"validation_errors.oneOf.0.items.[INDEX].loc.items.[INDEX]","typeLabel":"integer | string"},"title":"Loc","type":"array","isRequired":true,"uniqueKey":"validation_errors.oneOf.0.items.[INDEX].loc","typeLabel":"(integer | string)[]"},"msg":{"title":"Msg","type":"string","isRequired":true,"uniqueKey":"validation_errors.oneOf.0.items.[INDEX].msg","typeLabel":"string"},"type":{"title":"Type","type":"string","isRequired":true,"uniqueKey":"validation_errors.oneOf.0.items.[INDEX].type","typeLabel":"string"},"ctx":{"additionalProperties":true,"title":"Ctx","type":"object","uniqueKey":"validation_errors.oneOf.0.items.[INDEX].ctx","typeLabel":"Ctx · object"},"url":{"title":"Url","type":"string","uniqueKey":"validation_errors.oneOf.0.items.[INDEX].url","typeLabel":"string"}},"required":["type","loc","msg","input"],"title":"ErrorDetails","type":"object","uniqueKey":"validation_errors.oneOf.0.items.[INDEX]","typeLabel":"ErrorDetails · object"},"title":"Validation Errors","description":"DSL validation errors if the flow definition is malformed. Only included when include_validation_errors=true. Empty list indicates a valid flow. Each error contains location and message details.","uniqueKey":"validation_errors.oneOf.0","typeLabel":"ErrorDetails · object[]"},{"type":"null","title":"Validation Errors","description":"DSL validation errors if the flow definition is malformed. Only included when include_validation_errors=true. Empty list indicates a valid flow. Each error contains location and message details.","uniqueKey":"validation_errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"validation_errors","typeLabel":"ErrorDetails · object[] | null"}},"required":["id","created_at","updated_at","modified_by","display_name","version","status","is_latest","organization_id","definition","revision"],"title":"FlowResponse","type":"object","uniqueKey":"","typeLabel":"FlowResponse · object"},"examples":{"Example":{"title":"Example","value":{"created_at":"2023-11-07T05:31:56Z","definition":{},"display_name":"\u003cstring>","id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","is_latest":true,"modified_by":"\u003cstring>","organization_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","revision":"\u003cstring>","status":"\u003cstring>","updated_at":"2023-11-07T05:31:56Z","version":2,"awaiting_hitl_executions_count":123,"awaiting_input_executions_count":123,"deleted":false,"description":"\u003cstring>","error_executions_count":123,"flow_executions_count":0,"is_hidden":false,"last_execution_activity_at":"2023-11-07T05:31:56Z","latest_version_executions_count":123,"settings":{"appearance":{"color":"\u003cstring>","icon":"\u003cstring>","text":"\u003cstring>"},"on_task_error":"continue","reexecute_on_update":false,"review_view_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","ttl":{}},"tags":["\u003cstring>"],"task_names":["\u003cstring>"],"validation_errors":[{"input":"\u003cunknown>","loc":[123],"msg":"\u003cstring>","type":"\u003cstring>","ctx":{},"url":"\u003cstring>"}]}}},"exampleType":"generated"}},"description":"Flow definition successfully updated","exampleType":"generated"},"4deb230d-3e79-4279-9d1e-6c693bbef5d9":{"content":{"application/json":{"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}}},"exampleType":"generated"}},"description":"Bad Request - Invalid definition or flow not in draft status","exampleType":"generated"},"fa707669-daf9-4df4-9e79-35d3e7c45caf":{"content":{"application/json":{"examples":{"invalid_token":{"title":"invalid_token","value":{"error":{"code":"unauthorized","message":"Invalid authentication token"},"request_id":"01K8KACP7D2XFGHJ9KLM4NPQR8"}},"missing_token":{"title":"missing_token","value":{"error":{"code":"unauthorized","message":"Authentication required"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}}},"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"exampleType":"examples"}},"description":"Unauthorized - Missing or invalid authentication credentials","exampleType":"examples"},"c249d107-f937-4073-bce2-45df6321c43a":{"content":{"application/json":{"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}}},"exampleType":"generated"}},"description":"Forbidden - User doesn't have permission to update this flow","exampleType":"generated"},"8314eaa8-6efd-43d6-899c-ee79b5014634":{"content":{"application/json":{"examples":{"flow_not_found":{"title":"flow_not_found","value":{"error":{"code":"not_found","message":"Flow not found"},"request_id":"01K8KACP7D2XFGHJ9KLM4NPQR8"}},"resource_not_found":{"title":"resource_not_found","value":{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}}},"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"exampleType":"examples"}},"description":"Not Found - The requested resource does not exist","exampleType":"examples"},"9ae9781f-5e75-44e0-8d95-65ba6fd90165":{"content":{"application/json":{"examples":{"revision_conflict":{"title":"revision_conflict","value":{"error":{"code":"revision_conflict","details":{"current_revision":"5:0f9e8d7c6b5a","expected_revision":"4:1a2b3c4d5e6f"},"message":"Flow 7b1e... changed since revision 4:1a2b3c4d5e6f; it is now at 5:0f9e8d7c6b5a"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}}},"schema":{"description":"Standard API error response structure.\n\nAll error responses from the API follow this format, ensuring\nconsistent error handling for API consumers.\n\nExample:\n {\n \"error\": {\n \"message\": \"Flow not found\",\n \"code\": \"not_found\"\n },\n \"request_id\": \"01K8KABR6S16YETA2SZPVBS9SP\"\n }","examples":[{"error":{"code":"not_found","message":"Resource not found"},"request_id":"01K8KABR6S16YETA2SZPVBS9SP"}],"properties":{"error":{"description":"Standard error detail structure.\n\nThis model matches the error format returned by the centralized\nexception handlers in app/api/errors/handlers.py.","properties":{"message":{"description":"Human-readable error message","title":"Message","type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Machine-readable error code for programmatic handling","uniqueKey":"error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.code","typeLabel":"string | null"},"details":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"error.details.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.0","typeLabel":"string[]"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"error.details.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.1","typeLabel":"Details · object[]"},{"type":"object","title":"Details","description":"Additional error context, validation errors, or debugging information","additionalProperties":true,"uniqueKey":"error.details.oneOf.2","typeLabel":"Details · object"},{"type":"null","title":"Details","description":"Additional error context, validation errors, or debugging information","uniqueKey":"error.details.oneOf.3","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string[] | Details · object[] | Details · object | null"}},"required":["message"],"title":"ErrorDetail","type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Unique request identifier in ULID format for debugging and support. Example: 01K8KABR6S16YETA2SZPVBS9SP","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["error"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"exampleType":"examples"}},"description":"Conflict - `revision_conflict` when `expected_revision` is stale (the flow changed since it was read, for example by an agent or another tab); `details.current_revision` holds the latest one. `conflict` when a concurrent save won the version number.","exampleType":"examples"},"1da22fa3-2603-44ef-9d2b-3f15e1083fcf":{"content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"title":"Location","type":"array","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"title":"Message","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"title":"Error Type","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"title":"Detail","type":"array","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"title":"HTTPValidationError","type":"object","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"description":"Validation Error","exampleType":"generated"}},"security":{"e02d60f3-7879-49ab-9110-6611d05ef532":{"BearerAuth":{"bearerFormat":"JWT","description":"JWT Bearer token authentication. Include your access token in the Authorization header as: `Bearer YOUR_ACCESS_TOKEN`\n\nExample:\n```\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n```","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"}},"91f0147a-6ffb-4301-9845-ffb1fd81eaaa":{"APIKeyAuth":{"description":"API key authentication. Include your API key in the X-API-Key header as: `X-API-Key YOUR_API_KEY`\n\nExample:\n```\nX-API-Key: saf_1234567890\n```","in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"APIKeyAuth"}}},"servers":{"4d0b7ba2-10f8-42a9-8f2d-c56b9c660af5":{"description":"Production server","url":"https://flows.super.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"bearerFormat":"JWT","description":"JWT Bearer token authentication. Include your access token in the Authorization header as: `Bearer YOUR_ACCESS_TOKEN`\n\nExample:\n```\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n```","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"JWT Bearer token authentication. Include your access token in the Authorization header as: `Bearer YOUR_ACCESS_TOKEN`\n\nExample:\n```\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n```","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"},{"schemes":[{"scheme":{"description":"API key authentication. Include your API key in the X-API-Key header as: `X-API-Key YOUR_API_KEY`\n\nExample:\n```\nX-API-Key: saf_1234567890\n```","in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"APIKeyAuth"},"schema":{"title":"X-API-Key","type":"string","description":"API key authentication. Include your API key in the X-API-Key header as: `X-API-Key YOUR_API_KEY`\n\nExample:\n```\nX-API-Key: saf_1234567890\n```","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyAuth","name":"X-API-Key"}],"title":"APIKeyAuth"}]},"originalFileLocation":"openapi/superai-flows-openapi.json"},"subdomain":"superai-flows-docs","siteName":"SuperAI Flows","title":"Update flow definition - SuperAI Flows","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T12:20:51.594Z","originalFileLocation":"api-reference/flows/update-flow-definition.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Update the complete definition of a flow. Replaces the entire flow definition with a new one. This operation is only allowed for flows in \u0026#x27;draft\u0026#x27; status. Creates a new version of the flow. ## Restrictions - Only flows with status \u0026#x27;draft\u0026#x27; can be updated - Published flows cannot be modified - A new version is created with each update ## Validation - New definition is validated before applying - If validation fails, the original definition remains unchanged - Use include_validation_errors=true to see validation details ## Concurrent writers - Send expected_revision (the revision of the flow you read) so a save never overwrites a change made since, for example by an agent: a stale value returns 409 revision_conflict and saves nothing - Without it the save is last-writer-wins\">\u003cmeta data-mint-head name=\"application-name\" content=\"SuperAI Flows\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update flow definition - SuperAI Flows\">\u003cmeta data-mint-head property=\"og:description\" content=\"Update the complete definition of a flow. Replaces the entire flow definition with a new one. This operation is only allowed for flows in \u0026#x27;draft\u0026#x27; status. Creates a new version of the flow. ## Restrictions - Only flows with status \u0026#x27;draft\u0026#x27; can be updated - Published flows cannot be modified - A new version is created with each update ## Validation - New definition is validated before applying - If validation fails, the original definition remains unchanged - Use include_validation_errors=true to see validation details ## Concurrent writers - Send expected_revision (the revision of the flow you read) so a save never overwrites a change made since, for example by an agent: a stale value returns 409 revision_conflict and saves nothing - Without it the save is last-writer-wins\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SuperAI Flows\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://superai-flows-docs.mintlify.app/_mintlify/api/og/v2?division=flows\u0026amp;title=Update+flow+definition\u0026amp;description=Update+the+complete+definition+of+a+flow.%0A%0AReplaces+the+entire+flow+definition+with+a+new+one.+This+operation+is+only%0Aallowed+for+flows+in+%27draft%27+status.+Creat\u0026amp;theme=ab5065c76c8574caf1b0798b\u0026amp;signature=6f40d56665b50f6d0072fb0d95948c4ad6fdc6e936cc7ef4b6663d5bf2a27b3b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update flow definition - SuperAI Flows\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Update the complete definition of a flow. Replaces the entire flow definition with a new one. This operation is only allowed for flows in \u0026#x27;draft\u0026#x27; status. Creates a new version of the flow. ## Restrictions - Only flows with status \u0026#x27;draft\u0026#x27; can be updated - Published flows cannot be modified - A new version is created with each update ## Validation - New definition is validated before applying - If validation fails, the original definition remains unchanged - Use include_validation_errors=true to see validation details ## Concurrent writers - Send expected_revision (the revision of the flow you read) so a save never overwrites a change made since, for example by an agent: a stale value returns 409 revision_conflict and saves nothing - Without it the save is last-writer-wins\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://superai-flows-docs.mintlify.app/_mintlify/api/og/v2?division=flows\u0026amp;title=Update+flow+definition\u0026amp;description=Update+the+complete+definition+of+a+flow.%0A%0AReplaces+the+entire+flow+definition+with+a+new+one.+This+operation+is+only%0Aallowed+for+flows+in+%27draft%27+status.+Creat\u0026amp;theme=ab5065c76c8574caf1b0798b\u0026amp;signature=6f40d56665b50f6d0072fb0d95948c4ad6fdc6e936cc7ef4b6663d5bf2a27b3b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/superai-flows-docs/qpT9WA2q8_qrkdpL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SuperAI Flows\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7443ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/flows/update-flow-definition.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.flows.super.ai/#organization\",\"name\":\"SuperAI Flows\",\"url\":\"https://docs.flows.super.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/superai-flows-docs/mOFmLJuUNWWCPrgW/logo/light.svg?fit=max\u0026auto=format\u0026n=mOFmLJuUNWWCPrgW\u0026q=85\u0026s=763a91d73e6886f99fbebba85459ee15\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.flows.super.ai#website\",\"name\":\"SuperAI Flows\",\"url\":\"https://docs.flows.super.ai\",\"publisher\":{\"@id\":\"https://docs.flows.super.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition#webpage\",\"url\":\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition\",\"name\":\"Update flow definition\",\"description\":\"Update the complete definition of a flow. Replaces the entire flow definition with a new one. This operation is only allowed for flows in 'draft' status. Creates a new version of the flow. ## Restrictions - Only flows with status 'draft' can be updated - Published flows cannot be modified - A new version is created with each update ## Validation - New definition is validated before applying - If validation fails, the original definition remains unchanged - Use include_validation_errors=true to see validation details ## Concurrent writers - Send expected_revision (the revision of the flow you read) so a save never overwrites a change made since, for example by an agent: a stale value returns 409 revision_conflict and saves nothing - Without it the save is last-writer-wins\",\"dateModified\":\"2026-10-23T12:20:51.594Z\",\"isPartOf\":{\"@id\":\"https://docs.flows.super.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.flows.super.ai/api-reference/auth/submit-a-self-service-access-request\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"flows\",\"item\":\"https://docs.flows.super.ai/api-reference/flows/list-all-flows\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update flow definition\",\"item\":\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition#apireference\",\"headline\":\"Update flow definition\",\"name\":\"Update flow definition\",\"description\":\"Update the complete definition of a flow. Replaces the entire flow definition with a new one. This operation is only allowed for flows in 'draft' status. Creates a new version of the flow. ## Restrictions - Only flows with status 'draft' can be updated - Published flows cannot be modified - A new version is created with each update ## Validation - New definition is validated before applying - If validation fails, the original definition remains unchanged - Use include_validation_errors=true to see validation details ## Concurrent writers - Send expected_revision (the revision of the flow you read) so a save never overwrites a change made since, for example by an agent: a stale value returns 409 revision_conflict and saves nothing - Without it the save is last-writer-wins\",\"url\":\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition\",\"mainEntityOfPage\":{\"@id\":\"https://docs.flows.super.ai/api-reference/flows/update-flow-definition#webpage\"},\"dateModified\":\"2026-10-23T12:20:51.594Z\",\"publisher\":{\"@id\":\"https://docs.flows.super.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.flows.super.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SuperAI Flows\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SuperAI Flows","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Overview","icon":"code","href":"/api-reference/introduction"},{"title":"Authentication","icon":"lock","href":"/api-reference/authentication"},{"title":"Error Codes","icon":"triangle-exclamation","href":"/api-reference/errors"},{"title":"MCP Server","icon":"robot","href":"/api-reference/mcp-server"}]},{"group":"Endpoints","pages":[{"group":"auth","pages":[{"title":"Submit a self-service access request","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/auth/access-request","href":"/api-reference/auth/submit-a-self-service-access-request"},{"title":"Retrieve authentication API key","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/anon-key","href":"/api-reference/auth/retrieve-authentication-api-key"},{"title":"Human-verification challenge configuration for the sign-in and signup forms","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/captcha-config","href":"/api-reference/auth/human-verification-challenge-configuration-for-the-sign-in-and-signup-forms"},{"title":"Resolve login method for an email","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/login-method","href":"/api-reference/auth/resolve-login-method-for-an-email"},{"title":"Public compliance configuration for the signup and sign-in surfaces","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/public-config","href":"/api-reference/auth/public-compliance-configuration-for-the-signup-and-sign-in-surfaces"},{"title":"Resend user invitation email","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/auth/resend-invite","href":"/api-reference/auth/resend-user-invitation-email"},{"title":"Reset Password","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/auth/reset-password","href":"/api-reference/auth/reset-password"},{"title":"Pre-flight signup email policy check for magic link","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/signup-email-policy","href":"/api-reference/auth/pre-flight-signup-email-policy-check-for-magic-link"},{"title":"The authenticated caller's terms-acceptance state","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/auth/terms-status","href":"/api-reference/auth/the-authenticated-callers-terms-acceptance-state"}]},{"group":"files","pages":[{"title":"Download file by URI (with redirect)","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/files/download","href":"/api-reference/files/download-file-by-uri-with-redirect"},{"title":"Resolve storage URI to download URL","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/files/resolve","href":"/api-reference/files/resolve-storage-uri-to-download-url"}]},{"group":"flow-executions","pages":[{"title":"List flow executions with filtering and pagination","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flow-executions","href":"/api-reference/flow-executions/list-flow-executions-with-filtering-and-pagination"},{"title":"Create and start a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions","href":"/api-reference/flow-executions/create-and-start-a-flow-execution"},{"title":"List the execution IDs of one filtered, sorted runs-table page","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/page-ids","href":"/api-reference/flow-executions/list-the-execution-ids-of-one-filtered-sorted-runs-table-page"},{"title":"Retrieve a specific flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flow-executions/{flow_execution_id}","href":"/api-reference/flow-executions/retrieve-a-specific-flow-execution"},{"title":"Soft delete a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flow-executions/{flow_execution_id}","href":"/api-reference/flow-executions/soft-delete-a-flow-execution"},{"title":"Cancel a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/{flow_execution_id}/cancel","href":"/api-reference/flow-executions/cancel-a-flow-execution"},{"title":"Re-execute a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/{flow_execution_id}/execute","href":"/api-reference/flow-executions/re-execute-a-flow-execution"},{"title":"Add task status updates (Internal API)","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/{flow_execution_id}/task-status","href":"/api-reference/flow-executions/add-task-status-updates-internal-api"}]},{"group":"webhook-data","pages":[{"title":"Submit webhook data for a waiting task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flow-executions/{flow_execution_id}/webhook-data","href":"/api-reference/webhook-data/submit-webhook-data-for-a-waiting-task"}]},{"group":"flows","pages":[{"title":"List all flows","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows","href":"/api-reference/flows/list-all-flows"},{"title":"Create a new flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows","href":"/api-reference/flows/create-a-new-flow"},{"title":"Get available flow tags for autocomplete","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/available-tags","href":"/api-reference/flows/get-available-flow-tags-for-autocomplete"},{"title":"Generate file download URL","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows/download-url","href":"/api-reference/flows/generate-file-download-url"},{"title":"Retrieve a flow by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}","href":"/api-reference/flows/retrieve-a-flow-by-id"},{"title":"Delete a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flows/{flow_id}","href":"/api-reference/flows/delete-a-flow"},{"title":"Partially update a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/flows/{flow_id}","href":"/api-reference/flows/partially-update-a-flow"},{"title":"Get clone info for a flow","description":null,"deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/clone-info","href":"/api-reference/flows/get-clone-info-for-a-flow"},{"title":"Update flow definition","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/definition","href":"/api-reference/flows/update-flow-definition"},{"title":"List flow files","description":"List all files associated with a flow.\n\nReturns metadata for all files that have been uploaded to this flow,\nincluding original filenames, sizes, and custom metadata. The flow must belong\nto the caller's organization — a flow owned by another org returns 404.\n\n## Use Cases\n- Display uploaded files in UI\n- Verify file uploads completed successfully\n- Retrieve file keys for download URL generation","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/files","href":"/api-reference/flows/list-flow-files"},{"title":"List flow invitations","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/invitations","href":"/api-reference/flows/list-flow-invitations"},{"title":"Upsert user invitations to a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/invitations","href":"/api-reference/flows/upsert-user-invitations-to-a-flow"},{"title":"Remove user invitations from a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flows/{flow_id}/invitations","href":"/api-reference/flows/remove-user-invitations-from-a-flow"},{"title":"Get distinct metadata keys for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/metadata/keys","href":"/api-reference/flows/get-distinct-metadata-keys-for-a-flow"},{"title":"Get distinct values for a metadata key","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/metadata/values","href":"/api-reference/flows/get-distinct-values-for-a-metadata-key"},{"title":"Get tag suggestions for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/tag-suggestions","href":"/api-reference/flows/get-tag-suggestions-for-a-flow"},{"title":"Get tag usage for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/tag-usage","href":"/api-reference/flows/get-tag-usage-for-a-flow"},{"title":"Get tags for flow executions","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/tags","href":"/api-reference/flows/get-tags-for-flow-executions"},{"title":"Permanently delete tags from a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flows/{flow_id}/tags","href":"/api-reference/flows/permanently-delete-tags-from-a-flow"},{"title":"Update a single task in flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/task","href":"/api-reference/flows/update-a-single-task-in-flow"},{"title":"List team invitations for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/team-invitations","href":"/api-reference/flows/list-team-invitations-for-a-flow"},{"title":"Upsert team (worker group) invitations to a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/flows/{flow_id}/team-invitations","href":"/api-reference/flows/upsert-team-worker-group-invitations-to-a-flow"},{"title":"Remove team invitations from a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/flows/{flow_id}/team-invitations","href":"/api-reference/flows/remove-team-invitations-from-a-flow"},{"title":"Generate file upload URL","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows/{flow_id}/upload-url","href":"/api-reference/flows/generate-file-upload-url"},{"title":"Validate a flow definition without persisting","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows/{flow_id}/validate","href":"/api-reference/flows/validate-a-flow-definition-without-persisting"},{"title":"List all versions of a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/versions","href":"/api-reference/flows/list-all-versions-of-a-flow"},{"title":"List version summaries for a flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/versions/summary","href":"/api-reference/flows/list-version-summaries-for-a-flow"},{"title":"Get specific flow version","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/versions/{version}","href":"/api-reference/flows/get-specific-flow-version"},{"title":"Update version metadata","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/flows/{flow_id}/versions/{version}","href":"/api-reference/flows/update-version-metadata"},{"title":"Restore a past version","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/flows/{flow_id}/versions/{version}/restore","href":"/api-reference/flows/restore-a-past-version"},{"title":"List task summaries for flow version","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/flows/{flow_id}/versions/{version}/summary","href":"/api-reference/flows/list-task-summaries-for-flow-version"}]},{"group":"human-review-tasks","pages":[{"title":"List human review tasks assigned to the current user","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/human-review-tasks","href":"/api-reference/human-review-tasks/list-human-review-tasks-assigned-to-the-current-user"},{"title":"Create a new human review task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/human-review-tasks","href":"/api-reference/human-review-tasks/create-a-new-human-review-task"},{"title":"List human review tasks for a flow execution (org-level access)","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/human-review-tasks/by-execution","href":"/api-reference/human-review-tasks/list-human-review-tasks-for-a-flow-execution-org-level-access"},{"title":"Get a human review task by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/human-review-tasks/{task_id}","href":"/api-reference/human-review-tasks/get-a-human-review-task-by-id"},{"title":"List all assignments for a human review task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/human-review-tasks/{task_id}/assignments","href":"/api-reference/human-review-tasks/list-all-assignments-for-a-human-review-task"},{"title":"Complete a human review task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/human-review-tasks/{task_id}/complete","href":"/api-reference/human-review-tasks/complete-a-human-review-task"},{"title":"Start a human review task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/human-review-tasks/{task_id}/start","href":"/api-reference/human-review-tasks/start-a-human-review-task"},{"title":"Unstart a human review task assignment","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/human-review-tasks/{task_id}/unstart","href":"/api-reference/human-review-tasks/unstart-a-human-review-task-assignment"}]},{"group":"integrations","pages":[{"title":"List integration catalog","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/catalog","href":"/api-reference/integrations/list-integration-catalog"},{"title":"List user credentials","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/credentials","href":"/api-reference/integrations/list-user-credentials"},{"title":"Create integration credentials","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/credentials","href":"/api-reference/integrations/create-integration-credentials"},{"title":"List credentials by provider","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/credentials/provider/{provider}","href":"/api-reference/integrations/list-credentials-by-provider"},{"title":"Get credential by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/credentials/{credential_id}","href":"/api-reference/integrations/get-credential-by-id"},{"title":"Delete credential","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/integrations/credentials/{credential_id}","href":"/api-reference/integrations/delete-credential"},{"title":"Update credential","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/integrations/credentials/{credential_id}","href":"/api-reference/integrations/update-credential"},{"title":"Get credential secrets","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/credentials/{credential_id}/credentials","href":"/api-reference/integrations/get-credential-secrets"},{"title":"List user databases","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database","href":"/api-reference/integrations/list-user-databases"},{"title":"Create Database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database","href":"/api-reference/integrations/create-database"},{"title":"Create managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/managed","href":"/api-reference/integrations/create-managed-database"},{"title":"List tables in managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/managed/tables","href":"/api-reference/integrations/list-tables-in-managed-database"},{"title":"Create table in managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/managed/tables","href":"/api-reference/integrations/create-table-in-managed-database"},{"title":"Get table columns from managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/managed/tables/{table_name}/columns","href":"/api-reference/integrations/get-table-columns-from-managed-database"},{"title":"Get table data from managed database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/managed/tables/{table_name}/data","href":"/api-reference/integrations/get-table-data-from-managed-database"},{"title":"Query a managed-DB table with exact-match filters","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/managed/tables/{table_name}/query","href":"/api-reference/integrations/query-a-managed-db-table-with-exact-match-filters"},{"title":"Insert one row into a managed-DB table","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/managed/tables/{table_name}/rows","href":"/api-reference/integrations/insert-one-row-into-a-managed-db-table"},{"title":"Get database by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/{db_id}","href":"/api-reference/integrations/get-database-by-id"},{"title":"Delete database","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/integrations/database/{db_id}","href":"/api-reference/integrations/delete-database"},{"title":"Get database columns","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/{db_id}/columns","href":"/api-reference/integrations/get-database-columns"},{"title":"Get Download Url","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/database/{db_id}/download","href":"/api-reference/integrations/get-download-url"},{"title":"Generate database upload URL","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload-url","href":"/api-reference/integrations/generate-database-upload-url"},{"title":"Compare Csv For Replace","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload/compare","href":"/api-reference/integrations/compare-csv-for-replace"},{"title":"Complete File Upload","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload/complete","href":"/api-reference/integrations/complete-file-upload"},{"title":"Preview CSV file before import","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload/preview","href":"/api-reference/integrations/preview-csv-file-before-import"},{"title":"Replace File Upload","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/database/{db_id}/upload/replace","href":"/api-reference/integrations/replace-file-upload"},{"title":"Process Emails","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/email/process","href":"/api-reference/integrations/process-emails"},{"title":"Create Email Task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/email/tasks","href":"/api-reference/integrations/create-email-task"},{"title":"Deactivate Email Task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/integrations/email/tasks","href":"/api-reference/integrations/deactivate-email-task"},{"title":"Get Email Task Status","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/email/tasks/{task_id}","href":"/api-reference/integrations/get-email-task-status"},{"title":"List all registered plugins","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/plugins/","href":"/api-reference/integrations/list-all-registered-plugins"},{"title":"Execute Postgres Plugin Task","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/plugins/postgres/execute","href":"/api-reference/integrations/execute-postgres-plugin-task"},{"title":"Test Postgres Plugin Connection","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/plugins/postgres/test-connection","href":"/api-reference/integrations/test-postgres-plugin-connection"},{"title":"Get plugin capabilities","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/integrations/plugins/{plugin_name}/capabilities","href":"/api-reference/integrations/get-plugin-capabilities"},{"title":"Test Postgres Connection","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/postgres/test-connection","href":"/api-reference/integrations/test-postgres-connection"},{"title":"Test Postgres Connection By Credential Id","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/postgres/test-connection/{credential_id}","href":"/api-reference/integrations/test-postgres-connection-by-credential-id"},{"title":"Test Sftp Connection","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/integrations/sftp/test-connection","href":"/api-reference/integrations/test-sftp-connection"}]},{"group":"models","pages":[{"title":"List available models","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/models","href":"/api-reference/models/list-available-models"}]},{"group":"organizations","pages":[{"title":"Why this account is restricted, if it is","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/account-restriction","href":"/api-reference/organizations/why-this-account-is-restricted-if-it-is"},{"title":"Get credit balance for current user's organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/credits","href":"/api-reference/organizations/get-credit-balance-for-current-users-organization"},{"title":"List the email domains this organization has claimed","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/domains","href":"/api-reference/organizations/list-the-email-domains-this-organization-has-claimed"},{"title":"Claim an email domain for this organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/organizations/domains","href":"/api-reference/organizations/claim-an-email-domain-for-this-organization"},{"title":"Release a claimed email domain","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/organizations/domains/{claim_id}","href":"/api-reference/organizations/release-a-claimed-email-domain"},{"title":"List signups waiting on this organization's review","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/join-requests","href":"/api-reference/organizations/list-signups-waiting-on-this-organizations-review"},{"title":"Decline a signup request","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/organizations/join-requests/{request_id}/reject","href":"/api-reference/organizations/decline-a-signup-request"},{"title":"Update organization settings","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/organizations/settings","href":"/api-reference/organizations/update-organization-settings"},{"title":"List all worker groups","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/worker-groups","href":"/api-reference/organizations/list-all-worker-groups"},{"title":"Create a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/organizations/worker-groups","href":"/api-reference/organizations/create-a-worker-group"},{"title":"Get a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/worker-groups/{group_id}","href":"/api-reference/organizations/get-a-worker-group"},{"title":"Update a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/organizations/worker-groups/{group_id}","href":"/api-reference/organizations/update-a-worker-group"},{"title":"Delete a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/organizations/worker-groups/{group_id}","href":"/api-reference/organizations/delete-a-worker-group"},{"title":"Add or remove members from a worker group","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/organizations/worker-groups/{group_id}/members","href":"/api-reference/organizations/add-or-remove-members-from-a-worker-group"},{"title":"Get organization by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/organizations/{organization_id}","href":"/api-reference/organizations/get-organization-by-id"}]},{"group":"plugins","pages":[{"title":"List Instances","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/plugins/instances","href":"/api-reference/plugins/list-instances"},{"title":"List Integrations","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/plugins/{plugin_name}/instances","href":"/api-reference/plugins/list-integrations"},{"title":"Create Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances","href":"/api-reference/plugins/create-integration"},{"title":"Update Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/plugins/{plugin_name}/instances/{integration_id}","href":"/api-reference/plugins/update-integration"},{"title":"Delete Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/plugins/{plugin_name}/instances/{integration_id}","href":"/api-reference/plugins/delete-integration"},{"title":"Execute Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances/{integration_id}/execute","href":"/api-reference/plugins/execute-integration"},{"title":"Poll Integration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances/{integration_id}/poll","href":"/api-reference/plugins/poll-integration"},{"title":"Get Ui Schema","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances/{integration_id}/ui_schema","href":"/api-reference/plugins/get-ui-schema"},{"title":"Handle Webhook","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/instances/{integration_id}/webhook/callback","href":"/api-reference/plugins/handle-webhook"},{"title":"Oauth Authorize","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/plugins/{plugin_name}/oauth/authorize","href":"/api-reference/plugins/oauth-authorize"},{"title":"Oauth Callback","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/plugins/{plugin_name}/{provider_name}/oauth/callback","href":"/api-reference/plugins/oauth-callback"}]},{"group":"profile","pages":[{"title":"Record the caller's acceptance of one or more documents","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/profile/accept-terms","href":"/api-reference/profile/record-the-callers-acceptance-of-one-or-more-documents"},{"title":"Whether this account has a password and whether it is SSO-managed","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/profile/credential-state","href":"/api-reference/profile/whether-this-account-has-a-password-and-whether-it-is-sso-managed"},{"title":"Grant or withdraw marketing consent","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/profile/marketing-consent","href":"/api-reference/profile/grant-or-withdraw-marketing-consent"},{"title":"Get current user profile","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/profile/me","href":"/api-reference/profile/get-current-user-profile"},{"title":"Update current user profile","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/profile/me","href":"/api-reference/profile/update-current-user-profile"},{"title":"Change the authenticated user's password","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/profile/password","href":"/api-reference/profile/change-the-authenticated-users-password"}]},{"group":"service-accounts","pages":[{"title":"List all service accounts","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/service-accounts","href":"/api-reference/service-accounts/list-all-service-accounts"},{"title":"Create a new service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/service-accounts","href":"/api-reference/service-accounts/create-a-new-service-account"},{"title":"Get a specific service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/get-a-specific-service-account"},{"title":"Delete a service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/delete-a-service-account"},{"title":"Update a service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/service-accounts/{service_account_id}","href":"/api-reference/service-accounts/update-a-service-account"},{"title":"List API keys for a service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/service-accounts/{service_account_id}/api-keys","href":"/api-reference/service-accounts/list-api-keys-for-a-service-account"},{"title":"Create an API key for a service account","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/service-accounts/{service_account_id}/api-keys","href":"/api-reference/service-accounts/create-an-api-key-for-a-service-account"},{"title":"Delete an API key","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/service-accounts/{service_account_id}/api-keys/{api_key_id}","href":"/api-reference/service-accounts/delete-an-api-key"},{"title":"Update an API key","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/service-accounts/{service_account_id}/api-keys/{api_key_id}","href":"/api-reference/service-accounts/update-an-api-key"}]},{"group":"sso","pages":[{"title":"Get SSO configuration for organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/sso","href":"/api-reference/sso/get-sso-configuration-for-organization"},{"title":"Create SSO configuration for organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/sso","href":"/api-reference/sso/create-sso-configuration-for-organization"},{"title":"Remove SSO configuration for organization","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json delete /api/sso","href":"/api-reference/sso/remove-sso-configuration-for-organization"},{"title":"Update SSO metadata configuration","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/sso","href":"/api-reference/sso/update-sso-metadata-configuration"},{"title":"Proxy SAML metadata to avoid CORS issues","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/sso/metadata","href":"/api-reference/sso/proxy-saml-metadata-to-avoid-cors-issues"},{"title":"Get Supabase SAML service-provider URLs","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/sso/service-provider-details","href":"/api-reference/sso/get-supabase-saml-service-provider-urls"}]},{"group":"task-data","pages":[{"title":"Analyze flow definition and extract schemas","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/task-data","href":"/api-reference/task-data/analyze-flow-definition-and-extract-schemas"}]},{"group":"task-executions","pages":[{"title":"List task executions with filtering","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-executions","href":"/api-reference/task-executions/list-task-executions-with-filtering"},{"title":"Update task execution and optionally re-execute flow","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json put /api/task-executions","href":"/api-reference/task-executions/update-task-execution-and-optionally-re-execute-flow"},{"title":"Create a task execution record","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/task-executions","href":"/api-reference/task-executions/create-a-task-execution-record"},{"title":"Retrieve a specific task execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-executions/{task_execution_id}","href":"/api-reference/task-executions/retrieve-a-specific-task-execution"}]},{"group":"task-executors","pages":[{"title":"List all available task executors","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-executors","href":"/api-reference/task-executors/list-all-available-task-executors"}]},{"group":"task-outputs","pages":[{"title":"List all task outputs","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-outputs","href":"/api-reference/task-outputs/list-all-task-outputs"},{"title":"Create task output","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json post /api/task-outputs","href":"/api-reference/task-outputs/create-task-output"},{"title":"Get task output by ID","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-outputs/{task_output_id}","href":"/api-reference/task-outputs/get-task-output-by-id"}]},{"group":"task-tags","pages":[{"title":"List active task tags for a flow execution","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json get /api/task-tags","href":"/api-reference/task-tags/list-active-task-tags-for-a-flow-execution"},{"title":"Add or remove task tags in batch","deprecated":null,"version":null,"openapi":"/openapi/superai-flows-openapi.json patch /api/task-tags","href":"/api-reference/task-tags/add-or-remove-task-tags-in-batch"}]}]}]},{"tab":"Changelog","icon":"bullhorn","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Update flow definition - SuperAI Flows","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}