Download OpenAPI specification:Download
Flow'dan agent bundle oluştur.
Bu endpoint flow'u bundle formatına çevirir:
- flow.json
- requirements.lock
- bundle.manifest.json
| flow_id required | string <uuid> (Flow Id) |
| version | string (Version) Default: "1.0.0" Bundle version |
{- "bundle_path": "string",
- "bundle_size": 0,
- "dependencies": [
- "string"
], - "flow_id": "string",
- "flow_name": "string",
- "version": "string"
}Fetch Cloud Build log lines through Studio backend credentials.
| build_id required | string (Build Id) |
| limit | integer (Limit) [ 1 .. 1000 ] Default: 300 |
{- "build_id": "string",
- "log_url": "string",
- "logs": [
- "string"
], - "status": "string"
}Agent'ı deploy et (bundle + container build) - development use only.
Bu endpoint arka planda çalışır:
1. Bundle oluşturur
2. Base runtime image build eder (yoksa)
3. Agent image build eder
4. Container'ı test eder
| flow_id required | string <uuid> (Flow Id) |
| resolution_fingerprint required | string (Resolution Fingerprint) = 64 characters ^[0-9a-f]{64}$ |
| version | string (Version) Default: "1.0.0" |
{- "resolution_fingerprint": "stringstringstringstringstringstringstringstringstringstringstri",
- "version": "1.0.0"
}{- "deployment_id": "string",
- "flow_id": "string",
- "flow_name": "string",
- "message": "string",
- "status": "string"
}Deployment durumunu sorgula.
| deployment_id required | string (Deployment Id) |
{- "build_id": "string",
- "bundle_path": "string",
- "deployment_id": "string",
- "error": "string",
- "flow_id": "string",
- "flow_name": "string",
- "image_name": "string",
- "last_updated": "string",
- "log_url": "string",
- "logs": [
- "string"
], - "operation_name": "string",
- "progress": "string",
- "status": "string",
- "version": "string"
}Flow'un dependency'lerini resolve et.
Bu endpoint flow'daki component'leri analiz edip gereken Python paketlerini bulur.
| flow_id required | string <uuid> (Flow Id) |
{- "blocking_diagnostics": [
- {
- "blocking": true,
- "code": "string",
- "import_name": "string",
- "message": "string",
- "node_id": "string",
- "requirement": "string",
- "severity": "string",
- "suggestion": "string"
}
], - "component_count": 0,
- "constraints": [
- "string"
], - "constraints_fingerprint": "string",
- "custom_code_count": 0,
- "dependencies": [
- "string"
], - "diagnostics": [
- {
- "blocking": true,
- "code": "string",
- "import_name": "string",
- "message": "string",
- "node_id": "string",
- "requirement": "string",
- "severity": "string",
- "suggestion": "string"
}
], - "fingerprint": "string",
- "flow_fingerprint": "string",
- "flow_id": "string",
- "flow_name": "string",
- "has_blocking_diagnostics": true,
- "locked_dependencies": [
- "string"
], - "locked_dependency_count": 0,
- "mappings": [
- {
- "distribution_name": "string",
- "import_name": "string",
- "node_id": "string",
- "source": "string"
}
], - "runtime_fingerprint": "string",
- "warnings": [
- {
- "blocking": true,
- "code": "string",
- "import_name": "string",
- "message": "string",
- "node_id": "string",
- "requirement": "string",
- "severity": "string",
- "suggestion": "string"
}
]
}Poll the status of a single agent run.
| run_id required | string (Run Id) |
{- "build_id": "string",
- "error": "string",
- "flow_id": "string",
- "flow_name": "string",
- "last_updated": "string",
- "log_url": "string",
- "logs": [
- "string"
], - "operation_name": "string",
- "output": "string",
- "result": { },
- "run_id": "string",
- "status": "string",
- "version": "string"
}Run the deployed agent container once with provided inputs (development use only).
This is mainly for local debugging from the UI.
| flow_id required | string <uuid> (Flow Id) |
Array of Files (strings) or Files (null) (Files) | |
Input Value (string) or Input Value (null) (Input Value) | |
| type | string (Type) Default: "chat" |
| version | string (Version) Default: "1.0.0" |
{- "files": [
- "string"
], - "input_value": "string",
- "type": "chat",
- "version": "1.0.0"
}{- "flow_id": "string",
- "flow_name": "string",
- "message": "string",
- "run_id": "string",
- "status": "string"
}List built pre-publish images for this flow that are not attached to an artifact.
| flow_id required | string <uuid> (Flow Id) |
[- {
- "build_id": "string",
- "flow_id": "string",
- "flow_name": "string",
- "image_name": "string",
- "log_url": "string",
- "source": "prepublish",
- "status": "ready",
- "version": "string"
}
]Public OAuth redirect target for the automatic (no copy-paste) flow.
Secured by the single-use state (minted during an authenticated start), not
a session: Anthropic redirects the browser here with ?code&state; we
exchange and store, then the page signals the opener and closes itself.
Code (string) or Code (null) (Code) | |
State (string) or State (null) (State) | |
Error (string) or Error (null) (Error) |
nullExchange the pasted authorization code for a token and store it (user-scoped).
| code required | string (Code) |
| state required | string (State) |
{- "code": "string",
- "state": "string"
}{ }Begin the in-browser Connect-Claude PKCE flow; returns the authorize URL + state.
If the caller supplies a valid redirect_uri pointing at our own/oauth/callback (and Anthropic accepts it — i.e. the deployment is reachable
at a registered redirect such as a loopback/localhost address), the flow runs
fully automatically (no copy-paste). Otherwise it falls back to the manual
copy-paste page (mode: "manual").
Redirect Uri (string) or Redirect Uri (null) (Redirect Uri) | |
Any of string (Redirect Uri) | |
{- "redirect_uri": "string"
}{ }Claude Code-style loopback start (ephemeral localhost listener, no copy-paste).
Only completes automatically when the browser can reach this backend atlocalhost (local / self-host); on cloud the caller should use the manual flow.
{ }Store a pasted credential: an Anthropic API key or a setup-token OAuth token.
Account Label (string) or Account Label (null) (Account Label) | |
| provider required | string (Provider) |
| secret required | string (Secret) |
{- "account_label": "string",
- "provider": "string",
- "secret": "string"
}{ }Execute 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) | |
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",
- "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 |
nullCreate a curated tenant-memory entry (secret-scanned by the service).
| confidence | number (Confidence) Default: 1 |
| content required | string (Content) |
| kind | string (Kind) Default: "convention" |
| title required | string (Title) |
{- "confidence": 1,
- "content": "string",
- "kind": "convention",
- "title": "string"
}{ }Run the reflection sweep now, scoped to the admin's tenant (manual trigger).
Distills settled sessions into candidate entries for the review queue. Useful for
testing and on-demand curation without waiting for the periodic sweep.
{ }Ignore all past sessions: mark them reflected without distilling (start fresh).
After this, reflection only learns from sessions that settle going forward — old
exploratory history is never mined into candidates.
{ }Edit a tenant-memory entry. 404 unless it belongs to the admin's tenant.
| memory_id required | string <uuid> (Memory Id) |
Confidence (number) or Confidence (null) (Confidence) | |
Content (string) or Content (null) (Content) | |
Kind (string) or Kind (null) (Kind) | |
Status (string) or Status (null) (Status) | |
Title (string) or Title (null) (Title) |
{- "confidence": 0,
- "content": "string",
- "kind": "string",
- "status": "string",
- "title": "string"
}{ }Approve a reflection candidate so it becomes active and starts being injected.
This is the privacy gate: nothing auto-distilled affects sessions until a tenant
admin approves it here.
| memory_id required | string <uuid> (Memory Id) |
{ }Upload a chat-private Janus attachment to temp storage, not workspace Files.
Session Id (string) or Session Id (null) (Session Id) |
| file required | string <application/octet-stream> (File) |
{ }Start a background Janus run or append input to the current active run.
| approval_continuation | boolean (Approval Continuation) Default: false |
Approval Id (string) or Approval Id (null) (Approval Id) | |
| approval_scope | string (Approval Scope) Default: "once" Enum: "once" "always" |
Array of objects (Attachments) <= 10 items | |
Display Input Value (string) or Display Input Value (null) (Display Input Value) | |
| flow_id required | string (Flow Id) |
| input_value required | string (Input Value) [ 1 .. 4000 ] characters |
| max_iterations | integer (Max Iterations) [ 1 .. 10 ] Default: 5 |
| mode | string (Mode) Default: "draft" Enum: "draft" "guarded" "autopilot" |
Model Name (string) or Model Name (null) (Model Name) Default: "claude-sonnet-5" | |
| plan_mode | boolean (Plan Mode) Default: false |
Provider (string) or Provider (null) (Provider) Default: "Claude Code OAuth" | |
Session Id (string) or Session Id (null) (Session Id) | |
User Message Id (string) or User Message Id (null) (User Message Id) |
{- "approval_continuation": false,
- "approval_id": "string",
- "approval_scope": "once",
- "attachments": [
- {
- "extension": "string",
- "id": "string",
- "kind": "text",
- "mime_type": "string",
- "name": "string",
- "path": "string",
- "size": 0
}
], - "display_input_value": "string",
- "flow_id": "string",
- "input_value": "string",
- "max_iterations": 5,
- "mode": "draft",
- "model_name": "claude-sonnet-5",
- "plan_mode": false,
- "provider": "Claude Code OAuth",
- "session_id": "string",
- "user_message_id": "string"
}{ }Return the active Janus run for a flow/session so remounted UIs can reconnect.
When the provided session pointer is stale, fall back to the flow's newest
active run and return that run's real session id. When no run is active,
fall back to the newest recent run with a durable event log. The background
task persists the conversation to the event log (but not to the
frontend-owned transcript), so a UI returning to the flow can replay that log
to reconstruct a conversation that finished while the panel was unmounted
instead of showing a blank chat.
| flow_id required | string (Flow Id) |
Session Id (string) or Session Id (null) (Session Id) |
{ }Approve a paused run and atomically start its continuation.
| run_id required | string <uuid> (Run Id) |
Approval Id (string) or Approval Id (null) (Approval Id) | |
| approval_scope | string (Approval Scope) Default: "once" Enum: "once" "always" |
Input Value (string) or Input Value (null) (Input Value) |
{- "approval_id": "string",
- "approval_scope": "once",
- "input_value": "string"
}{ }Replay stored events after after_seq and then follow the live run.
| run_id required | string <uuid> (Run Id) |
| after_seq | integer (After Seq) Default: 0 |
nullList the current user's assistant sessions for a flow.
Server-authoritative and strictly per-user: a user never sees another user's
sessions, and history survives backend restarts / page reloads (Phase 0b).
HTTP 200 with [] means the query succeeded and there are no sessions.
Query failures must not look like that empty list, or the client would drop
local history.
| flow_id required | string (Flow Id) |
[- { }
]Delete one of the current user's sessions and its durable transcript.
| session_id required | string (Session Id) |
| flow_id required | string (Flow Id) |
{ }Restore one session's saved conversation. 404 unless owned by the user.
| session_id required | string (Session Id) |
| flow_id required | string (Flow Id) |
{ }Mirror the current user's rendered conversation for a session to the DB.
| session_id required | string (Session Id) |
| flow_id required | string (Flow Id) |
| message_count | integer (Message Count) Default: 0 |
| messages required | Array of any (Messages) |
Title (string) or Title (null) (Title) |
{- "flow_id": "string",
- "message_count": 0,
- "messages": [
- null
], - "title": "string"
}{ }Create a private assistant-session branch without changing the source conversation.
Forks two things: the rendered message list (display history) and — when the
source session has a Claude transcript — the agent context itself, truncated
at the edited message's recorded anchor so the branch genuinely continues
the conversation instead of starting cold.
| session_id required | string (Session Id) |
Edited Message Anchor (integer) or Edited Message Anchor (null) (Edited Message Anchor) | |
Edited Message Id (string) or Edited Message Id (null) (Edited Message Id) | |
| flow_id required | string (Flow Id) |
Array of Messages (any) or Messages (null) (Messages) | |
Title (string) or Title (null) (Title) | |
Until Message Id (string) or Until Message Id (null) (Until Message Id) |
{- "edited_message_anchor": 0,
- "edited_message_id": "string",
- "flow_id": "string",
- "messages": [
- null
], - "title": "string",
- "until_message_id": "string"
}{ }Rewind flow + DB + transcript to before a chosen past user turn.
Unlike undo (which reverts the latest run), this targets any user message
that has a stored per-turn checkpoint, restoring all three axes to that
turn's pre-state. The frontend truncates the visible conversation after it.
| session_id required | string (Session Id) |
| flow_id required | string (Flow Id) |
| user_message_id required | string (User Message Id) <= 64 characters |
{- "flow_id": "string",
- "user_message_id": "string"
}{ }Build or repair a flow with the Claude Agent SDK backed Vibe Builder.
| approval_continuation | boolean (Approval Continuation) Default: false |
Approval Id (string) or Approval Id (null) (Approval Id) | |
| approval_scope | string (Approval Scope) Default: "once" Enum: "once" "always" |
Array of objects (Attachments) <= 10 items | |
Display Input Value (string) or Display Input Value (null) (Display Input Value) | |
| flow_id required | string (Flow Id) |
| input_value required | string (Input Value) [ 1 .. 4000 ] characters |
| max_iterations | integer (Max Iterations) [ 1 .. 10 ] Default: 5 |
| mode | string (Mode) Default: "draft" Enum: "draft" "guarded" "autopilot" |
Model Name (string) or Model Name (null) (Model Name) Default: "claude-sonnet-5" | |
| plan_mode | boolean (Plan Mode) Default: false |
Provider (string) or Provider (null) (Provider) Default: "Claude Code OAuth" | |
Session Id (string) or Session Id (null) (Session Id) | |
User Message Id (string) or User Message Id (null) (User Message Id) |
{- "approval_continuation": false,
- "approval_id": "string",
- "approval_scope": "once",
- "attachments": [
- {
- "extension": "string",
- "id": "string",
- "kind": "text",
- "mime_type": "string",
- "name": "string",
- "path": "string",
- "size": 0
}
], - "display_input_value": "string",
- "flow_id": "string",
- "input_value": "string",
- "max_iterations": 5,
- "mode": "draft",
- "model_name": "claude-sonnet-5",
- "plan_mode": false,
- "provider": "Claude Code OAuth",
- "session_id": "string",
- "user_message_id": "string"
}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 — thesession_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:<br>{"status": "ok", "components_cleared": <int>, "session_id": <str|null>}<br>
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.
Tenant component policy does not filter this catalog; run/build enforces it.
| force_refresh | boolean (Force Refresh) Default: false |
nullRetrieve application configuration settings.
Returns different configuration based on authentication status:
- Authenticated users: Full ConfigResponse with all settings
- Unauthenticated users: PublicConfigResponse with limited, safe-to-expose settings
Args:
user: The authenticated user, or None if unauthenticated.
This endpoint is public and does not require authentication.
Configuration settings are not sensitive and needed for frontend initialization.
Returns:
ConfigResponse | PublicConfigResponse: Configuration settings appropriate for the user's auth status.
Raises:
HTTPException: If an error occurs while retrieving the configuration.
{- "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,
- "signup_blocked_email_domains": [ ],
- "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.
### Parameters:
- 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.
### Returns:
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.
### Raises:
HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during
flow execution.
### Example usage:json<br>POST /run/flow_id<br>x-api-key: YOUR_API_KEY<br>Payload:<br>{<br> "inputs": [<br> {"components": ["component1"], "input_value": "value1"},<br> {"components": ["component3"], "input_value": "value2"}<br> ],<br> "outputs": ["Component Name", "component_id"],<br> "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}<br> "stream": false<br>}<br>
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:
session (DbSession): Database session for RBAC permission checks
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.
* Omitting user_id defaults to the caller — no superuser needed.
* Passing user_id == self.id is the same as omitting it.
* Passing a different 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.
* Omitting user_id defaults to the caller — no superuser needed.
* Passing user_id == self.id is the same as omitting it.
* Passing a different 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:
request: Incoming HTTP request (RBAC context)
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).
Explicitly public jobs remain accessible to authenticated users.
| 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.
Only jobs explicitly classified as public remain accessible to other users.
| 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 'data' parameter is NOT accepted to prevent flow definition tampering
- Public flows must execute the stored flow definition only
- The flow definition is always loaded from the database
- Caller-supplied 'inputs.session' is namespaced under the (client_id,
flow_id) virtual flow ID so an unauthenticated caller cannot address a
session that lives outside its own namespace (CVE-2026-33017)
The endpoint:
1. Verifies the requested flow is marked as public in the database
2. Creates a deterministic UUID based on client_id and flow_id
3. Uses the flow owner's permissions to build the flow
4. Always loads the flow definition from the database
Requirements:
- The flow must be marked as PUBLIC in the database
- The request must include a client_id cookie
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" |
nullUsername (string) or Username (null) (Username) | |
Any of <= 320 characters string (Username) <= 320 characters | |
{- "username": "string"
}{- "network": true,
- "provider": "string",
- "search": true,
- "service_bind": true,
- "tls": true,
- "user_found": true
}Poll 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 as422 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 FastAPIdetail envelope. Concurrency-control collisions surface as409 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 image from storage for browser rendering.
Authorization is handled by the get_flow dependency so only the flow
owner (or otherwise authorized caller) can fetch images.
| file_name required | string (File Name) |
| flow_id required | string <uuid> (Flow Id) |
null| flow_id required | string <uuid> (Flow Id) |
| file required | string <application/octet-stream> (File) |
{- "file_path": "string",
- "flowId": "string"
}[- {
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "path": "string",
- "provider": "string",
- "size": 0,
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Upload a file with RBAC + hierarchical storage, keeping new-code robustness.
| append | boolean (Append) Default: false |
| ephemeral | boolean (Ephemeral) Default: false |
Folder Id (string) or Folder Id (null) (Folder Id) |
| file required | string <application/octet-stream> (File) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "path": "string",
- "provider": "string",
- "size": 0
}[- {
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "path": "string",
- "provider": "string",
- "size": 0,
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "updated_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Upload a file with RBAC + hierarchical storage, keeping new-code robustness.
| append | boolean (Append) Default: false |
| ephemeral | boolean (Ephemeral) Default: false |
Folder Id (string) or Folder Id (null) (Folder Id) |
| 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 IDs (RBAC + hierarchical storage + permanent/transient handling).
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]nullDownload multiple files as zip (RBAC + hierarchical storage).
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]nullDownload a file with RBAC permission check + early storage existence check.
| file_id required | string <uuid> (File Id) |
| return_content | boolean (Return Content) Default: false |
nullRename only files the authenticated caller may mutate in their context.
| 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 pagination support.
Args:
current_user (User): The current authenticated user.
session (Session): The database session.
request (Request): The incoming request (used for RBAC context).
components_only (bool, optional): Whether to return only components. Defaults to False.
is_flow (bool, optional): Whether to return only flows (exclude components). Defaults to False.
get_all (bool, optional): Whether to return all flows without pagination. Defaults to True.
This field must be True because of backward compatibility with the frontend - Release: 1.0.20
folder_id (UUID, optional): The project ID. Defaults to None.
params (Params): Pagination parameters.
remove_example_flows (bool, optional): Whether to remove example flows. Defaults to False.
header_flows (bool, optional): Whether to return only specific headers of the flows. Defaults to False.
access_type (AccessTypeEnum, optional): Filter flows by access type.
workspace_id (UUID, optional): Filter flows by workspace id.
search (str, optional): Search term for flow name/description.
Returns:
list[FlowRead] | Page[FlowRead] | list[FlowHeader]
A list of flows or a paginated response containing the list of flows or a list of flow headers.
| remove_example_flows | boolean (Remove Example Flows) Default: false |
| components_only | boolean (Components Only) Default: false |
| is_flow | boolean (Is Flow) Default: false |
| get_all | boolean (Get All) Default: true |
Folder Id (string) or Folder Id (null) (Folder Id) | |
| header_flows | boolean (Header Flows) Default: false |
AccessTypeEnum (string) or Access Type (null) (Access Type) | |
Workspace Id (string) or Workspace Id (null) (Workspace Id) | |
| search | string (Search) Default: "" |
| page | integer (Page) >= 1 Default: 1 |
| size | integer (Size) [ 1 .. 100 ] Default: 50 |
[ ]| access_type | string (AccessTypeEnum) Default: "PRIVATE" Enum: "PRIVATE" "PUBLIC" "WORKSPACE" "TENANT" |
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) | |
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) |
{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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"
}{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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"
}[- {
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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": [
- {
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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"
}
]
}[- {
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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.
| flow_id required | string <uuid> (Flow Id) |
{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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) | |
[- {
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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) |
{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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) |
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) | |
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) |
{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
- "fs_path": "string",
- "locked": true,
- "mcp_enabled": true,
- "name": "string",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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) |
| access_type | string (AccessTypeEnum) Default: "PRIVATE" Enum: "PRIVATE" "PUBLIC" "WORKSPACE" "TENANT" |
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) | |
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) |
{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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"
}{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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"
}Copy a flow to another person (their personal workspace) within the same tenant.
Requires WORKSPACE_ADMIN (or tenant admin / superuser).
| flow_id required | string <uuid> (Flow Id) |
| include_api_keys | boolean (Include Api Keys) Default: false |
| target_user_id required | string <uuid> (Target User Id) |
{- "include_api_keys": false,
- "target_user_id": "07f82fdf-2ecc-4f53-ad26-5718042a39ae"
}{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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"
}Copy a flow to another workspace within the same tenant.
Requires WORKSPACE_ADMIN (or tenant admin / superuser).
| flow_id required | string <uuid> (Flow Id) |
| include_api_keys | boolean (Include Api Keys) Default: false |
| target_workspace_id required | string <uuid> (Target Workspace Id) |
{- "include_api_keys": false,
- "target_workspace_id": "8cd36c18-2073-4c8b-90c2-fa650464eca3"
}{- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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 the shared read guard),
consistent with the guarded 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"
}| hitl_id required | string <uuid> (Hitl Id) |
{- "actions_json": [
- null
], - "allowed_user_ids": [
- null
], - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "form_schema_json": { },
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "job_id": "string",
- "node_id": "string",
- "rendered_content": "string",
- "selected_action_id": "string",
- "status": "string",
- "submitted_data_json": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "workflow_run_id": "5e5ef678-2347-491b-a579-798b0d4ed952"
}| hitl_id required | string <uuid> (Hitl Id) |
{- "actions_json": [
- null
], - "allowed_user_ids": [
- null
], - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "form_schema_json": { },
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "job_id": "string",
- "node_id": "string",
- "rendered_content": "string",
- "selected_action_id": "string",
- "status": "string",
- "submitted_data_json": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "workflow_run_id": "5e5ef678-2347-491b-a579-798b0d4ed952"
}Public submit by opaque token (magic link). Validates schema and actions, then resumes the graph.
| token required | string (Token) |
Cache Key (string) or Cache Key (null) (Cache Key) | |
Selected Action Id (string) or Selected Action Id (null) (Selected Action Id) | |
object (Submitted Data) |
{- "cache_key": "string",
- "selected_action_id": "string",
- "submitted_data": { }
}{- "actions_json": [
- null
], - "allowed_user_ids": [
- null
], - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "form_schema_json": { },
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "job_id": "string",
- "node_id": "string",
- "rendered_content": "string",
- "selected_action_id": "string",
- "status": "string",
- "submitted_data_json": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "workflow_run_id": "5e5ef678-2347-491b-a579-798b0d4ed952"
}| workflow_run_id required | string <uuid> (Workflow Run Id) |
[- {
- "actions_json": [
- null
], - "allowed_user_ids": [
- null
], - "created_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "form_schema_json": { },
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "job_id": "string",
- "node_id": "string",
- "rendered_content": "string",
- "selected_action_id": "string",
- "status": "string",
- "submitted_data_json": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "workflow_run_id": "5e5ef678-2347-491b-a579-798b0d4ed952"
}
]Authorization (string) or Authorization (null) (Authorization) | |
X-Orbis-Actor-Id (string) or X-Orbis-Actor-Id (null) (X-Orbis-Actor-Id) | |
X-Orbis-Tenant-Id (string) or X-Orbis-Tenant-Id (null) (X-Orbis-Tenant-Id) | |
X-Orbis-Operation-Id (string) or X-Orbis-Operation-Id (null) (X-Orbis-Operation-Id) |
{ }| published_agent_id required | string <uuid> (Published Agent Id) |
X-Orbis-Expected-Status (string) or X-Orbis-Expected-Status (null) (X-Orbis-Expected-Status) | |
Authorization (string) or Authorization (null) (Authorization) | |
X-Orbis-Actor-Id (string) or X-Orbis-Actor-Id (null) (X-Orbis-Actor-Id) | |
X-Orbis-Tenant-Id (string) or X-Orbis-Tenant-Id (null) (X-Orbis-Tenant-Id) | |
X-Orbis-Operation-Id (string) or X-Orbis-Operation-Id (null) (X-Orbis-Operation-Id) |
{- "deleted": true,
- "image_refs": [
- "string"
], - "operation_id": "string",
- "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3"
}Remap Run Flow invoke/peer targets on a published agent (no session migration).
| published_agent_id required | string <uuid> (Published Agent Id) |
Authorization (string) or Authorization (null) (Authorization) | |
X-Orbis-Actor-Id (string) or X-Orbis-Actor-Id (null) (X-Orbis-Actor-Id) | |
X-Orbis-Tenant-Id (string) or X-Orbis-Tenant-Id (null) (X-Orbis-Tenant-Id) | |
X-Orbis-Operation-Id (string) or X-Orbis-Operation-Id (null) (X-Orbis-Operation-Id) |
required | Array of objects (Replacements) non-empty | ||||
Array (non-empty)
| |||||
{- "replacements": [
- {
- "from_published_agent_id": "d2c2848c-d77e-426b-85eb-695100499744",
- "to_published_agent_id": "8bcd852f-fb6f-4ba7-943a-babd703122db"
}
]
}{- "operation_id": "string",
- "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3",
- "replaced": 0,
- "runflow_manifest": { }
}| published_agent_id required | string <uuid> (Published Agent Id) |
Authorization (string) or Authorization (null) (Authorization) | |
X-Orbis-Actor-Id (string) or X-Orbis-Actor-Id (null) (X-Orbis-Actor-Id) | |
X-Orbis-Tenant-Id (string) or X-Orbis-Tenant-Id (null) (X-Orbis-Tenant-Id) | |
X-Orbis-Operation-Id (string) or X-Orbis-Operation-Id (null) (X-Orbis-Operation-Id) |
Expected Status (string) or Expected Status (null) (Expected Status) Optional CAS: reject if current status differs | |
Reason (string) or Reason (null) (Reason) | |
| status required | string (Status) [ 1 .. 32 ] characters |
{- "expected_status": "string",
- "reason": "string",
- "status": "string"
}{- "operation_id": "string",
- "previous_status": "string",
- "published_agent": {
- "agent_id": "string",
- "agent_model_config": { },
- "allowed_tools": [
- null
], - "approved_at": "2019-08-24T14:15:22Z",
- "approved_by": "02030314-b162-4b4d-8af1-88eabdcc615d",
- "capability_manifest": { },
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "graph_payload_ref": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "latest_build_error": "string",
- "latest_build_status": "string",
- "latest_image_ref": "string",
- "max_runs_per_day": 0,
- "max_tokens_per_run": 0,
- "runflow_manifest": { },
- "runflow_manifest_summary": { },
- "runtime_profile": "string",
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timeout_seconds": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "version": "string",
- "visibility": { }
}
}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) |
nullReturn 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" | |
| limit | integer (Limit) [ 1 .. 1000 ] Default: 500 |
[- {
- "category": "string",
- "content_blocks": [
- {
- "allow_markdown": true,
- "contents": [
- { }
], - "media_url": [
- "string"
], - "title": "string"
}
], - "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 |
| flow_id required | string <uuid> (Flow Id) |
[- {
- "category": "string",
- "content_blocks": [
- {
- "allow_markdown": true,
- "contents": [
- { }
], - "media_url": [
- "string"
], - "title": "string"
}
], - "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"
}
]| session_id required | string (Session Id) |
| flow_id required | string <uuid> (Flow 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) | |
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": [
- {
- "allow_markdown": true,
- "contents": [
- {
- "duration": 0,
- "error": { },
- "header": {
- "icon": "string",
- "title": "string"
}, - "input": { },
- "name": "string",
- "output": { },
- "type": "tool_use"
}
], - "media_url": [
- "string"
], - "title": "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": [
- {
- "allow_markdown": true,
- "contents": [
- { }
], - "media_url": [
- "string"
], - "title": "string"
}
], - "context_id": "string",
- "edit": false,
- "error": false,
- "files": [
- "string"
], - "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_output": false,
- "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",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}Delete specific messages for a public (shareable) OrbisBox flow for the current client.
| flow_id required | string <uuid> (Flow Id) |
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}Return messages for a public (shareable) OrbisBox flow for the current client.
| flow_id required | string <uuid> (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" |
[- {
- "category": "string",
- "content_blocks": [
- {
- "allow_markdown": true,
- "contents": [
- { }
], - "media_url": [
- "string"
], - "title": "string"
}
], - "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"
}
]Rename a chat session for a public (shareable) OrbisBox flow for the current client.
| old_session_id required | string (Old Session Id) |
| new_session_id required | string (New Session Id) The new session ID to update to |
| flow_id required | string <uuid> (Flow Id) |
[- {
- "category": "string",
- "content_blocks": [
- {
- "allow_markdown": true,
- "contents": [
- { }
], - "media_url": [
- "string"
], - "title": "string"
}
], - "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 all messages for a given session of a public (shareable) OrbisBox flow for the current client.
| session_id required | string (Session Id) |
| flow_id required | string <uuid> (Flow Id) |
{- "detail": [
- {
- "ctx": { },
- "input": null,
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}Return chat session IDs for a public (shareable) OrbisBox flow for the current client.
This endpoint:
- Verifies that the flow is PUBLIC and resolves a deterministic per-client flow_id
- Returns only sessions that belong to this (flow_id, client_id) pair
| flow_id required | string <uuid> (Flow Id) |
[- "string"
]| flow_id required | string <uuid> (Flow Id) |
| page | integer (Page) >= 1 Default: 1 Page number |
| size | integer (Size) [ 1 .. 100 ] Default: 50 Page 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
}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
}
]
}| 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
}[- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Auth Settings (object) or Auth Settings (null) (Auth Settings) | |
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"
}{- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}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) | |
[- {
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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": [
- {
- "access_type": "PRIVATE",
- "action_description": "string",
- "action_name": "string",
- "data": { },
- "description": "string",
- "endpoint_name": "string",
- "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": {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
}| 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"
}{- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Status (string) or Status (null) (Status) |
[- {
- "agent_id": "string",
- "agent_model_config": { },
- "allowed_tools": [
- null
], - "approved_at": "2019-08-24T14:15:22Z",
- "approved_by": "02030314-b162-4b4d-8af1-88eabdcc615d",
- "capability_manifest": { },
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "graph_payload_ref": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "latest_build_error": "string",
- "latest_build_status": "string",
- "latest_image_ref": "string",
- "max_runs_per_day": 0,
- "max_tokens_per_run": 0,
- "runflow_manifest": { },
- "runflow_manifest_summary": { },
- "runtime_profile": "string",
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timeout_seconds": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "version": "string",
- "visibility": { }
}
]| agent_id required | string (Agent Id) [ 1 .. 256 ] characters ^[a-zA-Z0-9][a-zA-Z0-9._-]*$ |
object (Agent Model Config) | |
| allowed_tools | Array of strings (Allowed Tools) |
| flow_id required | string <uuid> (Flow Id) |
Max Runs Per Day (integer) or Max Runs Per Day (null) (Max Runs Per Day) | |
Max Tokens Per Run (integer) or Max Tokens Per Run (null) (Max Tokens Per Run) | |
| role_names | Array of strings (Role Names) |
object (Runflow Target Overrides) | |
| runtime_profile | string (Runtime Profile) Default: "chat-standard" |
| status | string (Status) Default: "draft" |
| timeout_seconds | integer (Timeout Seconds) [ 1 .. 86400 ] Default: 300 |
| version required | string (Version) [ 1 .. 64 ] characters |
object (Visibility) |
{- "agent_id": "string",
- "agent_model_config": { },
- "allowed_tools": [
- "string"
], - "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "max_runs_per_day": 1,
- "max_tokens_per_run": 1,
- "role_names": [
- "string"
], - "runflow_target_overrides": {
- "property1": "string",
- "property2": "string"
}, - "runtime_profile": "chat-standard",
- "status": "draft",
- "timeout_seconds": 300,
- "version": "string",
- "visibility": { }
}{- "agent_id": "string",
- "agent_model_config": { },
- "allowed_tools": [
- null
], - "approved_at": "2019-08-24T14:15:22Z",
- "approved_by": "02030314-b162-4b4d-8af1-88eabdcc615d",
- "capability_manifest": { },
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "graph_payload_ref": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "latest_build_error": "string",
- "latest_build_status": "string",
- "latest_image_ref": "string",
- "max_runs_per_day": 0,
- "max_tokens_per_run": 0,
- "runflow_manifest": { },
- "runflow_manifest_summary": { },
- "runtime_profile": "string",
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timeout_seconds": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "version": "string",
- "visibility": { }
}Surface the Run Flow dependencies of a flow so the UI can offer a per-target choice.
For each target_flow_id referenced by a RunFlow vertex, returns:
- approved_candidates: existing approved deploys the operator can reuse;
- default_candidate_id: the candidate publish_agent would pick on auto;
- would_auto_publish: True when no approved deploy exists yet (a publish without
override would auto-create a fresh one);
- auto_publish_agent_id_hint: the synthetic agent_id that auto-publish would use.
The frontend feeds the user's per-target picks back through runflow_target_overrides onPOST /publish/agents.
| flow_id required | string <uuid> (Flow Id) |
{- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "mode": "string",
- "targets": [
- {
- "approved_candidates": [
- {
- "agent_id": "string",
- "approved_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_auto_synthetic": false,
- "status": "string",
- "version": "string"
}
], - "auto_publish_agent_id_hint": "string",
- "default_candidate_id": "f17d5ff7-c9fb-4c67-aa92-c98abf760351",
- "in_same_workspace": true,
- "target_flow_exists": true,
- "target_flow_id": "a956da06-0884-4e80-a2ea-baa738bc80be",
- "target_flow_name": "string",
- "would_auto_publish": false
}
]
}| published_agent_id required | string <uuid> (Published Agent Id) |
| disable_previous_approved | boolean (Disable Previous Approved) Default: true When approving, disable other approved published agents that share the same (tenant_id, agent_id). Default on. |
| status required | string (Status) non-empty |
{- "disable_previous_approved": true,
- "status": "string"
}{- "agent_id": "string",
- "agent_model_config": { },
- "allowed_tools": [
- null
], - "approved_at": "2019-08-24T14:15:22Z",
- "approved_by": "02030314-b162-4b4d-8af1-88eabdcc615d",
- "batch_operation_id": "string",
- "capability_manifest": { },
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "graph_payload_ref": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "latest_build_error": "string",
- "latest_build_status": "string",
- "latest_image_ref": "string",
- "max_runs_per_day": 0,
- "max_tokens_per_run": 0,
- "previous_versions_disabled": [
- {
- "agent_id": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "previous_status": "string",
- "status": "string",
- "version": "string"
}
], - "runflow_manifest": { },
- "runflow_manifest_summary": { },
- "runtime_profile": "string",
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timeout_seconds": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "version": "string",
- "visibility": { }
}Tenant Id (string) or Tenant Id (null) (Tenant Id) | |
| include_all | boolean (Include All) Default: false |
[- {
- "agent_id": "string",
- "agent_model_config": { },
- "allowed_tools": [
- null
], - "approved_at": "2019-08-24T14:15:22Z",
- "approved_by": "02030314-b162-4b4d-8af1-88eabdcc615d",
- "capability_manifest": { },
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "graph_payload_ref": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "latest_build_error": "string",
- "latest_build_status": "string",
- "latest_image_ref": "string",
- "max_runs_per_day": 0,
- "max_tokens_per_run": 0,
- "runflow_manifest": { },
- "runflow_manifest_summary": { },
- "runtime_profile": "string",
- "status": "string",
- "supports_chat": true,
- "supports_files": true,
- "supports_sessions": true,
- "supports_streaming": false,
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timeout_seconds": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "version": "string",
- "visibility": { }
}
]| session_id required | string <uuid> (Session Id) |
{- "agent_display_name": "string",
- "agent_id": "string",
- "agent_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3",
- "session_metadata": { },
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "title": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}| session_id required | string <uuid> (Session Id) |
[- {
- "agent_display_name": "string",
- "agent_id": "string",
- "agent_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "error": true,
- "files": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "message_metadata": { },
- "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3",
- "role": "string",
- "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec",
- "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "text": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| session_id required | string <uuid> (Session Id) |
| auto_build | boolean (Auto Build) Default: true |
| execution_mode | string (RuntimeExecutionMode) Default: "container" Enum: "graph" "container" |
| files | Array of strings (Files) |
object (Input) | |
| text | string (Text) <= 200000 characters Default: "" |
{- "auto_build": true,
- "execution_mode": "graph",
- "files": [
- "string"
], - "input": { },
- "text": ""
}{- "run": {
- "agent_display_name": "string",
- "agent_id": "string",
- "agent_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "error_message": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "input_payload": { },
- "logs_tail": [
- null
], - "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3",
- "result_payload": { },
- "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "trigger_message_id": "629a686b-e43f-4712-9d36-dc0db78ba42e",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec",
- "user_message": {
- "agent_display_name": "string",
- "agent_id": "string",
- "agent_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "error": true,
- "files": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "message_metadata": { },
- "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3",
- "role": "string",
- "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec",
- "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "text": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}
}| published_agent_id required | string <uuid> (Published Agent Id) |
| include_runflow_manifest | boolean (Include Runflow Manifest) Default: false |
{- "agent_id": "string",
- "agent_model_config": { },
- "allowed_tools": [
- null
], - "approved_at": "2019-08-24T14:15:22Z",
- "approved_by": "02030314-b162-4b4d-8af1-88eabdcc615d",
- "capability_manifest": { },
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "graph_payload_ref": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "latest_build_error": "string",
- "latest_build_status": "string",
- "latest_image_ref": "string",
- "max_runs_per_day": 0,
- "max_tokens_per_run": 0,
- "runflow_manifest": { },
- "runflow_manifest_summary": { },
- "runtime_profile": "string",
- "status": "string",
- "supports_chat": true,
- "supports_files": true,
- "supports_sessions": true,
- "supports_streaming": false,
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timeout_seconds": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "version": "string",
- "visibility": { }
}| published_agent_id required | string <uuid> (Published Agent Id) |
[- {
- "agent_display_name": "string",
- "agent_id": "string",
- "agent_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3",
- "session_metadata": { },
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "title": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| published_agent_id required | string <uuid> (Published Agent Id) |
object (Session Metadata) | |
Title (string) or Title (null) (Title) |
{- "session_metadata": { },
- "title": "string"
}{- "agent_display_name": "string",
- "agent_id": "string",
- "agent_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3",
- "session_metadata": { },
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "title": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}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
]
}null| agent_id required | string (Agent Id) non-empty |
| auto_build | boolean (Auto Build) Default: true |
| execution_mode | string (RuntimeExecutionMode) Default: "graph" Enum: "graph" "container" |
| files | Array of strings (Files) |
object (Input) | |
| tenant_id required | string <uuid> (Tenant Id) |
| version required | string (Version) non-empty |
{- "agent_id": "string",
- "auto_build": true,
- "execution_mode": "graph",
- "files": [
- "string"
], - "input": { },
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "version": "string"
}{- "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec"
}| run_id required | string <uuid> (Run Id) |
{- "agent_display_name": "string",
- "agent_id": "string",
- "agent_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "error_message": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "input_payload": { },
- "logs_tail": [
- null
], - "published_agent_id": "ab43e431-90b3-4002-ad38-9460c55a3cd3",
- "result_payload": { },
- "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",
- "status": "string",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "trigger_message_id": "629a686b-e43f-4712-9d36-dc0db78ba42e",
- "updated_at": "2019-08-24T14:15:22Z"
}| run_id required | string <uuid> (Run Id) |
X-Run-Callback-Token (string) or X-Run-Callback-Token (null) (X-Run-Callback-Token) |
Error Message (string) or Error Message (null) (Error Message) | |
| event_type required | string (Event Type) non-empty |
Message (string) or Message (null) (Message) | |
Result Payload (object) or Result Payload (null) (Result Payload) | |
Status (string) or Status (null) (Status) |
{- "error_message": "string",
- "event_type": "string",
- "message": "string",
- "result_payload": { },
- "status": "string"
}nullList schedules filtered by tenant/workspace/flow.
If tenant_id/workspace_id are not provided, they default to the current RBAC context.
Tenant Id (string) or Tenant Id (null) (Tenant Id) | |
Workspace Id (string) or Workspace Id (null) (Workspace Id) | |
Flow Id (string) or Flow Id (null) (Flow Id) |
[- {
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "cron": "string",
- "description": "string",
- "enabled": true,
- "end_at": "2019-08-24T14:15:22Z",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "input_type": "string",
- "input_value": { },
- "interval_seconds": 0,
- "last_run_at": "2019-08-24T14:15:22Z",
- "last_run_error": "string",
- "last_run_status": "string",
- "name": "string",
- "output_component": "string",
- "output_type": "string",
- "start_at": "2019-08-24T14:15:22Z",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timezone": "UTC",
- "tweaks": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}
]Create a new schedule for a flow.
The tenant_id and workspace_id can be omitted in the payload and will be inferred
from the current RBAC context when available.
Cron (string) or Cron (null) (Cron) Cron expression for flexible schedules | |
Description (string) or Description (null) (Description) Optional description for the schedule | |
| enabled | boolean (Enabled) Default: true Whether this schedule is active |
End At (string) or End At (null) (End At) Optional end time after which schedule is disabled | |
| flow_id required | string <uuid> (Flow Id) Flow that this schedule will run |
Input Type (string) or Input Type (null) (Input Type) Input type for the flow (text, chat, etc.) | |
Input Value (any) or Input Value (null) (Input Value) Input value passed to the flow (serialized) | |
Interval Seconds (integer) or Interval Seconds (null) (Interval Seconds) Simple interval in seconds (alternative to cron) | |
Last Run At (string) or Last Run At (null) (Last Run At) Timestamp of the last run (if any) | |
Last Run Error (string) or Last Run Error (null) (Last Run Error) Optional error message from last failed run | |
Last Run Status (string) or Last Run Status (null) (Last Run Status) Status of the last run (success, failed, running, pending) | |
| name required | string (Name) <= 255 characters Human friendly name for the schedule |
Output Component (string) or Output Component (null) (Output Component) Optional output component identifier | |
Output Type (string) or Output Type (null) (Output Type) Output type (any, debug, chat, etc.) | |
Start At (string) or Start At (null) (Start At) Optional start time for the schedule | |
Tenant Id (string) or Tenant Id (null) (Tenant Id) | |
| timezone | string (Timezone) <= 64 characters Default: "UTC" IANA timezone identifier (e.g. Europe/Istanbul) |
Tweaks (object) or Tweaks (null) (Tweaks) Flow tweaks applied during scheduled run | |
Workspace Id (string) or Workspace Id (null) (Workspace Id) |
{- "cron": "string",
- "description": "string",
- "enabled": true,
- "end_at": "2019-08-24T14:15:22Z",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "input_type": "string",
- "input_value": { },
- "interval_seconds": 0,
- "last_run_at": "2019-08-24T14:15:22Z",
- "last_run_error": "string",
- "last_run_status": "string",
- "name": "string",
- "output_component": "string",
- "output_type": "string",
- "start_at": "2019-08-24T14:15:22Z",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timezone": "UTC",
- "tweaks": { },
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}{- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "cron": "string",
- "description": "string",
- "enabled": true,
- "end_at": "2019-08-24T14:15:22Z",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "input_type": "string",
- "input_value": { },
- "interval_seconds": 0,
- "last_run_at": "2019-08-24T14:15:22Z",
- "last_run_error": "string",
- "last_run_status": "string",
- "name": "string",
- "output_component": "string",
- "output_type": "string",
- "start_at": "2019-08-24T14:15:22Z",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timezone": "UTC",
- "tweaks": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Get a single schedule by ID.
| schedule_id required | string <uuid> (Schedule Id) |
{- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "cron": "string",
- "description": "string",
- "enabled": true,
- "end_at": "2019-08-24T14:15:22Z",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "input_type": "string",
- "input_value": { },
- "interval_seconds": 0,
- "last_run_at": "2019-08-24T14:15:22Z",
- "last_run_error": "string",
- "last_run_status": "string",
- "name": "string",
- "output_component": "string",
- "output_type": "string",
- "start_at": "2019-08-24T14:15:22Z",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timezone": "UTC",
- "tweaks": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}Update an existing schedule.
| schedule_id required | string <uuid> (Schedule Id) |
Cron (string) or Cron (null) (Cron) | |
Description (string) or Description (null) (Description) | |
Enabled (boolean) or Enabled (null) (Enabled) | |
End At (string) or End At (null) (End At) | |
Input Type (string) or Input Type (null) (Input Type) | |
Input Value (any) or Input Value (null) (Input Value) | |
Interval Seconds (integer) or Interval Seconds (null) (Interval Seconds) | |
Name (string) or Name (null) (Name) | |
Output Component (string) or Output Component (null) (Output Component) | |
Output Type (string) or Output Type (null) (Output Type) | |
Start At (string) or Start At (null) (Start At) | |
Timezone (string) or Timezone (null) (Timezone) | |
Tweaks (object) or Tweaks (null) (Tweaks) |
{- "cron": "string",
- "description": "string",
- "enabled": true,
- "end_at": "2019-08-24T14:15:22Z",
- "input_type": "string",
- "input_value": { },
- "interval_seconds": 0,
- "name": "string",
- "output_component": "string",
- "output_type": "string",
- "start_at": "2019-08-24T14:15:22Z",
- "timezone": "string",
- "tweaks": { }
}{- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "cron": "string",
- "description": "string",
- "enabled": true,
- "end_at": "2019-08-24T14:15:22Z",
- "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "input_type": "string",
- "input_value": { },
- "interval_seconds": 0,
- "last_run_at": "2019-08-24T14:15:22Z",
- "last_run_error": "string",
- "last_run_status": "string",
- "name": "string",
- "output_component": "string",
- "output_type": "string",
- "start_at": "2019-08-24T14:15:22Z",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "timezone": "UTC",
- "tweaks": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}List users (superuser and tenant admin only).
| 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",
- "email": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_email_verified": true,
- "is_superuser": true,
- "profile_image": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}
]
}Create a new user (self-signup + OTP email verification).
| email required | string (Email) |
Is Active (boolean) or Is Active (null) (Is Active) | |
Is Superuser (boolean) or Is Superuser (null) (Is Superuser) | |
Optins (object) or Optins (null) (Optins) Default: {"dialog_dismissed":false,"discord_clicked":false,"github_starred":false} | |
| password required | string (Password) |
| username required | string (Username) |
{- "email": "string",
- "is_active": true,
- "is_superuser": true,
- "optins": {
- "dialog_dismissed": false,
- "discord_clicked": false,
- "github_starred": false
}, - "password": "string",
- "username": "string"
}{- "create_at": "2019-08-24T14:15:22Z",
- "email_verified_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_email_verified": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_logout_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "profile_image": "string",
- "store_api_key": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}Start password reset by sending an OTP code to the user's email.
| email required | string (Email) |
{- "email": "string"
}{- "property1": "string",
- "property2": "string"
}Complete password reset using the OTP code that was emailed to the user.
| email required | string (Email) |
| new_password required | string (New Password) |
| otp_code required | string (Otp Code) |
{- "email": "string",
- "new_password": "string",
- "otp_code": "string"
}{- "property1": "string",
- "property2": "string"
}Verify user email with OTP.
| email required | string (Email) |
| otp_code required | string (Otp Code) |
{- "email": "string",
- "otp_code": "string"
}{- "is_user_active": false,
- "message": "string",
- "success": true
}Get current user information.
{- "create_at": "2019-08-24T14:15:22Z",
- "email_verified_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_email_verified": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_logout_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "profile_image": "string",
- "store_api_key": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}Delete a user (superuser only).
Also removes user from all tenant and workspace memberships,
and cleans up related data.
| user_id required | string <uuid> (User Id) |
{- "property1": "string",
- "property2": "string"
}Update an existing user.
Allowed for:
- Superusers: can update any user
- Tenant admins: can update users in their tenant
- Regular users: can only update themselves
| user_id required | string <uuid> (User Id) |
Email (string) or Email (null) (Email) | |
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) | |
Last Logout At (string) or Last Logout At (null) (Last Logout 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) |
{- "email": "string",
- "is_active": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_logout_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "password": "string",
- "profile_image": "string",
- "username": "string"
}{- "create_at": "2019-08-24T14:15:22Z",
- "email": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_email_verified": true,
- "is_superuser": true,
- "profile_image": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}Reset user password. Superusers can reset any user's password; regular users can only reset their own.
| user_id required | string <uuid> (User Id) |
Email (string) or Email (null) (Email) | |
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) | |
Last Logout At (string) or Last Logout At (null) (Last Logout 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) |
{- "email": "string",
- "is_active": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_logout_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "password": "string",
- "profile_image": "string",
- "username": "string"
}{- "create_at": "2019-08-24T14:15:22Z",
- "email_verified_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "is_active": true,
- "is_email_verified": true,
- "is_superuser": true,
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_logout_at": "2019-08-24T14:15:22Z",
- "optins": { },
- "profile_image": "string",
- "store_api_key": "string",
- "updated_at": "2019-08-24T14:15:22Z",
- "username": "string"
}Handle WhatsApp webhook verification (GET request from Facebook)
| flow_id_or_name required | string (Flow Id Or Name) |
| hub.mode required | string (Hub.Mode) |
| hub.challenge required | string (Hub.Challenge) |
| hub.verify_token required | string (Hub.Verify Token) |
nullTest WhatsApp webhook with a sample message
| flow_id_or_name required | string (Flow Id Or Name) |
| test_message | string (Test Message) Default: "Hello from test!" |
{- "property1": "string",
- "property2": "string"
}| name required | string (Name) [ 1 .. 120 ] characters |
Parent Id (string) or Parent Id (null) (Parent Id) | |
Source Path (string) or Source Path (null) (Source Path) |
{- "name": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "source_path": "string"
}null| folder_id required | string <uuid> (Folder Id) |
| name required | string (Name) [ 1 .. 120 ] characters |
{- "name": "string"
}null| server_name required | string (Server Name) |
| property name* additional property | any |
{ }null| server_name required | string (Server Name) |
| property name* additional property | any |
{ }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"
}, - "inputs": { },
- "job_id": "string",
- "object": "response",
- "outputs": { },
- "status": "queued"
}Execute a workflow with support for sync, stream, and background modes
| background | boolean (Background) Default: false |
| flow_id required | string (Flow Id) |
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 | |
Inputs (object) or Inputs (null) (Inputs) Component-specific inputs in flat format: 'component_id.param_name': value | |
| stream | boolean (Stream) Default: false |
{- "background": false,
- "flow_id": "flow_67ccd2be17f0819081ff3bb2cf6508e60bb6a6b452d3795b",
- "globals": {
- "FILENAME": "relatorio-final.pdf",
- "OWNER_NAME": "Jose"
}, - "inputs": {
- "ChatInput-abc.input_value": "Hello, how can you help me today?",
- "ChatInput-abc.session_id": "session-123",
- "LLM-xyz.max_tokens": 100,
- "LLM-xyz.temperature": 0.7,
}, - "stream": false
}{- "created_timestamp": "string",
- "errors": [ ],
- "flow_id": "string",
- "globals": {
- "property1": "string",
- "property2": "string"
}, - "job_id": "string",
- "links": {
- "property1": "string",
- "property2": "string"
}, - "object": "job",
- "status": "queued"
}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"
}Retrieve application logs with authentication required.
SECURITY: Logs may contain sensitive information and require 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 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