Download OpenAPI specification:Download
List the caller's own A2A-published agent flows, each with its agent-card URL.
Authenticated and owner-scoped, mirroring the MCP-projects catalog: a public cross-user
directory would strip the per-flow card's unguessable-id obscurity and expose other users'
agents, so this enumerates only the calling user's agents. Each cardUrl is the public
discovery entry point an orchestrator fetches per agent.
[- { }
]Serve the spec-valid A2A agent card for an agent-typed, a2a_enabled flow.
Public by design: the A2A public agent card is unauthenticated by spec, so gating it behind login would break standard discovery. Returns 404 when the flag is off, the flow does not exist, the flow is not flow_type=agent, or a2a_enabled is falsy.
| flow_id required | string <uuid> (Flow Id) |
{ }Serve the A2A JSON-RPC surface (message/send, message/stream, tasks/get, tasks/resubscribe) for an agent flow.
Gated like the card route; apikey-folder flows additionally require a valid owner
key (401). The flow runs as its owner. Returns the SDK's JSON-RPC response (HTTP 200
even for JSON-RPC-level errors). No DbSession dependency here: holding a session
open across the run would fight the v2 surface's lock-avoidance design, and the
gate/run resolve from flow_id via short self-managed sessions.
| flow_id required | string <uuid> (Flow Id) |
nullChat with the Langflow Assistant.
Component Id (string) or Component Id (null) (Component Id) | |
Field Name (string) or Field Name (null) (Field Name) | |
| flow_id required | string (Flow Id) |
Input Value (string) or Input Value (null) (Input Value) | |
Iterations Limit (integer) or Iterations Limit (null) (Iterations Limit) | |
Max Retries (integer) or Max Retries (null) (Max Retries) | |
Model Name (string) or Model Name (null) (Model Name) | |
Provider (string) or Provider (null) (Provider) | |
Session Id (string) or Session Id (null) (Session Id) |
{- "component_id": "string",
- "field_name": "string",
- "flow_id": "string",
- "input_value": "string",
- "iterations_limit": 1,
- "max_retries": 1,
- "model_name": "string",
- "provider": "string",
- "session_id": "string"
}{ }Chat with the Langflow Assistant with streaming progress updates.
Component Id (string) or Component Id (null) (Component Id) | |
Field Name (string) or Field Name (null) (Field Name) | |
| flow_id required | string (Flow Id) |
Input Value (string) or Input Value (null) (Input Value) | |
Iterations Limit (integer) or Iterations Limit (null) (Iterations Limit) | |
Max Retries (integer) or Max Retries (null) (Max Retries) | |
Model Name (string) or Model Name (null) (Model Name) | |
Provider (string) or Provider (null) (Provider) | |
Session Id (string) or Session Id (null) (Session Id) |
{- "component_id": "string",
- "field_name": "string",
- "flow_id": "string",
- "input_value": "string",
- "iterations_limit": 1,
- "max_retries": 1,
- "model_name": "string",
- "provider": "string",
- "session_id": "string"
}nullExecute a named flow from the flows directory.
Named assistant flows embed an Agent that needs provider/model/api-key context. Resolving it here (instead of running the raw file) turns a silent 500 into a successful run, or a clear 4xx when no provider is set.
| flow_name required | string (Flow Name) |
Component Id (string) or Component Id (null) (Component Id) | |
Field Name (string) or Field Name (null) (Field Name) | |
| flow_id required | string (Flow Id) |
Input Value (string) or Input Value (null) (Input Value) | |
Iterations Limit (integer) or Iterations Limit (null) (Iterations Limit) | |
Max Retries (integer) or Max Retries (null) (Max Retries) | |
Model Name (string) or Model Name (null) (Model Name) | |
Provider (string) or Provider (null) (Provider) | |
Session Id (string) or Session Id (null) (Session Id) |
{- "component_id": "string",
- "field_name": "string",
- "flow_id": "string",
- "input_value": "string",
- "iterations_limit": 1,
- "max_retries": 1,
- "model_name": "string",
- "provider": "string",
- "session_id": "string"
}{ }Return the contents of a sandboxed file as text (or as an attachment).
Raises:
HTTPException(400): The path shape is invalid (traversal, absolute,
null byte, etc.). No I/O is attempted.
HTTPException(404): The file does not exist in the requesting user's
sandbox. Same status for sandbox-internal "not found" and for
"path resolves outside the user namespace" — by design, to avoid
leaking namespace existence to another tenant.
HTTPException(413): The file is larger than MAX_FILE_SIZE_BYTES.
HTTPException(415): The file is binary (null byte in the first 8 KiB).
| path required | string (Path) [ 1 .. 1024 ] characters |
| download | boolean (Download) Default: false |
nullDrop the calling user's session-scoped state.
Wipes:
- conversation buffer for session_id (if provided).
- registered components under the user's FS sandbox.
The user id is sourced from the authenticated session — the
session_id query parameter only addresses the conversation
buffer entry and is never trusted for path resolution.
Returns a small envelope describing what was cleared, sufficient for ops/log correlation but stripped of anything sensitive:
{"status": "ok", "components_cleared": <int>, "session_id": <str|null>}
Session Id (string) or Session Id (null) (Session Id) |
{ }Retrieve all component types with compression for better performance.
Returns a compressed response containing all available component types, with display_names translated to the locale indicated by Accept-Language.
nullRetrieve application configuration settings.
Returns different configuration based on authentication status:
Args: user: The authenticated user, or None if unauthenticated.
Returns: ConfigResponse | PublicConfigResponse: Configuration settings appropriate for the user's auth status.
Raises: HTTPException: If an error occurs while retrieving the configuration.
{- "a2a_enabled": false,
- "allow_custom_components": true,
- "authz_enabled": false,
- "auto_saving": true,
- "auto_saving_interval": 0,
- "custom_component_admin_only": true,
- "default_folder_name": "string",
- "embedded_mode": true,
- "enable_extension_reload": true,
- "event_delivery": "polling",
- "feature_flags": {
- "mvp_components": false,
- "wxo_deployments": false
}, - "frontend_timeout": 0,
- "health_check_max_retries": 0,
- "hide_getting_started_progress": true,
- "hide_logout_button": true,
- "hide_new_flow_button": true,
- "hide_new_project_button": true,
- "hide_starter_projects": true,
- "max_file_size_upload": 0,
- "mcp_base_url": "string",
- "mcp_servers_locked": true,
- "public_flow_cleanup_interval": 0,
- "public_flow_expiration": 0,
- "serialization_max_items_length": 0,
- "serialization_max_text_length": 0,
- "type": "full",
- "voice_mode_available": true,
- "webhook_auth_enable": true,
- "webhook_polling_interval": 0
}Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.
This endpoint supports running flows with caching to enhance performance and efficiency.
flow (Flow): The flow object to be executed, resolved via dependency injection.inputs (List[InputValueRequest], optional): A list of inputs specifying the input values and components
for the flow. Each input can target specific components and provide custom values.outputs (List[str], optional): A list of output names to retrieve from the executed flow.
If not provided, all outputs are returned.tweaks (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.
The tweaks can be used to modify the flow's parameters and components.
Tweaks can be overridden by the input values.stream (bool, optional): Specifies whether the results should be streamed. Defaults to False.session_id (Union[None, str], optional): An optional session ID to utilize existing session data for the flow
execution.api_key_user (User): The user associated with the current API key. Automatically resolved from the API key.A RunResponse object containing the selected outputs (or all if not specified) of the executed flow
and the session ID.
The structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.
HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during flow execution.
POST /run/flow_id
x-api-key: YOUR_API_KEY
Payload:
{
"inputs": [
{"components": ["component1"], "input_value": "value1"},
{"components": ["component3"], "input_value": "value2"}
],
"outputs": ["Component Name", "component_id"],
"tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}
"stream": false
}
This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations, catering to diverse application requirements.
| flow_id_or_name required | string (Flow Id Or Name) |
Array of Inputs (objects) or Inputs (null) (Inputs) | |
Array of Outputs (strings) or Outputs (null) (Outputs) | |
Session Id (string) or Session Id (null) (Session Id) | |
| stream | boolean (Stream) Default: false |
Tweaks (object) or null |
{- "inputs": [
- {
- "components": [
- "components_id",
- "Component Name"
], - "input_value": "input_value",
- "session": "session_id"
}
], - "outputs": [
- "string"
], - "session_id": "string",
- "stream": false,
- "tweaks": {
- "Component Name": {
- "parameter_name": "value"
}, - "component_id": {
- "parameter_name": "value"
}, - "parameter_name": "value",
- "stream": false,
- "temperature": 0.7
}
}{- "outputs": [ ],
- "session_id": "string"
}Executes a specified flow by ID with support for streaming and telemetry (API key auth).
This endpoint executes a flow identified by ID or name, with options for streaming the response and tracking execution metrics. It handles both streaming and non-streaming execution modes. This endpoint uses API key authentication (Bearer token).
Args: background_tasks (BackgroundTasks): FastAPI background task manager flow (FlowRead | None): The flow to execute, loaded via dependency input_request (SimplifiedAPIRequest | None): Input parameters for the flow stream (bool): Whether to stream the response api_key_user (UserRead): Authenticated user from API key context (dict | None): Optional context to pass to the flow http_request (Request): The incoming HTTP request for extracting global variables
Returns: Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results or a RunResponse with the complete execution results
Raises: HTTPException: For flow not found (404) or invalid input (400) APIException: For internal execution errors (500)
Notes: - Supports both streaming and non-streaming execution modes - Tracks execution time and success/failure via telemetry - Handles graceful client disconnection in streaming mode - Provides detailed error handling with appropriate HTTP status codes - Extracts global variables from HTTP headers with prefix X-LANGFLOW-GLOBAL-VAR-* - Merges extracted variables with the context parameter as "request_variables" - In streaming mode, uses EventManager to handle events: - "add_message": New messages during execution - "token": Individual tokens during streaming - "end": Final execution result - Authentication: Requires API key (Bearer token)
| flow_id_or_name required | string (Flow Id Or Name) |
| stream | boolean (Stream) Default: false |
Context (object) or Context (null) (Context) | |
SimplifiedAPIRequest (object) or null |
{- "context": { },
- "input_request": {
- "input_type": "chat",
- "input_value": "string",
- "output_component": "",
- "output_type": "chat",
- "session_id": "string",
- "tweaks": {
- "Component Name": {
- "parameter_name": "value"
}, - "component_id": {
- "parameter_name": "value"
}, - "parameter_name": "value",
- "stream": false,
- "temperature": 0.7
}, - "user_id": "string"
}
}nullRun a flow using a webhook request.
Args: auth: Resolved webhook user and flow, scoped to the authenticated caller. request: The incoming HTTP request.
Returns: A dictionary containing the status of the task.
Raises: HTTPException: If the flow is not found or if there is an error processing the request.
| flow_id_or_name required | string (Flow Id Or Name) |
{ }Return a paginated slice of the audit log filtered by the given query params.
Superuser only. The composite indexes on (user_id, timestamp) and
(resource_type, resource_id) keep both "show me events for user X"
and "show me events on resource Y" fast at scale.
User Id (string) or User Id (null) (User Id) Filter by acting user id. | |
Resource Type (string) or Resource Type (null) (Resource Type) Filter by resource type slug, e.g. | |
Resource Id (string) or Resource Id (null) (Resource Id) Filter by resource UUID. | |
Action (string) or Action (null) (Action) Filter by action string, e.g. | |
Result (string) or Result (null) (Result) Filter by decision result ( | |
Since (string) or Since (null) (Since) Inclusive lower bound on | |
Until (string) or Until (null) (Until) Exclusive upper bound on | |
| page | integer (Page) >= 1 Default: 1 |
| size | integer (Size) [ 1 .. 200 ] Default: 50 |
{- "items": [
- {
- "action": "string",
- "details": { },
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
- "resource_type": "string",
- "result": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
], - "page": 0,
- "pages": 0,
- "size": 0,
- "total": 0
}Return a paginated slice of the audit log filtered by the given query params.
Superuser only. The composite indexes on (user_id, timestamp) and
(resource_type, resource_id) keep both "show me events for user X"
and "show me events on resource Y" fast at scale.
User Id (string) or User Id (null) (User Id) Filter by acting user id. | |
Resource Type (string) or Resource Type (null) (Resource Type) Filter by resource type slug, e.g. | |
Resource Id (string) or Resource Id (null) (Resource Id) Filter by resource UUID. | |
Action (string) or Action (null) (Action) Filter by action string, e.g. | |
Result (string) or Result (null) (Result) Filter by decision result ( | |
Since (string) or Since (null) (Since) Inclusive lower bound on | |
Until (string) or Until (null) (Until) Exclusive upper bound on | |
| page | integer (Page) >= 1 Default: 1 |
| size | integer (Size) [ 1 .. 200 ] Default: 50 |
{- "items": [
- {
- "action": "string",
- "details": { },
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
- "resource_type": "string",
- "result": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
], - "page": 0,
- "pages": 0,
- "size": 0,
- "total": 0
}Return per-resource allowed actions for the current user.
Use this to render the UI permission gate (greyed-out buttons etc.) without flooding the audit log with denied probes. Empty list for a resource_id means the user cannot perform any of the requested actions on that resource.
Array of Actions (strings) or Actions (null) (Actions) Actions to check. Each entry is lowercased and de-duplicated; the list is capped at 10. Defaults to read/write/execute/delete/create. | |
| domain | string (Domain) Default: "*" Authorization domain — typically |
| resource_ids required | Array of strings <uuid> (Resource Ids) [ items <uuid > ] Resource IDs to evaluate. Capped at 500 per request to keep batch_enforce bounded. |
| resource_type required | string (Resource Type) Enum: "flow" "deployment" "project" "knowledge_base" "variable" "file" "component" |
{- "actions": [
- "string"
], - "domain": "*",
- "resource_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "resource_type": "flow"
}{- "permissions": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "resource_type": "flow"
}List role assignments scoped to one user.
user_id defaults to the caller — no superuser needed.user_id == self.id is the same as omitting it.user_id requires superuser; otherwise 403.Results are always filtered by the resolved user_id. Admins who need
cross-user lookups make one call per user. Paginated via limit /
offset (default 100, max 200).
User Id (string) or User Id (null) (User Id) Filter by user | |
Role Id (string) or Role Id (null) (Role Id) Filter by role | |
Domain Type (string) or Domain Type (null) (Domain Type) | |
Domain Id (string) or Domain Id (null) (Domain Id) | |
| limit | integer (Limit) [ 1 .. 200 ] Default: 100 |
| offset | integer (Offset) >= 0 Default: 0 |
[- {
- "assigned_at": "2019-08-24T14:15:22Z",
- "assigned_by": "dd7cba77-7080-4b0e-9a94-fdfd1232f6b4",
- "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
- "domain_type": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
]Assign a role to a user. Superuser-only.
Domain Id (string) or Domain Id (null) (Domain Id) Required when | |
| domain_type | string (Domain Type) Default: "global" Enum: "global" "org" "workspace" "project" Domain scope of the assignment. |
| role_id required | string <uuid> (Role Id) |
| user_id required | string <uuid> (User Id) |
{- "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
- "domain_type": "global",
- "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}{- "assigned_at": "2019-08-24T14:15:22Z",
- "assigned_by": "dd7cba77-7080-4b0e-9a94-fdfd1232f6b4",
- "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
- "domain_type": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}List role assignments scoped to one user.
user_id defaults to the caller — no superuser needed.user_id == self.id is the same as omitting it.user_id requires superuser; otherwise 403.Results are always filtered by the resolved user_id. Admins who need
cross-user lookups make one call per user. Paginated via limit /
offset (default 100, max 200).
User Id (string) or User Id (null) (User Id) Filter by user | |
Role Id (string) or Role Id (null) (Role Id) Filter by role | |
Domain Type (string) or Domain Type (null) (Domain Type) | |
Domain Id (string) or Domain Id (null) (Domain Id) | |
| limit | integer (Limit) [ 1 .. 200 ] Default: 100 |
| offset | integer (Offset) >= 0 Default: 0 |
[- {
- "assigned_at": "2019-08-24T14:15:22Z",
- "assigned_by": "dd7cba77-7080-4b0e-9a94-fdfd1232f6b4",
- "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
- "domain_type": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
]Assign a role to a user. Superuser-only.
Domain Id (string) or Domain Id (null) (Domain Id) Required when | |
| domain_type | string (Domain Type) Default: "global" Enum: "global" "org" "workspace" "project" Domain scope of the assignment. |
| role_id required | string <uuid> (Role Id) |
| user_id required | string <uuid> (User Id) |
{- "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
- "domain_type": "global",
- "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}{- "assigned_at": "2019-08-24T14:15:22Z",
- "assigned_by": "dd7cba77-7080-4b0e-9a94-fdfd1232f6b4",
- "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
- "domain_type": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}Revoke a role assignment. Superuser-only.
| assignment_id required | string <uuid> (Assignment Id) |
{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}List roles. Open to authenticated users so the UI can populate dropdowns.
Paginated via limit / offset so a single call cannot return the
entire catalog of roles + their permissions. Stable order is (name, id)
so offset is deterministic across calls.
Is System (boolean) or Is System (null) (Is System) Filter by is_system flag | |
Name (string) or Name (null) (Name) Substring match on role name | |
| limit | integer (Limit) [ 1 .. 200 ] Default: 100 |
| offset | integer (Offset) >= 0 Default: 0 |
[- {
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_system": true,
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Create a custom (non-system) role. Superuser-only.
Description (string) or Description (null) (Description) | |
| name required | string (Name) [ 1 .. 255 ] characters |
Parent Role Id (string) or Parent Role Id (null) (Parent Role Id) | |
| permissions | Array of strings (Permissions) Permission slugs in the canonical |
{- "description": "string",
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
]
}{- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_system": true,
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}List roles. Open to authenticated users so the UI can populate dropdowns.
Paginated via limit / offset so a single call cannot return the
entire catalog of roles + their permissions. Stable order is (name, id)
so offset is deterministic across calls.
Is System (boolean) or Is System (null) (Is System) Filter by is_system flag | |
Name (string) or Name (null) (Name) Substring match on role name | |
| limit | integer (Limit) [ 1 .. 200 ] Default: 100 |
| offset | integer (Offset) >= 0 Default: 0 |
[- {
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_system": true,
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Create a custom (non-system) role. Superuser-only.
Description (string) or Description (null) (Description) | |
| name required | string (Name) [ 1 .. 255 ] characters |
Parent Role Id (string) or Parent Role Id (null) (Parent Role Id) | |
| permissions | Array of strings (Permissions) Permission slugs in the canonical |
{- "description": "string",
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
]
}{- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_system": true,
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Delete a custom role.
System roles cannot be deleted; roles with active assignments return 409 (delete the assignments first).
| role_id required | string <uuid> (Role Id) |
{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}| role_id required | string <uuid> (Role Id) |
{- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_system": true,
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Update fields on a custom role. System roles are read-only.
| role_id required | string <uuid> (Role Id) |
Description (string) or Description (null) (Description) | |
Name (string) or Name (null) (Name) | |
Parent Role Id (string) or Parent Role Id (null) (Parent Role Id) | |
Array of Permissions (strings) or Permissions (null) (Permissions) |
{- "description": "string",
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
]
}{- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_system": true,
- "name": "string",
- "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
- "permissions": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}List teams. Open to any authenticated user (for the share dialog's team picker).
Paginated via limit / offset so a single call cannot enumerate every
team. Stable order is (team_name, id) so offset is deterministic.
Search (string) or Search (null) (Search) Substring match on team_name or adom_name | |
Is Active (boolean) or Is Active (null) (Is Active) | |
| limit | integer (Limit) [ 1 .. 200 ] Default: 100 |
| offset | integer (Offset) >= 0 Default: 0 |
[- {
- "adom_name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "team_name": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| adom_name required | string (Adom Name) [ 1 .. 255 ] characters Administrative-domain slug, unique across all teams (often the SSO group name). |
Description (string) or Description (null) (Description) | |
| is_active | boolean (Is Active) Default: true |
| team_name required | string (Team Name) [ 1 .. 255 ] characters |
{- "adom_name": "string",
- "description": "string",
- "is_active": true,
- "team_name": "string"
}{- "adom_name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "team_name": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}List teams. Open to any authenticated user (for the share dialog's team picker).
Paginated via limit / offset so a single call cannot enumerate every
team. Stable order is (team_name, id) so offset is deterministic.
Search (string) or Search (null) (Search) Substring match on team_name or adom_name | |
Is Active (boolean) or Is Active (null) (Is Active) | |
| limit | integer (Limit) [ 1 .. 200 ] Default: 100 |
| offset | integer (Offset) >= 0 Default: 0 |
[- {
- "adom_name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "team_name": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| adom_name required | string (Adom Name) [ 1 .. 255 ] characters Administrative-domain slug, unique across all teams (often the SSO group name). |
Description (string) or Description (null) (Description) | |
| is_active | boolean (Is Active) Default: true |
| team_name required | string (Team Name) [ 1 .. 255 ] characters |
{- "adom_name": "string",
- "description": "string",
- "is_active": true,
- "team_name": "string"
}{- "adom_name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "team_name": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}| team_id required | string <uuid> (Team Id) |
{- "adom_name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "team_name": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}| team_id required | string <uuid> (Team Id) |
Adom Name (string) or Adom Name (null) (Adom Name) | |
Description (string) or Description (null) (Description) | |
Is Active (boolean) or Is Active (null) (Is Active) | |
Team Name (string) or Team Name (null) (Team Name) |
{- "adom_name": "string",
- "description": "string",
- "is_active": true,
- "team_name": "string"
}{- "adom_name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "team_name": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}List members of a team. Any authenticated user (so the UI can render team rosters).
Paginated via limit / offset so a single call cannot enumerate a
large team's full roster. Stable order is (created_at, user_id).
| team_id required | string <uuid> (Team Id) |
| limit | integer (Limit) [ 1 .. 200 ] Default: 100 |
| offset | integer (Offset) >= 0 Default: 0 |
[- {
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "string",
- "team_id": "810007d0-bec5-486c-b5d1-28fcd8a079ba",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
]| team_id required | string <uuid> (Team Id) |
| source | string (Source) Default: "manual" Enum: "manual" "sso" |
| user_id required | string <uuid> (User Id) |
{- "source": "manual",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}{- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source": "string",
- "team_id": "810007d0-bec5-486c-b5d1-28fcd8a079ba",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}| team_id required | string <uuid> (Team Id) |
| user_id required | string <uuid> (User Id) |
{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}Build and process a flow, returning a job ID for event polling.
This endpoint requires authentication through the CurrentActiveUser dependency. For public flows that don't require authentication, use the /build_public_tmp/flow_id/flow endpoint.
Args: flow_id: UUID of the flow to build background_tasks: Background tasks manager inputs: Optional input values for the flow data: Optional flow data files: Optional files to include stop_component_id: Optional ID of component to stop at start_component_id: Optional ID of component to start from log_builds: Whether to log the build process current_user: The authenticated user queue_service: Queue service for job management flow_name: Optional name for the flow event_delivery: Optional event delivery type - default is streaming
Returns: Dict with job_id that can be used to poll for build status
| flow_id required | string <uuid> (Flow Id) |
Stop Component Id (string) or Stop Component Id (null) (Stop Component Id) | |
Start Component Id (string) or Start Component Id (null) (Start Component Id) | |
| log_builds | boolean (Log Builds) Default: true |
Flow Name (string) or Flow Name (null) (Flow Name) | |
| event_delivery | string (EventDeliveryType) Default: "polling" Enum: "streaming" "direct" "polling" |
FlowDataRequest (object) or null | |
Array of Files (strings) or Files (null) (Files) | |
InputValueRequest (object) or null |
{- "data": {
- "edges": [
- { }
], - "nodes": [
- { }
], - "viewport": { }
}, - "files": [
- "string"
], - "inputs": {
- "components": [
- "components_id",
- "Component Name"
], - "input_value": "input_value",
- "session": "session_id"
}
}nullCancel a specific build job.
Requires authentication and ownership verification to prevent a user from aborting another user's running build (DoS via job cancellation). Jobs with no registered owner (build_public_tmp) are accessible to any authenticated user, consistent with get_build_events.
| job_id required | string (Job Id) |
{- "message": "string",
- "success": true
}Get events for a specific build job.
Requires authentication and ownership verification. A job owner is registered when build_flow is called; if a registered owner does not match the requesting user the endpoint returns 404 to avoid leaking job existence. Jobs started via build_public_tmp have no registered owner and remain accessible to any authenticated user.
| job_id required | string (Job Id) |
| event_delivery | string (EventDeliveryType) Default: "streaming" Enum: "streaming" "direct" "polling" |
nullBuild a public flow without requiring authentication.
This endpoint is specifically for public flows that don't require authentication. It uses a client_id cookie to create a deterministic flow ID for tracking purposes.
Security Note:
The endpoint:
Requirements:
Args: flow_id: UUID of the public flow to build background_tasks: Background tasks manager inputs: Optional input values for the flow files: Optional files to include stop_component_id: Optional ID of component to stop at start_component_id: Optional ID of component to start from log_builds: Whether to log the build process flow_name: Optional name for the flow request: FastAPI request object (needed for cookie access) queue_service: Queue service for job management authenticated_user: Optional authenticated user (resolved from cookie/token if present) event_delivery: Optional event delivery type - default is streaming
Returns: Dict with job_id that can be used to poll for build status
| flow_id required | string <uuid> (Flow Id) |
Stop Component Id (string) or Stop Component Id (null) (Stop Component Id) | |
Start Component Id (string) or Start Component Id (null) (Start Component Id) | |
Log Builds (boolean) or Log Builds (null) (Log Builds) Default: true | |
Flow Name (string) or Flow Name (null) (Flow Name) | |
| event_delivery | string (EventDeliveryType) Default: "polling" Enum: "streaming" "direct" "polling" |
Array of Files (strings) or Files (null) (Files) | |
InputValueRequest (object) or null |
{- "files": [
- "string"
], - "inputs": {
- "components": [
- "components_id",
- "Component Name"
], - "input_value": "input_value",
- "session": "session_id"
}
}nullCancel a public flow build job.
This endpoint does not require authentication, matching the public build endpoint. It is used by the shareable playground to cancel builds.
| job_id required | string (Job Id) |
{- "message": "string",
- "success": true
}Get events for a public flow build job.
This endpoint does not require authentication, matching the public build endpoint. It is used by the shareable playground to consume build events.
| job_id required | string (Job Id) |
| event_delivery | string (EventDeliveryType) Default: "streaming" Enum: "streaming" "direct" "polling" |
nullPoll for extension lifecycle events the current user has triggered.
Events are scoped to the authenticated user via a server-derived keyspace
(user:{user_id}); there is no client-controllable keyspace, so an
authenticated user cannot read another user's flow-migration or
bundle-reload events. A client-supplied keyspace query parameter is
rejected with 422 so the contract is explicit -- previously the value was
silently dropped, which masked client bugs that assumed it had effect.
svc.since() uses blocking sqlite3; run in a thread pool so the asyncio event loop is not held while waiting on disk I/O.
| since | number (Since) Default: 0 UTC epoch timestamp; return events after this cursor |
{- "events": [
- {
- "payload": { },
- "timestamp": 0,
- "type": "string"
}
], - "settled": true
}Trigger an atomic-swap reload for a single Bundle.
Returns the typed :class:~lfx.extension.reload.ReloadResult body on
success. Per the typed-error contract, structural failures
(broken bundle, missing source path, name mismatch) surface as
422 Unprocessable Entity with the first typed error in the body
so clients can surface fix hints inline; the full ReloadResult
payload (with all errors and warnings) is returned via the FastAPI
detail envelope. Concurrency-control collisions surface as
409 Conflict (reload-in-progress). Non-2xx is the wire
contract for every error path -- the body still carries the typed
error so the client renders the same fix-hint envelope.
| extension_id required | string (Extension Id) |
| bundle_name required | string (Bundle Name) |
{ }Download profile picture from local filesystem.
Profile pictures are first looked up in config_dir/profile_pictures/, then fallback to the package's bundled profile_pictures directory.
| folder_name required | string (Folder Name) |
| file_name required | string (File Name) |
null| flow_id required | string <uuid> (Flow Id) |
| file required | string <application/octet-stream> (File) |
{- "file_path": "string",
- "flowId": "string"
}List the files available to the current user.
[- {
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "path": "string",
- "provider": "string",
- "size": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
]Upload a file for the current user and track it in the database.
| append | boolean (Append) Default: false |
| ephemeral | boolean (Ephemeral) Default: false |
| file required | string <application/octet-stream> (File) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "path": "string",
- "provider": "string",
- "size": 0
}List the files available to the current user.
[- {
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "path": "string",
- "provider": "string",
- "size": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
]Upload a file for the current user and track it in the database.
| append | boolean (Append) Default: false |
| ephemeral | boolean (Ephemeral) Default: false |
| file required | string <application/octet-stream> (File) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "path": "string",
- "provider": "string",
- "size": 0
}Delete multiple files by their IDs.
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]nullDownload multiple files as a zip file by their IDs.
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]nullDownload a file by its ID or return its content as a string/bytes.
Args: file_id: UUID of the file. current_user: Authenticated user. session: Database session. storage_service: File storage service. return_content: If True, return raw content (str) instead of StreamingResponse.
Returns: StreamingResponse for client downloads or str for internal use.
| file_id required | string <uuid> (File Id) |
| return_content | boolean (Return Content) Default: false |
nullEdit the name of a file by its ID.
| file_id required | string <uuid> (File Id) |
| name required | string (Name) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "path": "string",
- "provider": "string",
- "size": 0
}Delete multiple flows by their IDs.
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]nullRetrieve a list of flows with optional pagination, filtering, and header-only mode.
| remove_example_flows | boolean (Remove Example Flows) Default: false |
| components_only | boolean (Components Only) Default: false |
| get_all | boolean (Get All) Default: true |
Folder Id (string) or Folder Id (null) (Folder Id) | |
FlowType (string) or Flow Type (null) (Flow Type) | |
| header_flows | boolean (Header Flows) Default: false |
| page | integer (Page) >= 1 Default: 1 |
| size | integer (Size) [ 1 .. 100 ] Default: 50 |
[ ]A2A Card Overrides (object) or A2A Card Overrides (null) (A2A Card Overrides) User overrides for the generated A2A agent card (skill description, examples, tags) | |
A2A Enabled (boolean) or A2A Enabled (null) (A2A Enabled) Default: false Can be exposed as an A2A agent (only meaningful when flow_type=agent) | |
| access_type | string (AccessTypeEnum) Default: "PRIVATE" Enum: "PRIVATE" "PUBLIC" |
Action Description (string) or Action Description (null) (Action Description) The description of the action associated with the flow | |
Action Name (string) or Action Name (null) (Action Name) The name of the action associated with the flow | |
Data (object) or Data (null) (Data) | |
Description (string) or Description (null) (Description) | |
Endpoint Name (string) or Endpoint Name (null) (Endpoint Name) | |
| flow_type | string (FlowType) Default: "workflow" Enum: "workflow" "agent" Whether the flow is a plain workflow or an agent (publishable over A2A) |
Folder Id (string) or Folder Id (null) (Folder Id) | |
Fs Path (string) or Fs Path (null) (Fs Path) | |
Gradient (string) or Gradient (null) (Gradient) | |
Icon (string) or Icon (null) (Icon) | |
Icon Bg Color (string) or Icon Bg Color (null) (Icon Bg Color) | |
Id (string) or Id (null) (Id) | |
Is Component (boolean) or Is Component (null) (Is Component) Default: false | |
Locked (boolean) or Locked (null) (Locked) Default: false | |
Mcp Enabled (boolean) or Mcp Enabled (null) (Mcp Enabled) Default: false Can be exposed in the MCP server | |
| name required | string (Name) |
Array of Tags (strings) or Tags (null) (Tags) | |
Updated At (string) or Updated At (null) (Updated At) | |
User Id (string) or User Id (null) (User Id) | |
Webhook (boolean) or Webhook (null) (Webhook) Default: false Can be used on the webhook endpoint | |
Workspace Id (string) or Workspace Id (null) (Workspace Id) |
{- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "fs_path": "string",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}{- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}[- {
- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Create multiple new flows.
required | Array of objects (Flows) | ||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||
{- "flows": [
- {
- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "fs_path": "string",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]
}[- {
- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Download all flows as a zip file.
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]nullRead a public flow without requiring authorization (public means public).
Because this endpoint is unauthenticated, secret field values (every template
field marked password) are stripped before returning so a PUBLIC flow does
not leak the owner's stored API keys / credentials to anonymous callers.
| flow_id required | string <uuid> (Flow Id) |
{- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Upload flows from a JSON or ZIP file (upsert semantics for flows with stable IDs).
Folder Id (string) or Folder Id (null) (Folder Id) |
File (string) or File (null) (File) | |
Any of string <application/octet-stream> (File) | |
[- {
- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Read a flow.
| flow_id required | string <uuid> (Flow Id) |
{- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Update a flow.
| flow_id required | string <uuid> (Flow Id) |
A2A Card Overrides (object) or A2A Card Overrides (null) (A2A Card Overrides) | |
A2A Enabled (boolean) or A2A Enabled (null) (A2A Enabled) | |
AccessTypeEnum (string) or null | |
Action Description (string) or Action Description (null) (Action Description) | |
Action Name (string) or Action Name (null) (Action Name) | |
Data (object) or Data (null) (Data) | |
Description (string) or Description (null) (Description) | |
Endpoint Name (string) or Endpoint Name (null) (Endpoint Name) | |
FlowType (string) or null | |
Folder Id (string) or Folder Id (null) (Folder Id) | |
Fs Path (string) or Fs Path (null) (Fs Path) | |
Locked (boolean) or Locked (null) (Locked) | |
Mcp Enabled (boolean) or Mcp Enabled (null) (Mcp Enabled) | |
Name (string) or Name (null) (Name) | |
Workspace Id (string) or Workspace Id (null) (Workspace Id) |
{- "a2a_card_overrides": { },
- "a2a_enabled": true,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "fs_path": "string",
- "locked": true,
- "mcp_enabled": true,
- "name": "string",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}{- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Create or update a flow with a specific ID (upsert).
Returns 201 for creation, 200 for update. Returns 404 if owned by another user.
| flow_id required | string <uuid> (Flow Id) |
A2A Card Overrides (object) or A2A Card Overrides (null) (A2A Card Overrides) User overrides for the generated A2A agent card (skill description, examples, tags) | |
A2A Enabled (boolean) or A2A Enabled (null) (A2A Enabled) Default: false Can be exposed as an A2A agent (only meaningful when flow_type=agent) | |
| access_type | string (AccessTypeEnum) Default: "PRIVATE" Enum: "PRIVATE" "PUBLIC" |
Action Description (string) or Action Description (null) (Action Description) The description of the action associated with the flow | |
Action Name (string) or Action Name (null) (Action Name) The name of the action associated with the flow | |
Data (object) or Data (null) (Data) | |
Description (string) or Description (null) (Description) | |
Endpoint Name (string) or Endpoint Name (null) (Endpoint Name) | |
| flow_type | string (FlowType) Default: "workflow" Enum: "workflow" "agent" Whether the flow is a plain workflow or an agent (publishable over A2A) |
Folder Id (string) or Folder Id (null) (Folder Id) | |
Fs Path (string) or Fs Path (null) (Fs Path) | |
Gradient (string) or Gradient (null) (Gradient) | |
Icon (string) or Icon (null) (Icon) | |
Icon Bg Color (string) or Icon Bg Color (null) (Icon Bg Color) | |
Id (string) or Id (null) (Id) | |
Is Component (boolean) or Is Component (null) (Is Component) Default: false | |
Locked (boolean) or Locked (null) (Locked) Default: false | |
Mcp Enabled (boolean) or Mcp Enabled (null) (Mcp Enabled) Default: false Can be exposed in the MCP server | |
| name required | string (Name) |
Array of Tags (strings) or Tags (null) (Tags) | |
Updated At (string) or Updated At (null) (Updated At) | |
User Id (string) or User Id (null) (User Id) | |
Webhook (boolean) or Webhook (null) (Webhook) Default: false Can be used on the webhook endpoint | |
Workspace Id (string) or Workspace Id (null) (Workspace Id) |
{- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "fs_path": "string",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}{- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Return translated note node descriptions for the current locale.
Returns a mapping of node_id → translated markdown text. Only nodes with a matching translation key are included; nodes without translations are omitted so the caller can leave them unchanged.
A missing or inaccessible flow yields 404 (via AuthorizedReadFlow),
consistent with GET /flows/{id}; the sole frontend caller (NoteNode)
treats that as "no translations" and renders the original text.
| flow_id required | string <uuid> (Flow Id) |
{- "property1": "string",
- "property2": "string"
}Get a list of starter projects.
[- {
- "data": {
- "edges": [
- { }
], - "nodes": [
- { }
], - "viewport": {
- "x": 0,
- "y": 0,
- "zoom": 0
}
}, - "description": "string",
- "endpoint_name": "string",
- "is_component": true,
- "name": "string"
}
]| flow_id required | string <uuid> (Flow Id) |
| since | number (Since) Default: 0 UTC timestamp to get events after |
{- "events": [
- {
- "summary": "string",
- "timestamp": 0,
- "type": "string"
}
], - "settled": true
}Append an event to a flow's event queue.
| flow_id required | string <uuid> (Flow Id) |
| summary | string (Summary) <= 500 characters Default: "" |
| type required | string (Type) Enum: "component_added" "component_removed" "component_configured" "connection_added" "connection_removed" "flow_updated" "flow_settled" |
{- "summary": "",
- "type": "component_added"
}{- "summary": "string",
- "timestamp": 0,
- "type": "string"
}Update the MCP settings of all flows in a project and project-level auth settings.
On MCP Composer failure, this endpoint should return with a 200 status code and an error message in the body of the response to display to the user.
| project_id required | string <uuid> (Project Id) |
AuthSettings (object) or null | |
required | Array of objects (Settings) |
{- "auth_settings": {
- "auth_type": "none",
- "oauth_auth_url": "string",
- "oauth_callback_path": "string",
- "oauth_callback_url": "string",
- "oauth_client_id": "string",
- "oauth_client_secret": "pa$$word",
- "oauth_host": "string",
- "oauth_mcp_scope": "string",
- "oauth_port": "string",
- "oauth_provider_scope": "string",
- "oauth_server_url": "string",
- "oauth_token_url": "string"
}, - "settings": [
- {
- "action_description": "string",
- "action_name": "string",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "mcp_enabled": true,
- "name": "string"
}
]
}nullGet the MCP Composer URL for a specific project.
On failure, this endpoint should return with a 200 status code and an error message in the body of the response to display to the user.
| project_id required | string <uuid> (Project Id) |
{- "error_message": "string",
- "legacy_sse_url": "string",
- "project_id": "string",
- "streamable_http_url": "string",
- "uses_composer": true
}Install MCP server configuration for Cursor, Windsurf, or Claude.
| project_id required | string <uuid> (Project Id) |
| client required | string (Client) |
Transport (string) or Transport (null) (Transport) |
{- "client": "string",
- "transport": "sse"
}nullCheck if MCP server configuration is installed for this project in Cursor, Windsurf, or Claude.
| project_id required | string <uuid> (Project Id) |
null| flow_id required | string <uuid> (Flow Id) |
{- "vertex_builds": {
- "property1": [
- {
- "artifacts": { },
- "build_id": "bfb1f3fa-bf7b-43a5-9e0b-26cc050e44cb",
- "data": { },
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "params": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "valid": true
}
], - "property2": [
- {
- "artifacts": { },
- "build_id": "bfb1f3fa-bf7b-43a5-9e0b-26cc050e44cb",
- "data": { },
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "string",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "params": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "valid": true
}
]
}
}Return a snapshot of job-queue observability metrics.
For the in-memory backend this exposes only backend and active_jobs.
For the Redis backend the snapshot also includes bridge counts, consumer
wrappers, cancel-dispatcher liveness, and the cancel-stats counters
(published / marker_hit / dispatched_owned /
dispatched_foreign / publish_errors / dispatcher_reconnects /
polling_watchdog_kills / activity_touch_errors /
activity_get_errors / activity_parse_errors /
dispatcher_internal_errors). dispatcher_reconnects tracks explicit
dispatcher-loop retries and redis-py transparent pubsub reconnect callbacks.
Restricted to superusers because the snapshot exposes process-wide tenant activity (live job counts, cancel rates) — useful for ops, sensitive in multi-tenant deployments.
{ }[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}Flow Id (string) or Flow Id (null) (Flow Id) | |
Session Id (string) or Session Id (null) (Session Id) | |
Sender (string) or Sender (null) (Sender) | |
Sender Name (string) or Sender Name (null) (Sender Name) | |
Order By (string) or Order By (null) (Order By) Default: "timestamp" | |
| order | string (Order) Default: "ASC" |
Limit (integer) or Limit (null) (Limit) | |
Offset (integer) or Offset (null) (Offset) |
[- {
- "category": "string",
- "content_blocks": [
- { }
], - "context_id": "string",
- "duration": 0,
- "edit": true,
- "files": [ ],
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "string",
- "properties": {
- "allow_markdown": false,
- "background_color": "string",
- "build_duration": 0,
- "edited": false,
- "icon": "string",
- "positive_feedback": true,
- "source": {
- "display_name": "string",
- "id": "string",
- "source": "string"
}, - "state": "partial",
- "targets": [ ],
- "text_color": "string",
- "usage": {
- "input_tokens": 0,
- "output_tokens": 0,
- "total_tokens": 0
}
}, - "sender": "string",
- "sender_name": "string",
- "session_id": "string",
- "session_metadata": { },
- "text": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}
]| old_session_id required | string (Old Session Id) |
| new_session_id required | string (New Session Id) The new session ID to update to |
[- {
- "category": "string",
- "content_blocks": [
- { }
], - "context_id": "string",
- "duration": 0,
- "edit": true,
- "files": [ ],
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "string",
- "properties": {
- "allow_markdown": false,
- "background_color": "string",
- "build_duration": 0,
- "edited": false,
- "icon": "string",
- "positive_feedback": true,
- "source": {
- "display_name": "string",
- "id": "string",
- "source": "string"
}, - "state": "partial",
- "targets": [ ],
- "text_color": "string",
- "usage": {
- "input_tokens": 0,
- "output_tokens": 0,
- "total_tokens": 0
}
}, - "sender": "string",
- "sender_name": "string",
- "session_id": "string",
- "session_metadata": { },
- "text": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}
]Delete messages for a single session.
Only deletes messages from sessions belonging to flows owned by the current user.
| session_id required | string (Session Id) |
{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}Bulk delete messages for multiple sessions at once.
Only deletes messages from sessions belonging to flows owned by the current user.
Args: session_ids: List of session IDs to delete (max 500) session: Database session current_user: Current authenticated user
Returns: Confirmation message with count of deleted sessions
Raises: HTTPException: 400 if session_ids list exceeds 500 items HTTPException: 500 if database operation fails
[- "string"
]null| message_id required | string <uuid> (Message Id) |
Category (string) or Category (null) (Category) | |
Array of Content Blocks (objects) or Content Blocks (null) (Content Blocks) | |
Context Id (string) or Context Id (null) (Context Id) | |
Edit (boolean) or Edit (null) (Edit) | |
Error (boolean) or Error (null) (Error) | |
Array of Files (strings) or Files (null) (Files) | |
Properties (object) or null | |
Sender (string) or Sender (null) (Sender) | |
Sender Name (string) or Sender Name (null) (Sender Name) | |
Session Id (string) or Session Id (null) (Session Id) | |
Session Metadata (object) or Session Metadata (null) (Session Metadata) | |
Text (string) or Text (null) (Text) |
{- "category": "string",
- "content_blocks": [
- { }
], - "context_id": "string",
- "edit": true,
- "error": true,
- "files": [
- "string"
], - "properties": {
- "allow_markdown": false,
- "background_color": "string",
- "build_duration": 0,
- "edited": false,
- "icon": "string",
- "positive_feedback": true,
- "source": {
- "display_name": "string",
- "id": "string",
- "source": "string"
}, - "state": "partial",
- "targets": [ ],
- "text_color": "string",
- "usage": {
- "input_tokens": 0,
- "output_tokens": 0,
- "total_tokens": 0
}
}, - "sender": "string",
- "sender_name": "string",
- "session_id": "string",
- "session_metadata": { },
- "text": "string"
}{- "category": "message",
- "content_blocks": [
- { }
], - "context_id": "string",
- "edit": false,
- "error": false,
- "files": [
- "string"
], - "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "properties": {
- "allow_markdown": false,
- "background_color": "string",
- "build_duration": 0,
- "edited": false,
- "icon": "string",
- "positive_feedback": true,
- "source": {
- "display_name": "string",
- "id": "string",
- "source": "string"
}, - "state": "partial",
- "targets": [ ],
- "text_color": "string",
- "usage": {
- "input_tokens": 0,
- "output_tokens": 0,
- "total_tokens": 0
}
}, - "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec",
- "sender": "string",
- "sender_name": "string",
- "session_id": "string",
- "session_metadata": { },
- "text": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}| flow_id required | string <uuid> (Flow Id) |
Page (integer) or Page (null) (Page) | |
Size (integer) or Size (null) (Size) |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "inputs": { },
- "outputs": { },
- "status": "string",
- "target_id": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "vertex_id": "string"
}
], - "page": 1,
- "pages": 0,
- "size": 1,
- "total": 0
}Delete all traces for a flow.
Args: flow_id: The ID of the flow whose traces should be deleted. current_user: The authenticated user (required for authorization).
| flow_id required | string <uuid> (Flow Id) |
{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}Get list of traces for a flow.
Args: current_user: Authenticated user (required for authorization) flow_id: Filter by flow ID session_id: Filter by session ID status: Filter by trace status query: Search query for trace name/id/session id start_time: Filter traces starting on/after this time (ISO) end_time: Filter traces starting on/before this time (ISO) page: Page number (1-based) size: Page size
Returns: List of traces
Flow Id (string) or Flow Id (null) (Flow Id) | |
Session Id (string) or Session Id (null) (Session Id) | |
SpanStatus (string) or Status (null) (Status) | |
Query (string) or Query (null) (Query) | |
Start Time (string) or Start Time (null) (Start Time) | |
End Time (string) or End Time (null) (End Time) | |
| page | integer (Page) >= 0 Default: 1 |
| size | integer (Size) [ 1 .. 200 ] Default: 50 |
{- "pages": 0,
- "total": 0,
- "traces": [
- {
- "flowId": "ccd52024-9c9c-4751-993a-9d75a778bf9d",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "input": { },
- "name": "string",
- "output": { },
- "sessionId": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "status": "unset",
- "totalLatencyMs": 0,
- "totalTokens": 0
}
]
}Delete a trace and all its spans.
Args: trace_id: The ID of the trace to delete. current_user: The authenticated user (required for authorization).
| trace_id required | string <uuid> (Trace Id) |
{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}Get a single trace with its hierarchical span tree.
Args: trace_id: The ID of the trace to retrieve. current_user: The authenticated user (required for authorization).
Returns: TraceRead containing the trace and its hierarchical span tree.
| trace_id required | string <uuid> (Trace Id) |
{- "endTime": "2019-08-24T14:15:22Z",
- "flowId": "ccd52024-9c9c-4751-993a-9d75a778bf9d",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "input": { },
- "name": "string",
- "output": { },
- "sessionId": "string",
- "spans": [
- {
- "children": [
- { }
], - "endTime": "2019-08-24T14:15:22Z",
- "error": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "inputs": { },
- "latencyMs": 0,
- "modelName": "string",
- "name": "string",
- "outputs": { },
- "startTime": "2019-08-24T14:15:22Z",
- "status": "unset",
- "tokenUsage": { },
- "type": "chain"
}
], - "startTime": "2019-08-24T14:15:22Z",
- "status": "unset",
- "totalLatencyMs": 0,
- "totalTokens": 0
}[- {
- "auth_settings": { },
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}
]Auth Settings (object) or Auth Settings (null) (Auth Settings) Authentication settings for the folder/project | |
Array of Components List (strings) or Components List (null) (Components List) | |
Description (string) or Description (null) (Description) | |
Array of Flows List (strings) or Flows List (null) (Flows List) | |
| name required | string (Name) |
{- "auth_settings": { },
- "components_list": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "flows_list": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "name": "string"
}{- "auth_settings": { },
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}Upload flows from a file.
Accepts either a JSON file with project metadata (folder_name, folder_description, flows) or a ZIP file containing individual flow JSON files (as produced by the download endpoint).
File (string) or File (null) (File) | |
Any of string <application/octet-stream> (File) | |
[- {
- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]| project_id required | string <uuid> (Project Id) |
Page (integer) or Page (null) (Page) | |
Size (integer) or Size (null) (Size) | |
| is_component | boolean (Is Component) Default: false |
| is_flow | boolean (Is Flow) Default: false |
| search | string (Search) Default: "" |
{- "flows": {
- "items": [
- {
- "a2a_card_overrides": { },
- "a2a_enabled": false,
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "flow_type": "workflow",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "gradient": "string",
- "icon": "string",
- "icon_bg_color": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_component": false,
- "locked": false,
- "mcp_enabled": false,
- "name": "string",
- "name_key": "string",
- "tags": [
- "string"
], - "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "webhook": false,
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
], - "page": 1,
- "pages": 0,
- "size": 1,
- "total": 0
}, - "folder": {
- "auth_settings": { },
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}
}| project_id required | string <uuid> (Project Id) |
Auth Settings (object) or Auth Settings (null) (Auth Settings) | |
| components | Array of strings <uuid> (Components) [ items <uuid > ] |
Description (string) or Description (null) (Description) | |
| flows | Array of strings <uuid> (Flows) [ items <uuid > ] |
Name (string) or Name (null) (Name) | |
Parent Id (string) or Parent Id (null) (Parent Id) |
{- "auth_settings": { },
- "components": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "flows": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}{- "auth_settings": { },
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}Create a response using OpenAI Responses API format.
This endpoint accepts a flow_id in the model parameter and processes the input through the specified Langflow flow.
Args: request: OpenAI Responses API request with model (flow_id) and input background_tasks: FastAPI background task manager api_key_user: Authenticated user from API key http_request: The incoming HTTP request telemetry_service: Telemetry service for logging
Returns: OpenAI-compatible response or streaming response
Raises: HTTPException: For validation errors or flow execution issues
| background | boolean (Background) Default: false Whether to process in background |
Array of Include (strings) or Include (null) (Include) Additional response data to include, e.g., ['tool_call.results'] | |
| input required | string (Input) The input text to process |
| model required | string (Model) The flow ID to execute (used instead of OpenAI model) |
Previous Response Id (string) or Previous Response Id (null) (Previous Response Id) ID of previous response to continue conversation | |
| stream | boolean (Stream) Default: false Whether to stream the response |
Array of Tools (any) or Tools (null) (Tools) Tools are not supported yet |
{- "background": false,
- "include": [
- "string"
], - "input": "string",
- "model": "string",
- "previous_response_id": "string",
- "stream": false,
- "tools": [
- null
]
}nullRetrieve a list of users from the database with pagination.
| skip | integer (Skip) Default: 0 |
| limit | integer (Limit) Default: 10 |
Search (string) or Search (null) (Search) |
{- "total_count": 0,
- "users": [
- {
- "create_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "profile_image": "string",
- "store_api_key": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}
]
}Add a new user to the database.
This endpoint backs two flows that share the same route:
User activation is controlled by the NEW_USER_IS_ACTIVE setting.
Optins (object) or Optins (null) (Optins) Default: {"dialog_dismissed":false,"discord_clicked":false,"github_starred":false} | |
| password required | string (Password) |
| username required | string (Username) |
{- "optins": {
- "dialog_dismissed": false,
- "discord_clicked": false,
- "github_starred": false
}, - "password": "string",
- "username": "string"
}{- "create_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "profile_image": "string",
- "store_api_key": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}Retrieve the current user's data.
{- "create_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "profile_image": "string",
- "store_api_key": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}Update an existing user's data.
| user_id required | string <uuid> (User Id) |
Is Active (boolean) or Is Active (null) (Is Active) | |
Is Superuser (boolean) or Is Superuser (null) (Is Superuser) | |
Last Login At (string) or Last Login At (null) (Last Login At) | |
Optins (object) or Optins (null) (Optins) | |
Password (string) or Password (null) (Password) | |
Profile Image (string) or Profile Image (null) (Profile Image) | |
Username (string) or Username (null) (Username) |
{- "is_active": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "password": "string",
- "profile_image": "string",
- "username": "string"
}{- "create_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "profile_image": "string",
- "store_api_key": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}Change the current user's password after verifying the existing password.
| user_id required | string <uuid> (User Id) |
| current_password required | string (Current Password) |
| password required | string (Password) |
{- "current_password": "string",
- "password": "string"
}{- "create_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "profile_image": "string",
- "store_api_key": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}| server_name required | string (Server Name) |
Array of Args (strings) or Args (null) (Args) | |
Command (string) or Command (null) (Command) | |
Env (object) or Env (null) (Env) | |
Headers (object) or Headers (null) (Headers) | |
Url (string) or Url (null) (Url) | |
| property name* additional property | any |
{- "args": [
- "string"
], - "command": "string",
- "env": {
- "property1": "string",
- "property2": "string"
}, - "headers": {
- "property1": "string",
- "property2": "string"
}, - "url": "string"
}null| server_name required | string (Server Name) |
Array of Args (strings) or Args (null) (Args) | |
Command (string) or Command (null) (Command) | |
Env (object) or Env (null) (Env) | |
Headers (object) or Headers (null) (Headers) | |
Url (string) or Url (null) (Url) | |
| property name* additional property | any |
{- "args": [
- "string"
], - "command": "string",
- "env": {
- "property1": "string",
- "property2": "string"
}, - "headers": {
- "property1": "string",
- "property2": "string"
}, - "url": "string"
}nullGet status of workflow job by job ID
Job Id (string) or Job Id (string) or Job Id (null) (Job Id) Job ID to query |
{- "created_timestamp": "string",
- "errors": [ ],
- "flow_id": "string",
- "globals": {
- "property1": "string",
- "property2": "string"
}, - "human_request": { },
- "inputs": { },
- "job_id": "string",
- "object": "response",
- "output": {
- "reason": "single",
- "source": "string",
- "text": "string"
}, - "outputs": { },
- "session_id": "string",
- "status": "queued"
}Data (object) or Data (null) (Data) Optional live-canvas override of the flow's nodes/edges; takes priority over the saved flow data. | |
Array of Files (strings) or Files (null) (Files) Optional list of pre-uploaded file paths to attach to the run. | |
| flow_id required | string (Flow Id) UUID of the flow to run. |
object (Globals) Request-level global variables made available to workflow components. Keys may use any printable string up to 256 chars; values are capped at 65536 chars. Body globals always win over the legacy | |
Idempotency Key (string) or Idempotency Key (null) (Idempotency Key) Optional client-supplied key that dedupes background submits. Two background runs with the same key return the same job_id instead of queuing duplicate work. Ignored for sync/stream modes. | |
| input_value | string (Input Value) Default: "" Chat-style input value. |
| mode | string (WorkflowMode) Default: "sync" Enum: "sync" "stream" "background" Execution mode. |
Array of Output Ids (strings) or Output Ids (null) (Output Ids) Component ids of the outputs you want as the answer (sync mode). When set, | |
Session Id (string) or Session Id (null) (Session Id) When set, message memory and chat history scope to this session. | |
Start Component Id (string) or Start Component Id (null) (Start Component Id) Partial-run start component id. | |
Stop Component Id (string) or Stop Component Id (null) (Stop Component Id) Partial-run stop component id. | |
| stream_protocol | string (Stream Protocol) Default: "langflow" Wire protocol for streaming events. Defaults to |
object (Tweaks) Per-component parameter overrides keyed by component id. |
{- "flow_id": "67ccd2be-17f0-8190-81ff-3bb2cf6508e6",
- "input_value": "Hello, how can you help me today?"
}nullSuspended HITL jobs for a flow plus their pending request, for the Traces overlay.
| flow_id required | string <uuid> (Flow Id) Flow ID to list pending HITL requests for |
[- { }
]Stop a running workflow execution
required | Job Id (string) or Job Id (string) (Job Id) |
Any of string (Job Id) | |
{- "job_id": "string"
}{- "job_id": "string",
- "message": "string"
}Resume a suspended (human-in-the-loop) workflow with a decision.
| job_id required | string (Job Id) |
Decision (object) or Decision (null) (Decision) | |
| request_id required | string (Request Id) |
{- "decision": { },
- "request_id": "string"
}{- "job_id": "string",
- "message": "string",
- "status": "string"
}Stream a public flow on behalf of a shareable-playground visitor. Mirrors the security posture of /api/v1/build_public_tmp.
Array of Files (strings) or Files (null) (Files) Optional list of pre-uploaded file paths. Each path must be scoped to this flow's own storage namespace; the endpoint rejects path traversal or cross-flow references. | |
| flow_id required | string (Flow Id) UUID of the public flow to run. |
| input_value | string (Input Value) <= 65536 characters Default: "" Chat-style input value. |
| mode | string (Mode) Default: "stream" Always Value: "stream" |
Session Id (string) or Session Id (null) (Session Id) Optional caller session. Always namespaced under the visitor's virtual flow id by the endpoint. | |
Start Component Id (string) or Start Component Id (null) (Start Component Id) Partial-run start component id. | |
Stop Component Id (string) or Stop Component Id (null) (Stop Component Id) Partial-run stop component id. | |
| stream_protocol | string (Stream Protocol) Default: "langflow" Wire protocol for streaming events. Defaults to |
{- "flow_id": "67ccd2be-17f0-8190-81ff-3bb2cf6508e6",
- "input_value": "Hello from the shareable playground"
}nullRetrieve application logs with superuser authentication required.
SECURITY: Logs may contain sensitive information and require superuser authentication.
| lines_before | integer (Lines Before) Default: 0 The number of logs before the timestamp or the last log |
| lines_after | integer (Lines After) Default: 0 The number of logs after the timestamp |
| timestamp | integer (Timestamp) Default: 0 The timestamp to start getting logs from |
nullHTTP/2 Server-Sent-Event (SSE) endpoint for streaming logs.
Requires superuser authentication to prevent exposure of sensitive log data. It establishes a long-lived connection to the server and receives log messages in real-time. The client should use the header "Accept: text/event-stream".
null