Skip to main content

Langflow (1.13.0)

Download OpenAPI specification:Download

a2a

List A2A Agents

List the caller's own A2A-published agent flows, each with its agent-card URL.

Authenticated and owner-scoped, mirroring the MCP-projects catalog: a public cross-user directory would strip the per-flow card's unguessable-id obscurity and expose other users' agents, so this enumerates only the calling user's agents. Each cardUrl is the public discovery entry point an orchestrator fetches per agent.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
[
  • { }
]

Get Agent Card

Serve the spec-valid A2A agent card for an agent-typed, a2a_enabled flow.

Public by design: the A2A public agent card is unauthenticated by spec, so gating it behind login would break standard discovery. Returns 404 when the flag is off, the flow does not exist, the flow is not flow_type=agent, or a2a_enabled is falsy.

path Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
{ }

A2A Jsonrpc

Serve the A2A JSON-RPC surface (message/send, message/stream, tasks/get, tasks/resubscribe) for an agent flow.

Gated like the card route; apikey-folder flows additionally require a valid owner key (401). The flow runs as its owner. Returns the SDK's JSON-RPC response (HTTP 200 even for JSON-RPC-level errors). No DbSession dependency here: holding a session open across the run would fight the v2 surface's lock-avoidance design, and the gate/run resolve from flow_id via short self-managed sessions.

path Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
null

Base

Get All

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.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
include_blocked
boolean (Include Blocked)
Default: false
Flow Id (string) or Flow Id (null) (Flow Id)
Project Id (string) or Project Id (null) (Project Id)

Responses

Response samples

Content type
application/json
null

Get Config

Retrieve 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.

Returns: ConfigResponse | PublicConfigResponse: Configuration settings appropriate for the user's auth status.

Raises: HTTPException: If an error occurs while retrieving the configuration.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
Example
{
  • "a2a_enabled": false,
  • "agentic_experience": true,
  • "allow_custom_components": true,
  • "assistant_max_message_length": 2000,
  • "authz_enabled": false,
  • "auto_saving": true,
  • "auto_saving_interval": 0,
  • "blocked_component_types": [ ],
  • "catalog_governance_enabled": false,
  • "custom_component_admin_only": true,
  • "default_folder_name": "string",
  • "default_vector_store_backend": "sqlite",
  • "embedded_mode": true,
  • "enable_extension_reload": true,
  • "event_delivery": "polling",
  • "feature_flags": {
    },
  • "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,
  • "local_vector_store_available": 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,
  • "substitute_outdated_component_code": true,
  • "type": "full",
  • "voice_mode_available": true,
  • "webhook_auth_enable": true,
  • "webhook_polling_interval": 0
}

Experimental Run Flow

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:

POST /run/flow_id
x-api-key: YOUR_API_KEY
Payload:
{
    "inputs": [
        {"components": ["component1"], "input_value": "value1"},
        {"components": ["component3"], "input_value": "value2"}
    ],
    "outputs": ["Component Name", "component_id"],
    "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}
    "stream": false
}

This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations, catering to diverse application requirements.

Authorizations:
API key queryAPI key header
path Parameters
flow_id_or_name
required
string (Flow Id Or Name)
Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "inputs": [
    ],
  • "outputs": [
    ],
  • "session_id": "string",
  • "stream": false,
  • "tweaks": {
    }
}

Response samples

Content type
application/json
{
  • "outputs": [ ],
  • "session_id": "string"
}

Simplified Run Flow

Executes a specified flow by ID with support for streaming and telemetry (API key auth).

This endpoint executes a flow identified by ID or name, with options for streaming the response and tracking execution metrics. It handles both streaming and non-streaming execution modes. This endpoint uses API key authentication (Bearer token).

Args: background_tasks (BackgroundTasks): FastAPI background task manager flow (FlowRead | None): The flow to execute, loaded via dependency input_request (SimplifiedAPIRequest | None): Input parameters for the flow stream (bool): Whether to stream the response api_key_user (UserRead): Authenticated user from API key context (dict | None): Optional context to pass to the flow http_request (Request): The incoming HTTP request for extracting global variables

Returns: Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results or a RunResponse with the complete execution results

Raises: HTTPException: For flow not found (404) or invalid input (400) APIException: For internal execution errors (500)

Notes: - Supports both streaming and non-streaming execution modes - Tracks execution time and success/failure via telemetry - Handles graceful client disconnection in streaming mode - Provides detailed error handling with appropriate HTTP status codes - Extracts global variables from HTTP headers with prefix X-LANGFLOW-GLOBAL-VAR-* - Merges extracted variables with the context parameter as "request_variables" - In streaming mode, uses EventManager to handle events: - "add_message": New messages during execution - "token": Individual tokens during streaming - "end": Final execution result - Authentication: Requires API key (Bearer token)

Authorizations:
API key queryAPI key header
path Parameters
flow_id_or_name
required
string (Flow Id Or Name)
query Parameters
stream
boolean (Stream)
Default: false
Request Body schema: application/json
Context (object) or Context (null) (Context)
SimplifiedAPIRequest (object) or null

Responses

Request samples

Content type
application/json
{
  • "context": { },
  • "input_request": {
    }
}

Response samples

Content type
application/json
null

Get Version

Responses

Response samples

Content type
application/json
null

Webhook Run Flow

Run 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.

path Parameters
flow_id_or_name
required
string (Flow Id Or Name)

Responses

Response samples

Content type
application/json
{ }

Audit

Read Audits

Every audit event, newest first, filtered and keyset-paginated on the server.

Filters: source, kind, resource_type, action, exclude_action, operation, result and actor_type repeat and OR within themselves; resource_id, user_id, actor_id, request_id, since and until narrow further. q keeps rows whose action, operation, resource type or name, actor username or details contain it, ignoring case. include_total=true adds a count of every match. offset jumps to a page by position instead of a cursor; next_cursor then continues from it.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
source
Array of any
Items Enum: "authz" "resource"

The store the event came from. Repeatable; values are ORed.

kind
Array of any
Items Enum: "action" "check"

What the event is about. Repeatable; values are ORed.

resource_type
Array of strings

Resource type slug. Repeatable; values are ORed.

action
Array of strings

Exact action. Repeatable; values are ORed.

exclude_action
Array of strings

Action to leave out. Repeatable; values are ORed.

operation
Array of any
Items Enum: "create" "delete" "patch" "replace"

Shape of the mutation. Repeatable; values are ORed.

result
Array of any
Items Enum: "allow" "deny" "failed" "owner_override" "skip" "succeeded"

Outcome. Repeatable; values are ORed.

actor_type
Array of strings

How the request authenticated. Repeatable; values are ORed.

resource_id
string <uuid>

Exact resource.

user_id
string <uuid>

Exact Langflow account.

actor_id
string <uuid>

Exact authenticated principal or credential.

request_id
string <uuid>

Exact request correlation id.

since
string <date-time>

Inclusive RFC 3339 timestamp.

until
string <date-time>

Exclusive RFC 3339 timestamp, later than since.

q
string <= 200 characters

Free text kept against action, operation, resource type or name, actor username and details.

cursor
string

Opaque cursor from the previous page.

limit
integer [ 1 .. 200 ]
Default: 50

Page size.

offset
integer [ 0 .. 1000000 ]

Jump to a page by position instead of a cursor; cannot be combined with one.

include_total
boolean
Default: false

Add a count of every match.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string",
  • "total": 0
}

Export Audits

Stream every matching event as CSV (default) or NDJSON, newest first.

The window is frozen when the export starts, so it is one consistent snapshot however long it runs, and the rows are never gathered in memory.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
source
Array of any
Items Enum: "authz" "resource"

The store the event came from. Repeatable; values are ORed.

kind
Array of any
Items Enum: "action" "check"

What the event is about. Repeatable; values are ORed.

resource_type
Array of strings

Resource type slug. Repeatable; values are ORed.

action
Array of strings

Exact action. Repeatable; values are ORed.

exclude_action
Array of strings

Action to leave out. Repeatable; values are ORed.

operation
Array of any
Items Enum: "create" "delete" "patch" "replace"

Shape of the mutation. Repeatable; values are ORed.

result
Array of any
Items Enum: "allow" "deny" "failed" "owner_override" "skip" "succeeded"

Outcome. Repeatable; values are ORed.

actor_type
Array of strings

How the request authenticated. Repeatable; values are ORed.

resource_id
string <uuid>

Exact resource.

user_id
string <uuid>

Exact Langflow account.

actor_id
string <uuid>

Exact authenticated principal or credential.

request_id
string <uuid>

Exact request correlation id.

since
string <date-time>

Inclusive RFC 3339 timestamp.

until
string <date-time>

Exclusive RFC 3339 timestamp, later than since.

q
string <= 200 characters

Free text kept against action, operation, resource type or name, actor username and details.

format
any
Enum: "csv" "ndjson"

csv (the default) or ndjson.

Responses

Response samples

Content type
application/json
null

Authorization

Get Authorization Capabilities

Return caller-specific administration access and installed features.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "administration": {
    },
  • "features": {
    }
}

List Assignments

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 role:manage; 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).

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
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
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Assignment

Assign a role to a user as a role administrator.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)
Request Body schema: application/json
required
Domain Id (string) or Domain Id (null) (Domain Id)

Required when domain_type is org/workspace/project; must be null for global.

domain_type
string (Domain Type)
Default: "global"
Enum: "global" "org" "workspace" "project"

Domain scope of the assignment. global is unscoped (no domain_id); org/workspace/project require a matching domain_id.

role_id
required
string <uuid> (Role Id)
user_id
required
string <uuid> (User Id)

Responses

Request samples

Content type
application/json
{
  • "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
  • "domain_type": "global",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Response samples

Content type
application/json
{
  • "assigned_at": "2019-08-24T14:15:22Z",
  • "assigned_by": "dd7cba77-7080-4b0e-9a94-fdfd1232f6b4",
  • "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
  • "domain_type": "string",
  • "grant_sources": [
    ],
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Delete Assignment

Remove a manual grant, returning the assignment when another source preserves it.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
assignment_id
required
string <uuid> (Assignment Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)

Responses

Response samples

Content type
application/json
{
  • "assigned_at": "2019-08-24T14:15:22Z",
  • "assigned_by": "dd7cba77-7080-4b0e-9a94-fdfd1232f6b4",
  • "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
  • "domain_type": "string",
  • "grant_sources": [
    ],
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

List Roles

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.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
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

Exact Name (string) or Exact Name (null) (Exact Name)

Exact match on role name

limit
integer (Limit) [ 1 .. 200 ]
Default: 100
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Role

Create a custom (non-system) role.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)
Request Body schema: application/json
required
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 <resource>:<action> form — for example flow:read, deployment:execute, share:create. Resources must be one of user, team, role, flow, deployment, project, knowledge_base, variable, file, share, provider_account, voice, plus the narrow model-provider form component:models/<provider-id>:read. Actions are constrained per-resource (see services/authorization/actions.py): e.g. deploy is only valid on flow, ingest only on knowledge_base, update only on share. * is accepted only for resource vocabularies that expose it; administration resources use the explicit manage action. A registered authorization plugin is responsible for compiling these into its policy format.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string",
  • "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Delete Role

Delete a custom role.

System roles cannot be deleted; roles with active assignments return 409 (delete the assignments first).

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
role_id
required
string <uuid> (Role Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Read Role

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
role_id
required
string <uuid> (Role Id)

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Update Role

Update fields on a custom role. System roles are read-only.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
role_id
required
string <uuid> (Role Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)
Request Body schema: application/json
required
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)

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string",
  • "parent_role_id": "7ea77ce3-4218-4d39-ad84-02444a2f4ee7",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

List Teams

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.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Search (string) or Search (null) (Search)

Substring match on team_name or adom_name

Adom Name (string) or Adom Name (null) (Adom Name)

Exact match on adom_name

Is Active (boolean) or Is Active (null) (Is Active)
limit
integer (Limit) [ 1 .. 200 ]
Default: 100
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Team

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "adom_name": "string",
  • "description": "string",
  • "is_active": true,
  • "team_name": "string"
}

Response samples

Content type
application/json
{
  • "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"
}

Delete Team

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
team_id
required
string <uuid> (Team Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Read Team

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
team_id
required
string <uuid> (Team Id)

Responses

Response samples

Content type
application/json
{
  • "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"
}

Update Team

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
team_id
required
string <uuid> (Team Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)
Request Body schema: application/json
required
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)

Responses

Request samples

Content type
application/json
{
  • "adom_name": "string",
  • "description": "string",
  • "is_active": true,
  • "team_name": "string"
}

Response samples

Content type
application/json
{
  • "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

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).

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
team_id
required
string <uuid> (Team Id)
query Parameters
limit
integer (Limit) [ 1 .. 200 ]
Default: 100
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add Member

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
team_id
required
string <uuid> (Team Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)
Request Body schema: application/json
required
source
string (Source)
Default: "manual"
Value: "manual"
user_id
required
string <uuid> (User Id)

Responses

Request samples

Content type
application/json
{
  • "source": "manual",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Response samples

Content type
application/json
{
  • "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"
}

Remove Member

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
team_id
required
string <uuid> (Team Id)
user_id
required
string <uuid> (User Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Chat

Build Flow

HTTP entry point for the v1 build route: always the interactive_chat family.

The execution family is deliberately NOT a request parameter. It selects the identity connections resolve under, so a caller able to name it could ask for webhook and run under the flow owner's credentials.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)
query Parameters
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"
Request Body schema: application/json
FlowDataRequest (object) or null
Array of Files (strings) or Files (null) (Files)
InputValueRequest (object) or null

Responses

Request samples

Content type
application/json
{
  • "data": {
    },
  • "files": [
    ],
  • "inputs": {
    }
}

Response samples

Content type
application/json
null

Cancel Build

Cancel a specific build job.

Requires authentication and ownership verification to prevent a user from aborting another user's running build (DoS via job cancellation). Jobs started via build_public_tmp are explicitly marked public. Jobs without a queue owner or public marker return 404.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
job_id
required
string (Job Id)

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "success": true
}

Get Build Events

Get events for a specific build job.

Requires authentication and ownership verification. A job owner is registered when build_flow is called; if a registered owner does not match the requesting user the endpoint returns 404 to avoid leaking job existence. Jobs started via build_public_tmp are explicitly marked public. Jobs without a queue owner or public marker return 404.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
job_id
required
string (Job Id)
query Parameters
event_delivery
string (EventDeliveryType)
Default: "streaming"
Enum: "streaming" "direct" "polling"

Responses

Response samples

Content type
application/json
null

Build Public Tmp

Build 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 a stable anonymous principal 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

path Parameters
flow_id
required
string <uuid> (Flow Id)
query Parameters
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"
Request Body schema: application/json
Array of Files (strings) or Files (null) (Files)
InputValueRequest (object) or null

Responses

Request samples

Content type
application/json
{
  • "files": [
    ],
  • "inputs": {
    }
}

Response samples

Content type
application/json
null

Cancel Build Public

Cancel 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.

path Parameters
job_id
required
string (Job Id)

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "success": true
}

Get Build Events Public

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.

path Parameters
job_id
required
string (Job Id)
query Parameters
event_delivery
string (EventDeliveryType)
Default: "streaming"
Enum: "streaming" "direct" "polling"

Responses

Response samples

Content type
application/json
null

Catalog Policy

Get Component Policy

Return the complete global component block set.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "blocked": [
    ],
  • "managed_externally": true
}

Replace Component Policy

Replace the complete global component block set.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
blocked
required
Array of strings (Blocked) <= 1000 items [ items [ 1 .. 255 ] characters ]

Complete set of blocked catalog keys for this resource kind.

Responses

Request samples

Content type
application/json
{
  • "blocked": [
    ]
}

Response samples

Content type
application/json
{
  • "blocked": [
    ],
  • "managed_externally": true
}

Get Template Policy

Return the complete global template block set.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "blocked": [
    ],
  • "managed_externally": true
}

Replace Template Policy

Replace the complete global template block set.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
blocked
required
Array of strings (Blocked) <= 1000 items [ items [ 1 .. 255 ] characters ]

Complete set of blocked catalog keys for this resource kind.

Responses

Request samples

Content type
application/json
{
  • "blocked": [
    ]
}

Response samples

Content type
application/json
{
  • "blocked": [
    ],
  • "managed_externally": true
}

Get Component Usage

Return how many flows use each component.

Counts are keyed by canonical registry identity — a flow node saved under a legacy alias is counted under the component it resolves to today, the same resolution catalog enforcement applies. Keys not present in the registry (custom or synthetic components) are counted under their exact stored key. Each flow is counted at most once per component. Counts may lag flow writes by up to USAGE_SCAN_CACHE_TTL_SECONDS.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "components": {
    },
  • "flows_scanned": 0
}

Get Component Usage Flows

Return the flows that would be affected by blocking one component key.

A flow matches when the queried key and any of the flow's stored keys resolve to a shared canonical identity — the same matching rule flow writes and runs enforce. Flows are sorted by name, then id, and truncated to limit; total always reports the full match count. Results may lag flow writes by up to USAGE_SCAN_CACHE_TTL_SECONDS.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
component
required
string (Component) [ 1 .. 255 ] characters

Component key to look up; aliases resolve like catalog enforcement.

limit
integer (Limit) [ 1 .. 500 ]
Default: 100

Responses

Response samples

Content type
application/json
{
  • "component": "string",
  • "flows": [
    ],
  • "total": 0
}

Connections

List Connections

List owned, instance-owned, and explicitly shared connection metadata.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Provider (string) or Provider (null) (Provider)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Connection

Create connection metadata and optionally store encrypted credentials.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
allow_non_interactive
boolean (Allow Non Interactive)
Default: false
ConnectionCredentialWrite (object) or null
display_name
required
string (Display Name) [ 1 .. 255 ] characters
required
object (ExecutingIdentityDescriptor)

Non-secret identity metadata shown by connection pickers.

granted_scopes
Array of strings (Granted Scopes) <= 512 items
name
required
string (Name) <= 64 characters ^[a-z0-9]+(?:_[a-z0-9]+)*$
ownership_mode
string (ConnectionOwnershipMode)
Default: "user"
Enum: "user" "instance"
provider_key
required
string (Provider Key) <= 120 characters ^[a-z0-9][a-z0-9._-]*$

Responses

Request samples

Content type
application/json
{
  • "allow_non_interactive": false,
  • "credentials": {
    },
  • "display_name": "string",
  • "executing_identity": {
    },
  • "granted_scopes": [
    ],
  • "name": "string",
  • "ownership_mode": "user",
  • "provider_key": "string"
}

Response samples

Content type
application/json
{
  • "allow_non_interactive": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "display_name": "string",
  • "executing_identity": {
    },
  • "granted_scopes": [
    ],
  • "has_credentials": true,
  • "health": "unknown",
  • "health_checked_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "ownership_mode": "user",
  • "provider_key": "string",
  • "status": "pending",
  • "status_reason": "credential-missing",
  • "updated_at": "2019-08-24T14:15:22Z"
}

List Oauth Registrations

List the registrations a caller may name in an authorization request.

Registration configuration is operator-only, so a client had no way to learn the ids that POST /connections/{connection_id}/oauth/start accepts, or the scope ceiling it must stay inside. Only availability and non-secret fields are returned, and a registration that this deployment would refuse is omitted rather than advertised: a picker must not offer consent that cannot start.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Provider (string) or Provider (null) (Provider)
Flow Id (string) or Flow Id (null) (Flow Id)
Project Id (string) or Project Id (null) (Project Id)

Responses

Response samples

Content type
application/json
{
  • "registrations": [
    ]
}

Bind Connection Oauth Browser

Set the Desktop binding in the browser which will receive the callback.

path Parameters
provider
required
string (Provider)

Responses

Response samples

Content type
application/json
null

Complete Connection Oauth

Terminate provider callbacks here; state and browser binding replace login.

path Parameters
provider
required
string (Provider)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Delete Connection

Delete a connection and its stored credential; only a deleter of the row may call this.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
connection_id
required
string <uuid> (Connection Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Update Connection

Rename a connection or change its non-interactive opt-in without re-authorizing.

Anyone who may write the connection may withdraw the opt-in. Granting it widens which executions reach the owner's account, so only the owner (a superuser, for an instance connection) may turn it on.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
connection_id
required
string <uuid> (Connection Id)
Request Body schema: application/json
required
Allow Non Interactive (boolean) or Allow Non Interactive (null) (Allow Non Interactive)
Display Name (string) or Display Name (null) (Display Name)

Responses

Request samples

Content type
application/json
{
  • "allow_non_interactive": true,
  • "display_name": "string"
}

Response samples

Content type
application/json
{
  • "allow_non_interactive": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "display_name": "string",
  • "executing_identity": {
    },
  • "granted_scopes": [
    ],
  • "has_credentials": true,
  • "health": "unknown",
  • "health_checked_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "ownership_mode": "user",
  • "provider_key": "string",
  • "status": "pending",
  • "status_reason": "credential-missing",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Refresh Connection Health

Refresh credential health without returning or logging token material.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
connection_id
required
string <uuid> (Connection Id)

Responses

Response samples

Content type
application/json
{
  • "allow_non_interactive": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "display_name": "string",
  • "executing_identity": {
    },
  • "granted_scopes": [
    ],
  • "has_credentials": true,
  • "health": "unknown",
  • "health_checked_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "ownership_mode": "user",
  • "provider_key": "string",
  • "status": "pending",
  • "status_reason": "credential-missing",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Start Connection Oauth

Authorize an instance-configured registration for an existing connection.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
connection_id
required
string <uuid> (Connection Id)
Request Body schema: application/json
required
registration_id
required
string (Registration Id) [ 1 .. 120 ] characters ^[a-z0-9][a-z0-9_-]*$
scopes
required
Array of strings (Scopes) [ 1 .. 512 ] items

Responses

Request samples

Content type
application/json
{
  • "registration_id": "string",
  • "scopes": [
    ]
}

Response samples

Content type
application/json
{
  • "authorization_url": "string"
}

Revoke Connection

Revoke at the provider when supported and always remove local credentials.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
connection_id
required
string <uuid> (Connection Id)

Responses

Response samples

Content type
application/json
{
  • "allow_non_interactive": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "display_name": "string",
  • "executing_identity": {
    },
  • "granted_scopes": [
    ],
  • "has_credentials": true,
  • "health": "unknown",
  • "health_checked_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "ownership_mode": "user",
  • "provider_key": "string",
  • "provider_revocation": "revoked",
  • "status": "pending",
  • "status_reason": "credential-missing",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Test Connection

Check stored credentials, including Slack validation, and requested scope coverage.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
connection_id
required
string <uuid> (Connection Id)
Request Body schema: application/json
required
required_scopes
Array of strings (Required Scopes) <= 512 items

Responses

Request samples

Content type
application/json
{
  • "required_scopes": [
    ]
}

Response samples

Content type
application/json
{
  • "allow_non_interactive": true,
  • "created_at": "2019-08-24T14:15:22Z",
  • "display_name": "string",
  • "executing_identity": {
    },
  • "granted_scopes": [
    ],
  • "has_credentials": true,
  • "health": "unknown",
  • "health_checked_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "ownership_mode": "user",
  • "provider_key": "string",
  • "status": "pending",
  • "status_reason": "credential-missing",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Data Subjects

Find End Users

End-user ids that contain search, so an admin can pick the exact id the app sent.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
search
required
string (Search) [ 2 .. 255 ] characters
limit
integer (Limit) [ 1 .. 50 ]
Default: 20

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Erase Subject

Create and approve in one call, for a customer app that decides on its own.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
End User Id (string) or End User Id (null) (End User Id)
Array of Flow Ids (strings) or Flow Ids (null) (Flow Ids)
subject_type
required
string (DataSubjectType)
Enum: "builder" "end_user"
User Id (string) or User Id (null) (User Id)
Username (string) or Username (null) (Username)

Responses

Request samples

Content type
application/json
{
  • "end_user_id": "string",
  • "flow_ids": [
    ],
  • "subject_type": "builder",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "counts": { },
  • "decided_at": "2019-08-24T14:15:22Z",
  • "decided_by": "4accc021-c0cc-4c2c-8a78-605a0ed6da31",
  • "due_at": "2019-08-24T14:15:22Z",
  • "error": { },
  • "finished_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "overdue": false,
  • "phase": "string",
  • "refusal_note": "string",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "requested_by": "cda0f200-65cd-4343-aedd-9c936b908826",
  • "source": "string",
  • "status": "string",
  • "subject_label": "string",
  • "subject_type": "string",
  • "subject_user_id": "1707c861-e9ed-48f7-9f9f-3d21797cfdf4"
}

Find Subject

Count what Langflow holds about a subject, without creating a request.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
End User Id (string) or End User Id (null) (End User Id)
Array of Flow Ids (strings) or Flow Ids (null) (Flow Ids)
subject_type
required
string (DataSubjectType)
Enum: "builder" "end_user"
User Id (string) or User Id (null) (User Id)
Username (string) or Username (null) (Username)

Responses

Request samples

Content type
application/json
{
  • "end_user_id": "string",
  • "flow_ids": [
    ],
  • "subject_type": "builder",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "blocked_by": "deployed_flows",
  • "counts": {
    },
  • "deployments": [
    ],
  • "shared_flows": [
    ],
  • "subject_type": "string"
}

List Requests

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Array of Status (strings) or Status (null) (Status)
DataSubjectType (string) or Subject Type (null) (Subject Type)
open_only
boolean (Open Only)
Default: false
skip
integer (Skip) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "requests": [
    ],
  • "total_count": 0
}

Create Request

Record a request for an admin to review. Returns the open request when one already exists.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
End User Id (string) or End User Id (null) (End User Id)
Array of Flow Ids (strings) or Flow Ids (null) (Flow Ids)
subject_type
required
string (DataSubjectType)
Enum: "builder" "end_user"
User Id (string) or User Id (null) (User Id)
Username (string) or Username (null) (Username)

Responses

Request samples

Content type
application/json
{
  • "end_user_id": "string",
  • "flow_ids": [
    ],
  • "subject_type": "builder",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "counts": { },
  • "decided_at": "2019-08-24T14:15:22Z",
  • "decided_by": "4accc021-c0cc-4c2c-8a78-605a0ed6da31",
  • "due_at": "2019-08-24T14:15:22Z",
  • "error": { },
  • "finished_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "overdue": false,
  • "phase": "string",
  • "refusal_note": "string",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "requested_by": "cda0f200-65cd-4343-aedd-9c936b908826",
  • "source": "string",
  • "status": "string",
  • "subject_label": "string",
  • "subject_type": "string",
  • "subject_user_id": "1707c861-e9ed-48f7-9f9f-3d21797cfdf4"
}

Get Request

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
request_id
required
string <uuid> (Request Id)

Responses

Response samples

Content type
application/json
{
  • "counts": { },
  • "decided_at": "2019-08-24T14:15:22Z",
  • "decided_by": "4accc021-c0cc-4c2c-8a78-605a0ed6da31",
  • "due_at": "2019-08-24T14:15:22Z",
  • "error": { },
  • "finished_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "overdue": false,
  • "phase": "string",
  • "refusal_note": "string",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "requested_by": "cda0f200-65cd-4343-aedd-9c936b908826",
  • "source": "string",
  • "status": "string",
  • "subject_label": "string",
  • "subject_type": "string",
  • "subject_user_id": "1707c861-e9ed-48f7-9f9f-3d21797cfdf4"
}

Approve Request

Stop all access now and erase in the background.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
request_id
required
string <uuid> (Request Id)

Responses

Response samples

Content type
application/json
{
  • "counts": { },
  • "decided_at": "2019-08-24T14:15:22Z",
  • "decided_by": "4accc021-c0cc-4c2c-8a78-605a0ed6da31",
  • "due_at": "2019-08-24T14:15:22Z",
  • "error": { },
  • "finished_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "overdue": false,
  • "phase": "string",
  • "refusal_note": "string",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "requested_by": "cda0f200-65cd-4343-aedd-9c936b908826",
  • "source": "string",
  • "status": "string",
  • "subject_label": "string",
  • "subject_type": "string",
  • "subject_user_id": "1707c861-e9ed-48f7-9f9f-3d21797cfdf4"
}

Dry Run Request

What approving would erase, and whether a guard blocks it.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
request_id
required
string <uuid> (Request Id)

Responses

Response samples

Content type
application/json
{
  • "blocked_by": "deployed_flows",
  • "counts": {
    },
  • "deployments": [
    ],
  • "shared_flows": [
    ],
  • "subject_type": "string"
}

Export Request

Download what Langflow holds about the subject, while the request is still open.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
request_id
required
string <uuid> (Request Id)

Responses

Response samples

Content type
application/json
null

Refuse Request

Decline a request (legal hold or another Art. 17(3) exception). The note stays internal.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
request_id
required
string <uuid> (Request Id)
Request Body schema: application/json
required
Note (string) or Note (null) (Note)
Any of
<= 1000 characters
string (Note) <= 1000 characters

Responses

Request samples

Content type
application/json
{
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "counts": { },
  • "decided_at": "2019-08-24T14:15:22Z",
  • "decided_by": "4accc021-c0cc-4c2c-8a78-605a0ed6da31",
  • "due_at": "2019-08-24T14:15:22Z",
  • "error": { },
  • "finished_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "overdue": false,
  • "phase": "string",
  • "refusal_note": "string",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "requested_by": "cda0f200-65cd-4343-aedd-9c936b908826",
  • "source": "string",
  • "status": "string",
  • "subject_label": "string",
  • "subject_type": "string",
  • "subject_user_id": "1707c861-e9ed-48f7-9f9f-3d21797cfdf4"
}

Retry Request

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
request_id
required
string <uuid> (Request Id)

Responses

Response samples

Content type
application/json
{
  • "counts": { },
  • "decided_at": "2019-08-24T14:15:22Z",
  • "decided_by": "4accc021-c0cc-4c2c-8a78-605a0ed6da31",
  • "due_at": "2019-08-24T14:15:22Z",
  • "error": { },
  • "finished_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "overdue": false,
  • "phase": "string",
  • "refusal_note": "string",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "requested_by": "cda0f200-65cd-4343-aedd-9c936b908826",
  • "source": "string",
  • "status": "string",
  • "subject_label": "string",
  • "subject_type": "string",
  • "subject_user_id": "1707c861-e9ed-48f7-9f9f-3d21797cfdf4"
}

Export Own Data

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
null

Withdraw Own Deletion

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "decided_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "status": "string"
}

Get Own Deletion Request

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "decided_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "status": "string"
}

Request Own Deletion

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "decided_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "requested_at": "2019-08-24T14:15:22Z",
  • "status": "string"
}

Extensions

Get Extension Events

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.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
since
number (Since)
Default: 0

UTC epoch timestamp; return events after this cursor

Responses

Response samples

Content type
application/json
{
  • "events": [
    ],
  • "settled": true
}

Reload Extension Bundle

Trigger an atomic-swap reload for a single Bundle.

Returns the typed :class:~lfx.extension.reload.ReloadResult body on success. Per the typed-error contract, structural failures (broken bundle, missing source path, name mismatch) surface as 422 Unprocessable Entity with the first typed error in the body so clients can surface fix hints inline; the full ReloadResult payload (with all errors and warnings) is returned via the FastAPI detail envelope. Concurrency-control collisions surface as 409 Conflict (reload-in-progress). Non-2xx is the wire contract for every error path -- the body still carries the typed error so the client renders the same fix-hint envelope.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
extension_id
required
string (Extension Id)
bundle_name
required
string (Bundle Name)

Responses

Response samples

Content type
application/json
{ }

Files

Delete File

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
file_name
required
string (File Name)
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
null

Download File

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
file_name
required
string (File Name)
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
null

Download Image

Download image from storage for browser rendering.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
file_name
required
string (File Name)
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
null

List Files

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
null

List Profile Pictures

List profile pictures from local filesystem.

Profile pictures are first looked up in config_dir/profile_pictures/, then fallback to the package's bundled profile_pictures directory.

Responses

Response samples

Content type
application/json
null

Download Profile Picture

Download profile picture from local filesystem.

Profile pictures are first looked up in config_dir/profile_pictures/, then fallback to the package's bundled profile_pictures directory.

path Parameters
folder_name
required
string (Folder Name)
file_name
required
string (File Name)

Responses

Response samples

Content type
application/json
null

Upload File

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)
Request Body schema: multipart/form-data
required
file
required
string <application/octet-stream> (File)

Responses

Response samples

Content type
application/json
{
  • "file_path": "string",
  • "flowId": "string"
}

Delete All Files

Delete all files for the current user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
null

List Files

List the files available to the current user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Upload User File

Upload a file for the current user and track it in the database.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
append
boolean (Append)
Default: false
ephemeral
boolean (Ephemeral)
Default: false
Request Body schema: multipart/form-data
required
file
required
string <application/octet-stream> (File)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "path": "string",
  • "provider": "string",
  • "size": 0
}

Delete All Files

Delete all files for the current user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
null

List Files

List the files available to the current user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Upload User File

Upload a file for the current user and track it in the database.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
append
boolean (Append)
Default: false
ephemeral
boolean (Ephemeral)
Default: false
Request Body schema: multipart/form-data
required
file
required
string <application/octet-stream> (File)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "path": "string",
  • "provider": "string",
  • "size": 0
}

Delete Files Batch

Delete multiple files by their IDs.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
Array
string <uuid>

Responses

Request samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Response samples

Content type
application/json
null

Download Files Batch

Download multiple files as a zip file by their IDs.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
Array
string <uuid>

Responses

Request samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Response samples

Content type
application/json
null

Delete File

Delete a file by its ID.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
file_id
required
string <uuid> (File Id)

Responses

Response samples

Content type
application/json
null

Download File

Download a file by its ID or return its content as a string/bytes.

Args: file_id: UUID of the file. current_user: Authenticated user. session: Database session. storage_service: File storage service. return_content: If True, return raw content (str) instead of StreamingResponse.

Returns: StreamingResponse for client downloads or str for internal use.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
file_id
required
string <uuid> (File Id)
query Parameters
return_content
boolean (Return Content)
Default: false

Responses

Response samples

Content type
application/json
null

Edit File Name

Edit the name of a file by its ID.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
file_id
required
string <uuid> (File Id)
query Parameters
name
required
string (Name)

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "path": "string",
  • "provider": "string",
  • "size": 0
}

Flows

Delete Multiple Flows

Delete multiple flows by their IDs.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
Array
string <uuid>

Responses

Request samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Response samples

Content type
application/json
null

Read Flows

Retrieve a list of flows with optional pagination, filtering, and header-only mode.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
remove_example_flows
boolean (Remove Example Flows)
Default: false
components_only
boolean (Components Only)
Default: false
get_all
boolean (Get All)
Default: true
Folder Id (string) or Folder Id (null) (Folder Id)
FlowType (string) or Flow Type (null) (Flow Type)
header_flows
boolean (Header Flows)
Default: false
page
integer (Page) >= 1
Default: 1
size
integer (Size) [ 1 .. 100 ]
Default: 50

Responses

Response samples

Content type
application/json
Example
[ ]

Create Flow

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
A2A Card Overrides (object) or A2A Card Overrides (null) (A2A Card Overrides)

User overrides for the generated A2A agent card (skill description, examples, tags)

A2A Enabled (boolean) or A2A Enabled (null) (A2A Enabled)
Default: false

Can be exposed as an A2A agent (only meaningful when flow_type=agent)

access_type
string (AccessTypeEnum)
Default: "PRIVATE"
Enum: "PRIVATE" "PUBLIC"
Action Description (string) or Action Description (null) (Action Description)

The description of the action associated with the flow

Action Name (string) or Action Name (null) (Action Name)

The name of the action associated with the flow

Data (object) or Data (null) (Data)
Description (string) or Description (null) (Description)
Endpoint Name (string) or Endpoint Name (null) (Endpoint Name)
flow_type
string (FlowType)
Default: "workflow"
Enum: "workflow" "agent"

Whether the flow is a plain workflow or an agent (publishable over A2A)

Folder Id (string) or Folder Id (null) (Folder Id)
Fs Path (string) or Fs Path (null) (Fs Path)
Gradient (string) or Gradient (null) (Gradient)
Icon (string) or Icon (null) (Icon)
Icon Bg Color (string) or Icon Bg Color (null) (Icon Bg Color)
Id (string) or Id (null) (Id)
Is Component (boolean) or Is Component (null) (Is Component)
Default: false
Locked (boolean) or Locked (null) (Locked)
Default: false
Mcp Enabled (boolean) or Mcp Enabled (null) (Mcp Enabled)
Default: false

Can be exposed in the MCP server

name
required
string (Name)
Array of Tags (strings) or Tags (null) (Tags)
Updated At (string) or Updated At (null) (Updated At)
User Id (string) or User Id (null) (User Id)
Webhook (boolean) or Webhook (null) (Webhook)
Default: false

Can be used on the webhook endpoint

Workspace Id (string) or Workspace Id (null) (Workspace Id)

Responses

Request samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "fs_path": "string",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Response samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "name_key": "string",
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "version_token": "d16f52a5-5ffe-4dd3-b0e7-092fdab6b12c",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Read Flow Audits

Flow audit events, newest first, filtered and keyset-paginated.

Requires the flow:audit_read permission. Without an authorization plugin, a non-superuser sees events on Flows they own and events they made. A read of one flow_id is bounded to that id's current life whoever authorized it, because an id is freed by a delete and re-creatable in a Project the caller chooses; the unfiltered feed names no such id and keeps every life.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
flow_id
string <uuid>

Exact Flow.

operation
Array of any
Items Enum: "create" "replace" "patch" "delete"

Repeatable; values are ORed.

event_type
Array of any
Items Enum: "authz" "action"

Repeatable; values are ORed.

result
Array of any
Items Enum: "allow" "deny" "succeeded" "failed"

Repeatable; values are ORed.

user_id
string <uuid>

Exact Langflow account.

actor_type
Array of any
Items Enum: "user" "api_key" "service" "system" "unknown"

Repeatable; values are ORed.

actor_id
string <uuid>

Exact authenticated principal or credential.

acting_subject
string

Exact represented-user subject.

acting_issuer
string

Represented-user issuer; requires acting_subject.

request_id
string <uuid>

Exact request correlation id.

since
string <date-time>

Inclusive RFC 3339 timestamp.

until
string <date-time>

Exclusive RFC 3339 timestamp, later than since.

cursor
string

Opaque cursor from the previous page.

limit
integer [ 1 .. 200 ]
Default: 50

Page size.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string"
}

Read Basic Examples

Retrieve a list of basic example flows.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
include_blocked
boolean (Include Blocked)
Default: false

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Flows

Create multiple new flows.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
required
Array of objects (Flows)
Array
A2A Card Overrides (object) or A2A Card Overrides (null) (A2A Card Overrides)

User overrides for the generated A2A agent card (skill description, examples, tags)

A2A Enabled (boolean) or A2A Enabled (null) (A2A Enabled)
Default: false

Can be exposed as an A2A agent (only meaningful when flow_type=agent)

access_type
string (AccessTypeEnum)
Default: "PRIVATE"
Enum: "PRIVATE" "PUBLIC"
Action Description (string) or Action Description (null) (Action Description)

The description of the action associated with the flow

Action Name (string) or Action Name (null) (Action Name)

The name of the action associated with the flow

Data (object) or Data (null) (Data)
Description (string) or Description (null) (Description)
Endpoint Name (string) or Endpoint Name (null) (Endpoint Name)
flow_type
string (FlowType)
Default: "workflow"
Enum: "workflow" "agent"

Whether the flow is a plain workflow or an agent (publishable over A2A)

Folder Id (string) or Folder Id (null) (Folder Id)
Fs Path (string) or Fs Path (null) (Fs Path)
Gradient (string) or Gradient (null) (Gradient)
Icon (string) or Icon (null) (Icon)
Icon Bg Color (string) or Icon Bg Color (null) (Icon Bg Color)
Id (string) or Id (null) (Id)
Is Component (boolean) or Is Component (null) (Is Component)
Default: false
Locked (boolean) or Locked (null) (Locked)
Default: false
Mcp Enabled (boolean) or Mcp Enabled (null) (Mcp Enabled)
Default: false

Can be exposed in the MCP server

name
required
string (Name)
Array of Tags (strings) or Tags (null) (Tags)
Updated At (string) or Updated At (null) (Updated At)
User Id (string) or User Id (null) (User Id)
Webhook (boolean) or Webhook (null) (Webhook)
Default: false

Can be used on the webhook endpoint

Workspace Id (string) or Workspace Id (null) (Workspace Id)

Responses

Request samples

Content type
application/json
{
  • "flows": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Download Multiple File

Download all flows as a zip file.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
Array
string <uuid>

Responses

Request samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Response samples

Content type
application/json
null

Read Public Flow

Read a public flow without requiring authorization (public means public).

Because this endpoint is unauthenticated, secret field values (every template field marked password) are stripped before returning so a PUBLIC flow does not leak the owner's stored API keys / credentials to anonymous callers.

The response also carries the anonymous capability set. A canonical PUBLIC share admits flows whose access_type is still PRIVATE and bounds them at its own permission level, so a direct-link client that re-derives access from the legacy flag disagrees with this decision in both directions.

path Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "name_key": "string",
  • "public_access": {
    },
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "version_token": "d16f52a5-5ffe-4dd3-b0e7-092fdab6b12c",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Upload File

Upload flows from a JSON or ZIP file (upsert semantics for flows with stable IDs).

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Folder Id (string) or Folder Id (null) (Folder Id)
Request Body schema: multipart/form-data
File (string) or File (null) (File)
Any of
string <application/octet-stream> (File)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete Flow

Delete a flow.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
null

Read Flow

Read a flow.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "name_key": "string",
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "version_token": "d16f52a5-5ffe-4dd3-b0e7-092fdab6b12c",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Update Flow

Update a flow.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)
header Parameters
If-Match (string) or If-Match (null) (If-Match)
Request Body schema: application/json
required
A2A Card Overrides (object) or A2A Card Overrides (null) (A2A Card Overrides)
A2A Enabled (boolean) or A2A Enabled (null) (A2A Enabled)
AccessTypeEnum (string) or null
Action Description (string) or Action Description (null) (Action Description)
Action Name (string) or Action Name (null) (Action Name)
Data (object) or Data (null) (Data)
Description (string) or Description (null) (Description)
Endpoint Name (string) or Endpoint Name (null) (Endpoint Name)
FlowType (string) or null
Folder Id (string) or Folder Id (null) (Folder Id)
Fs Path (string) or Fs Path (null) (Fs Path)
Locked (boolean) or Locked (null) (Locked)
Mcp Enabled (boolean) or Mcp Enabled (null) (Mcp Enabled)
Name (string) or Name (null) (Name)
Workspace Id (string) or Workspace Id (null) (Workspace Id)

Responses

Request samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": true,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "fs_path": "string",
  • "locked": true,
  • "mcp_enabled": true,
  • "name": "string",
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Response samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "name_key": "string",
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "version_token": "d16f52a5-5ffe-4dd3-b0e7-092fdab6b12c",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Upsert Flow

Create or update a flow with a specific ID (upsert).

Returns 201 for creation, 200 for update. Returns 404 if owned by another user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)
header Parameters
If-Match (string) or If-Match (null) (If-Match)
Request Body schema: application/json
required
A2A Card Overrides (object) or A2A Card Overrides (null) (A2A Card Overrides)

User overrides for the generated A2A agent card (skill description, examples, tags)

A2A Enabled (boolean) or A2A Enabled (null) (A2A Enabled)
Default: false

Can be exposed as an A2A agent (only meaningful when flow_type=agent)

access_type
string (AccessTypeEnum)
Default: "PRIVATE"
Enum: "PRIVATE" "PUBLIC"
Action Description (string) or Action Description (null) (Action Description)

The description of the action associated with the flow

Action Name (string) or Action Name (null) (Action Name)

The name of the action associated with the flow

Data (object) or Data (null) (Data)
Description (string) or Description (null) (Description)
Endpoint Name (string) or Endpoint Name (null) (Endpoint Name)
flow_type
string (FlowType)
Default: "workflow"
Enum: "workflow" "agent"

Whether the flow is a plain workflow or an agent (publishable over A2A)

Folder Id (string) or Folder Id (null) (Folder Id)
Fs Path (string) or Fs Path (null) (Fs Path)
Gradient (string) or Gradient (null) (Gradient)
Icon (string) or Icon (null) (Icon)
Icon Bg Color (string) or Icon Bg Color (null) (Icon Bg Color)
Id (string) or Id (null) (Id)
Is Component (boolean) or Is Component (null) (Is Component)
Default: false
Locked (boolean) or Locked (null) (Locked)
Default: false
Mcp Enabled (boolean) or Mcp Enabled (null) (Mcp Enabled)
Default: false

Can be exposed in the MCP server

name
required
string (Name)
Array of Tags (strings) or Tags (null) (Tags)
Updated At (string) or Updated At (null) (Updated At)
User Id (string) or User Id (null) (User Id)
Webhook (boolean) or Webhook (null) (Webhook)
Default: false

Can be used on the webhook endpoint

Workspace Id (string) or Workspace Id (null) (Workspace Id)

Responses

Request samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "fs_path": "string",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Response samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "name_key": "string",
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "version_token": "d16f52a5-5ffe-4dd3-b0e7-092fdab6b12c",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Fork Flow

Create an inert copy of a flow, optionally carrying a caller-supplied graph.

Read access is deliberately enough: anyone who can open a flow can already export it and import the result, so requiring write here would block the conflict dialog's only exit without protecting anything. The copy is owned by whoever forked it and inherits no exposure from the source.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)
Request Body schema: application/json
required
Data (object) or Data (null) (Data)

Graph for the copy; the source graph when omitted

Name (string) or Name (null) (Name)

Name for the copy; the source name plus a suffix by default

Responses

Request samples

Content type
application/json
{
  • "data": { },
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "name_key": "string",
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "version_token": "d16f52a5-5ffe-4dd3-b0e7-092fdab6b12c",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Get Note Translations

Return translated note node descriptions for the current locale.

Returns a mapping of node_id → translated markdown text. Only nodes with a matching translation key are included; nodes without translations are omitted so the caller can leave them unchanged.

A missing or inaccessible flow yields 404 (via AuthorizedReadFlow), consistent with GET /flows/{id}; the sole frontend caller (NoteNode) treats that as "no translations" and renders the original text.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Overwrite Flow

Replace a flow with a merged graph, keeping the replaced version in history.

This is the deliberate half of the conflict dialog, and it is still guarded. The caller sends the token it reviewed, not the stale one it was refused on and not nothing at all: writing unconditionally here would silently discard a fourth writer who landed while the dialog was open, reopening the lost update the whole feature exists to close. So the meaning is "replace the version I just looked at", and a flow that moved again is refused with a fresh 409.

The archived entry is attributed to whoever last wrote the flow rather than to the caller, because it is their work being replaced -- attributing it here would put the caller's name on someone else's version and defeat the point of keeping it.

The write right is claimed before anything is archived. Archiving first and letting the refusal roll it back does not work: version entries are written in a begin_nested() savepoint that survives the outer rollback, so a refused overwrite left an orphan version in someone's history. Claiming first means a stale caller is turned away before a single row is written.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)
header Parameters
If-Match (string) or If-Match (null) (If-Match)
Request Body schema: application/json
required
required
object (Data)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "data": { }
}

Response samples

Content type
application/json
{
  • "a2a_card_overrides": { },
  • "a2a_enabled": false,
  • "access_type": "PRIVATE",
  • "action_description": "string",
  • "action_name": "string",
  • "data": { },
  • "description": "string",
  • "endpoint_name": "string",
  • "flow_type": "workflow",
  • "folder_id": "7695bac3-9397-4ec2-9335-45a2a16f1901",
  • "gradient": "string",
  • "icon": "string",
  • "icon_bg_color": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_component": false,
  • "locked": false,
  • "mcp_enabled": false,
  • "name": "string",
  • "name_key": "string",
  • "tags": [
    ],
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "version_token": "d16f52a5-5ffe-4dd3-b0e7-092fdab6b12c",
  • "webhook": false,
  • "workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9"
}

Read Flow Version State

Report which version of a flow is current, and who last changed it.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
{
  • "last_modified_by": "c917f0ea-f615-48d3-ae23-bdf591333146",
  • "last_modified_by_username": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "version_token": "d16f52a5-5ffe-4dd3-b0e7-092fdab6b12c"
}

Get Starter Projects

Get a list of starter projects.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
include_blocked
boolean (Include Blocked)
Default: false

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Integrations

List Integrations

List loaded integration providers and the caller's effective access.

Blocked providers and actions are omitted by default so a picker cannot advertise what execution would refuse. include_blocked returns them with their decision attached, which is what the operator panel renders, and is superuser-only for the same reason every other include_blocked surface is (/api/v1/all, starter projects, basic examples): the deny decision is operator information, not something a plain caller may enumerate.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Provider (string) or Provider (null) (Provider)
include_blocked
boolean (Include Blocked)
Default: false
Flow Id (string) or Flow Id (null) (Flow Id)
Project Id (string) or Project Id (null) (Project Id)

Responses

Response samples

Content type
application/json
{
  • "deployment_context": "self_managed",
  • "providers": [
    ]
}

Read Effective Integration Policy

Return the integration decision set that applies to this caller.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Flow Id (string) or Flow Id (null) (Flow Id)
Project Id (string) or Project Id (null) (Project Id)

Responses

Response samples

Content type
application/json
{
  • "approved_provider_ids": [
    ],
  • "blocked_action_keys": [
    ],
  • "loaded_provider_ids": [
    ],
  • "managed_externally": true,
  • "policy_revision": 0,
  • "unrestricted": true
}

Knowledge Base Upgrade

Detach Storage

Abandon a failed migration without deleting its source or recovery evidence.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
kb_id
required
string <uuid> (Kb Id)
Request Body schema: application/json
required
expected_generation
required
integer (Expected Generation) > 0

Responses

Request samples

Content type
application/json
{
  • "expected_generation": 1
}

Response samples

Content type
application/json
null

Get Inventory

Report whether legacy storage discovery completed and requires recovery.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
null

List Migrations

Return bounded, credential-free migration status and operator guidance.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
null

Retry Migration

Schedule recovery of the migration still bound to the current KB record.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
migration_id
required
string <uuid> (Migration Id)

Responses

Response samples

Content type
application/json
null

Pending Cleanup

List pending deletions with the linked Memory Bases that own their history.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
null

Retry Cleanup

Retry deletion only for the UUID and generation confirmed by the administrator.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
kb_id
required
string <uuid> (Kb Id)
Request Body schema: application/json
required
expected_generation
required
integer (Expected Generation) > 0

Responses

Request samples

Content type
application/json
{
  • "expected_generation": 1
}

Response samples

Content type
application/json
null

Storage Status

Show users their own availability and administrators the recovery queue.

Paths, embedding credentials and other users' resources never appear in regular-user responses. Progress is joined to the active migration only.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
null

mcp_projects

List Project Tools

List project MCP tools.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)
query Parameters
mcp_enabled
boolean (Mcp Enabled)
Default: true

Responses

Response samples

Content type
application/json
null

Update Project Mcp Settings

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.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)
Request Body schema: application/json
required
AuthSettings (object) or null
required
Array of objects (Settings)

Responses

Request samples

Content type
application/json
{
  • "auth_settings": {
    },
  • "settings": [
    ]
}

Response samples

Content type
application/json
null

Get Project Composer Url

Get 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.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)

Responses

Response samples

Content type
application/json
{
  • "error_message": "string",
  • "legacy_sse_url": "string",
  • "project_id": "string",
  • "streamable_http_url": "string",
  • "uses_composer": true
}

Install Mcp Config

Install MCP server configuration for Cursor, Windsurf, or Claude.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)
Request Body schema: application/json
required
client
required
string (Client)
Transport (string) or Transport (null) (Transport)

Responses

Request samples

Content type
application/json
{
  • "client": "string",
  • "transport": "sse"
}

Response samples

Content type
application/json
null

Check Installed Mcp Servers

Check if MCP server configuration is installed for this project in Cursor, Windsurf, or Claude.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)

Responses

Response samples

Content type
application/json
null

Model Provider Policy

Read Model Provider Policy

Read the global provider policy. An empty approved list is unrestricted.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "approved_provider_ids": [
    ],
  • "managed_externally": true,
  • "registered_providers": [
    ]
}

Replace Model Provider Policy

Atomically replace the global provider policy and invalidate snapshots.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
approved_provider_ids
required
Array of strings (Approved Provider Ids) <= 1000 items [ items <= 255 characters ^[a-z0-9][a-z0-9._-]*$ ]

Responses

Request samples

Content type
application/json
{
  • "approved_provider_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "approved_provider_ids": [
    ],
  • "managed_externally": true,
  • "registered_providers": [
    ]
}

Replace Model Provider Policy

Atomically replace the global provider policy and invalidate snapshots.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
approved_provider_ids
required
Array of strings (Approved Provider Ids) <= 1000 items [ items <= 255 characters ^[a-z0-9][a-z0-9._-]*$ ]

Responses

Request samples

Content type
application/json
{
  • "approved_provider_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "approved_provider_ids": [
    ],
  • "managed_externally": true,
  • "registered_providers": [
    ]
}

Monitor

Delete Vertex Builds

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Vertex Builds

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
{
  • "vertex_builds": {
    }
}

Job Queue Metrics

Return a snapshot of job-queue observability metrics.

For the in-memory backend this exposes only backend and active_jobs. For the Redis backend the snapshot also includes bridge counts, consumer wrappers, cancel-dispatcher liveness, and the cancel-stats counters (published / marker_hit / dispatched_owned / dispatched_foreign / publish_errors / dispatcher_reconnects / polling_watchdog_kills / activity_touch_errors / activity_get_errors / activity_parse_errors / dispatcher_internal_errors). dispatcher_reconnects tracks explicit dispatcher-loop retries and redis-py transparent pubsub reconnect callbacks.

Restricted to superusers because the snapshot exposes process-wide tenant activity (live job counts, cancel rates) — useful for ops, sensitive in multi-tenant deployments.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{ }

Delete Messages

Delete authorized messages after fencing associated Memory storage and tracking data.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
Array
string <uuid>

Responses

Request samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Messages

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Flow Id (string) or Flow Id (null) (Flow Id)
Session Id (string) or Session Id (null) (Session Id)
End User Id (string) or End User Id (null) (End User Id)
Sender (string) or Sender (null) (Sender)
Sender Name (string) or Sender Name (null) (Sender Name)
Order By (string) or Order By (null) (Order By)
Default: "timestamp"
order
string (Order)
Default: "ASC"
Limit (integer) or Limit (null) (Limit)
Offset (integer) or Offset (null) (Offset)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update Session Id

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
old_session_id
required
string (Old Session Id)
query Parameters
new_session_id
required
string (New Session Id)

The new session ID to update to

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete Messages Session

Delete messages for a single session.

Only deletes messages from sessions belonging to flows owned by the current user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
session_id
required
string (Session Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Delete Messages Sessions

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

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
null

Get Message Sessions

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Flow Id (string) or Flow Id (null) (Flow Id)
Limit (integer) or Limit (null) (Limit)
Offset (integer) or Offset (null) (Offset)

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get Shared Messages

Get messages for a shared/public flow, scoped to the authenticated user.

Uses a deterministic virtual flow_id derived from the user's ID and the original flow ID. Only messages stored under this virtual flow_id are returned.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
source_flow_id
required
string <uuid> (Source Flow Id)

The original public flow ID

Session Id (string) or Session Id (null) (Session Id)
Order By (string) or Order By (null) (Order By)
Default: "timestamp"
order
string (Order)
Default: "ASC"
Limit (integer) or Limit (null) (Limit)
Offset (integer) or Offset (null) (Offset)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Rename Shared Session

Rename a session on a shared/public flow, scoped to the authenticated user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
old_session_id
required
string (Old Session Id)
query Parameters
new_session_id
required
string (New Session Id)

The new session ID

source_flow_id
required
string <uuid> (Source Flow Id)

The original public flow ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete Shared Messages Session

Delete messages for a session on a shared/public flow, scoped to the authenticated user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
session_id
required
string (Session Id)
query Parameters
source_flow_id
required
string <uuid> (Source Flow Id)

The original public flow ID

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Shared Message Sessions

Get session IDs for a shared/public flow, scoped to the authenticated user.

Uses a deterministic virtual flow_id derived from the user's ID and the original flow ID. Only messages stored under this virtual flow_id are returned, most recently active session first, bounded by limit/offset.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
source_flow_id
required
string <uuid> (Source Flow Id)

The original public flow ID

Limit (integer) or Limit (null) (Limit)
Offset (integer) or Offset (null) (Offset)

Responses

Response samples

Content type
application/json
[
  • "string"
]

Update Shared Message

Update a message on a shared/public flow, scoped to the authenticated user.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
message_id
required
string <uuid> (Message Id)
query Parameters
source_flow_id
required
string <uuid> (Source Flow Id)

The original public flow ID

Request Body schema: application/json
required
Category (string) or Category (null) (Category)
Array of Content Blocks (objects) or Content Blocks (null) (Content Blocks)
Context Id (string) or Context Id (null) (Context Id)
Edit (boolean) or Edit (null) (Edit)
Error (boolean) or Error (null) (Error)
Array of Files (strings) or Files (null) (Files)
Properties (object) or null
Sender (string) or Sender (null) (Sender)
Sender Name (string) or Sender Name (null) (Sender Name)
Session Id (string) or Session Id (null) (Session Id)
Session Metadata (object) or Session Metadata (null) (Session Metadata)
Text (string) or Text (null) (Text)

Responses

Request samples

Content type
application/json
{
  • "category": "string",
  • "content_blocks": [
    ],
  • "context_id": "string",
  • "edit": true,
  • "error": true,
  • "files": [
    ],
  • "properties": {
    },
  • "sender": "string",
  • "sender_name": "string",
  • "session_id": "string",
  • "session_metadata": { },
  • "text": "string"
}

Response samples

Content type
application/json
{
  • "category": "message",
  • "content_blocks": [
    ],
  • "context_id": "string",
  • "edit": false,
  • "error": false,
  • "files": [
    ],
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "properties": {
    },
  • "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"
}

Update Message

Update an owned message after authorizing its flow and attachment namespaces.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
message_id
required
string <uuid> (Message Id)
Request Body schema: application/json
required
Category (string) or Category (null) (Category)
Array of Content Blocks (objects) or Content Blocks (null) (Content Blocks)
Context Id (string) or Context Id (null) (Context Id)
Edit (boolean) or Edit (null) (Edit)
Error (boolean) or Error (null) (Error)
Array of Files (strings) or Files (null) (Files)
Properties (object) or null
Sender (string) or Sender (null) (Sender)
Sender Name (string) or Sender Name (null) (Sender Name)
Session Id (string) or Session Id (null) (Session Id)
Session Metadata (object) or Session Metadata (null) (Session Metadata)
Text (string) or Text (null) (Text)

Responses

Request samples

Content type
application/json
{
  • "category": "string",
  • "content_blocks": [
    ],
  • "context_id": "string",
  • "edit": true,
  • "error": true,
  • "files": [
    ],
  • "properties": {
    },
  • "sender": "string",
  • "sender_name": "string",
  • "session_id": "string",
  • "session_metadata": { },
  • "text": "string"
}

Response samples

Content type
application/json
{
  • "category": "message",
  • "content_blocks": [
    ],
  • "context_id": "string",
  • "edit": false,
  • "error": false,
  • "files": [
    ],
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "properties": {
    },
  • "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"
}

Get Transactions

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
flow_id
required
string <uuid> (Flow Id)
Page (integer) or Page (null) (Page)
Size (integer) or Size (null) (Size)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "page": 1,
  • "pages": 0,
  • "size": 1,
  • "total": 0
}

Traces

Delete Traces By Flow

Delete all traces for a flow.

Args: flow_id: The ID of the flow whose traces should be deleted. current_user: The authenticated user (required for authorization).

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
flow_id
required
string <uuid> (Flow Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Traces

Get list of traces for a flow.

Args: current_user: Authenticated user (required for authorization) flow_id: Filter by flow ID session_id: Filter by session ID status: Filter by trace status query: Search query for trace name/id/session id start_time: Filter traces starting on/after this time (ISO) end_time: Filter traces starting on/before this time (ISO) page: Page number (1-based) size: Page size

Returns: List of traces

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "pages": 0,
  • "total": 0,
  • "traces": [
    ]
}

Delete Trace

Delete a trace and all its spans.

Args: trace_id: The ID of the trace to delete. current_user: The authenticated user (required for authorization).

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trace_id
required
string <uuid> (Trace Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Trace

Get a single trace with its hierarchical span tree.

Args: trace_id: The ID of the trace to retrieve. current_user: The authenticated user (required for authorization).

Returns: TraceRead containing the trace and its hierarchical span tree.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trace_id
required
string <uuid> (Trace Id)

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "startTime": "2019-08-24T14:15:22Z",
  • "status": "unset",
  • "totalLatencyMs": 0,
  • "totalTokens": 0
}

Policy Bundle

Read Policy Bundle

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "approved_integration_provider_ids": [
    ],
  • "approved_provider_ids": [
    ],
  • "blocked_component_keys": [
    ],
  • "blocked_integration_action_keys": [
    ],
  • "blocked_model_keys": [
    ],
  • "blocked_template_keys": [
    ],
  • "content_hash": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "initialized": true,
  • "managed_externally": false,
  • "reason": "string",
  • "revision": 0,
  • "rollback_of_revision": 0,
  • "source": "string"
}

Replace Policy Bundle

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
approved_integration_provider_ids
Array of strings (Approved Integration Provider Ids) <= 1000 items [ items <= 120 characters ^[a-zA-Z0-9][a-zA-Z0-9._-]*$ ]
approved_provider_ids
required
Array of strings (Approved Provider Ids) <= 1000 items [ items <= 255 characters ^[a-z0-9][a-z0-9._-]*$ ]
blocked_component_keys
required
Array of strings (Blocked Component Keys) <= 1000 items [ items [ 1 .. 255 ] characters ]
blocked_integration_action_keys
Array of strings (Blocked Integration Action Keys) <= 1000 items [ items [ 1 .. 255 ] characters ]
blocked_model_keys
Array of strings (Blocked Model Keys) <= 1000 items [ items [ 1 .. 255 ] characters ]
blocked_template_keys
required
Array of strings (Blocked Template Keys) <= 1000 items [ items [ 1 .. 255 ] characters ]
expected_revision
required
integer (Expected Revision) >= 1
Reason (string) or Reason (null) (Reason)

Responses

Request samples

Content type
application/json
{
  • "approved_integration_provider_ids": [
    ],
  • "approved_provider_ids": [
    ],
  • "blocked_component_keys": [
    ],
  • "blocked_integration_action_keys": [
    ],
  • "blocked_model_keys": [
    ],
  • "blocked_template_keys": [
    ],
  • "expected_revision": 1,
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "approved_integration_provider_ids": [
    ],
  • "approved_provider_ids": [
    ],
  • "blocked_component_keys": [
    ],
  • "blocked_integration_action_keys": [
    ],
  • "blocked_model_keys": [
    ],
  • "blocked_template_keys": [
    ],
  • "content_hash": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "initialized": true,
  • "managed_externally": false,
  • "reason": "string",
  • "revision": 0,
  • "rollback_of_revision": 0,
  • "source": "string"
}

Read Policy Bundle History

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
limit
integer (Limit) [ 1 .. 200 ]
Default: 50
Before Revision (integer) or Before Revision (null) (Before Revision)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_before_revision": 0
}

Rollback Policy Bundle

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
revision
required
integer (Revision)
Request Body schema: application/json
required
expected_revision
required
integer (Expected Revision) >= 1
Reason (string) or Reason (null) (Reason)

Responses

Request samples

Content type
application/json
{
  • "expected_revision": 1,
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "approved_integration_provider_ids": [
    ],
  • "approved_provider_ids": [
    ],
  • "blocked_component_keys": [
    ],
  • "blocked_integration_action_keys": [
    ],
  • "blocked_model_keys": [
    ],
  • "blocked_template_keys": [
    ],
  • "content_hash": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
  • "initialized": true,
  • "managed_externally": false,
  • "reason": "string",
  • "revision": 0,
  • "rollback_of_revision": 0,
  • "source": "string"
}

Projects

Read Projects

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Project

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
Auth Settings (object) or Auth Settings (null) (Auth Settings)

Authentication settings for the folder/project

Array of Components List (strings) or Components List (null) (Components List)
Description (string) or Description (null) (Description)
Array of Flows List (strings) or Flows List (null) (Flows List)
name
required
string (Name)

Responses

Request samples

Content type
application/json
{
  • "auth_settings": { },
  • "components_list": [
    ],
  • "description": "string",
  • "flows_list": [
    ],
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "auth_settings": { },
  • "description": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}

Read Project Audits

Project audit events, newest first, filtered and keyset-paginated.

Requires the project:audit_read permission. Without an authorization plugin, a non-superuser sees events on Projects they own and events they made.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
project_id
string <uuid>

Exact Project.

operation
Array of any
Items Enum: "create" "replace" "patch" "delete"

Repeatable; values are ORed.

event_type
Array of any
Items Enum: "authz" "action"

Repeatable; values are ORed.

result
Array of any
Items Enum: "allow" "deny" "succeeded" "failed"

Repeatable; values are ORed.

user_id
string <uuid>

Exact Langflow account.

actor_type
Array of any
Items Enum: "user" "api_key" "service" "system" "unknown"

Repeatable; values are ORed.

actor_id
string <uuid>

Exact authenticated principal or credential.

acting_subject
string

Exact represented-user subject.

acting_issuer
string

Represented-user issuer; requires acting_subject.

request_id
string <uuid>

Exact request correlation id.

since
string <date-time>

Inclusive RFC 3339 timestamp.

until
string <date-time>

Exclusive RFC 3339 timestamp, later than since.

cursor
string

Opaque cursor from the previous page.

limit
integer [ 1 .. 200 ]
Default: 50

Page size.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "next_cursor": "string"
}

Download File

Download all flows from project as a zip file.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)

Responses

Response samples

Content type
application/json
null

Upload File

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).

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: multipart/form-data
File (string) or File (null) (File)
Any of
string <application/octet-stream> (File)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete Project

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Read Project

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)
query Parameters
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: ""

Responses

Response samples

Content type
application/json
Example
{
  • "flows": {
    },
  • "folder": {
    }
}

Update Project

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)
Request Body schema: application/json
required
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)

Responses

Request samples

Content type
application/json
{
  • "auth_settings": { },
  • "components": [
    ],
  • "description": "string",
  • "flows": [
    ],
  • "name": "string",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}

Response samples

Content type
application/json
{
  • "auth_settings": { },
  • "description": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}

Upsert Project

Create or update a project with a specific ID (upsert).

Returns 201 for creation, 200 for update. Returns 404 if owned by another user (avoids leaking existence). A name collision fails loud as 409 on both the create and update paths (unlike POST, which auto-renames).

workspace_id is out of scope: FolderCreate cannot express it, so a synced project inherits NULL exactly like one created via POST. Workspace assignment is not part of the upsert contract.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)
Request Body schema: application/json
required
Auth Settings (object) or Auth Settings (null) (Auth Settings)

Authentication settings for the folder/project

Array of Components List (strings) or Components List (null) (Components List)
Description (string) or Description (null) (Description)
Array of Flows List (strings) or Flows List (null) (Flows List)
name
required
string (Name)

Responses

Request samples

Content type
application/json
{
  • "auth_settings": { },
  • "components_list": [
    ],
  • "description": "string",
  • "flows_list": [
    ],
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "auth_settings": { },
  • "description": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}

Read Project Deployment Snapshot

Return one bounded, read-only, secret-safe serving snapshot.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)

Responses

Response samples

Content type
application/json
{
  • "dependencies": { },
  • "flows": [
    ],
  • "project": {
    },
  • "required_connections": [
    ],
  • "required_mcp_projects": [
    ],
  • "required_mcp_variables": [
    ],
  • "required_models": [
    ],
  • "required_providers": [
    ],
  • "required_variables": [
    ],
  • "unresolved_model_fields": 0
}

Get Project Replacement Operation

Read only a committed replacement receipt, even if live content changed.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)
operation_id
required
string <uuid> (Operation Id)

Responses

Response samples

Content type
application/json
{
  • "dependencies": { },
  • "flows": [
    ],
  • "project": {
    }
}

Replace Project Operation

Replace a project's full flow set and persist an immutable retry receipt.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
project_id
required
string <uuid> (Project Id)
operation_id
required
string <uuid> (Operation Id)
Request Body schema: application/json
required
Dependencies (object) or Dependencies (null) (Dependencies)
required
Description (string) or Description (null) (Description)
required
Array of objects (Flows)
Project Name (string) or Project Name (null) (Project Name)

Responses

Request samples

Content type
application/json
{
  • "dependencies": { },
  • "description": "string",
  • "flows": [
    ],
  • "project_name": "string"
}

Response samples

Content type
application/json
{
  • "dependencies": { },
  • "flows": [
    ],
  • "project": {
    }
}

OpenAI Responses API

Create Response

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

Authorizations:
API key queryAPI key header
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "background": false,
  • "include": [
    ],
  • "input": "string",
  • "model": "string",
  • "previous_response_id": "string",
  • "stream": false,
  • "tools": [
    ]
}

Response samples

Content type
application/json
null

Triggers

List Triggers

List the triggers on one flow.

flow_id is required rather than optional: an unscoped list would have to fan out over every flow the caller can read, and the answer a client wants is always "the triggers on this flow".

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
flow_id
required
string <uuid> (Flow Id)

Flow whose triggers to list

limit
integer (Limit) [ 1 .. 200 ]
Default: 50
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Trigger

Create a trigger on a flow the caller may write.

The trigger is owned by the flow owner, not by whoever created it. The execution-principal matrix classifies a trigger run as flow_owner, and flow-save reconciliation already creates rows that way; keying the API path off the caller instead would give one flow two kinds of trigger identity depending on which surface armed it, and would let a collaborator with flow write silently schedule unattended runs under their own connections.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
binding_target
string (TriggerBindingTarget)
Default: "flow"
Enum: "flow" "deployment"

What a fired event runs.

flow runs the saved flow (or the pinned flow_version when set) through the background execution service. deployment is stored but not dispatched in 1.13 — see :class:BindingUnsupportedError.

concurrency_limit
integer (Concurrency Limit) [ 1 .. 100 ]
Default: 1
object (Config)
Connection Id (string) or Connection Id (null) (Connection Id)
Deployment Id (string) or Deployment Id (null) (Deployment Id)
flow_id
required
string <uuid> (Flow Id)
Flow Version Id (string) or Flow Version Id (null) (Flow Version Id)
kind
required
string (Kind) [ 1 .. 64 ] characters ^[a-z][a-z0-9_]*(\.[a-z0-9_]+)*$
max_attempts
integer (Max Attempts) [ 1 .. 20 ]
Default: 5
name
required
string (Name) [ 1 .. 255 ] characters
Node Id (string) or Node Id (null) (Node Id)
Provider (string) or Provider (null) (Provider)
session_policy
string (TriggerSessionPolicy)
Default: "per_event"
Enum: "per_event" "shared"

How a dispatched run derives its session id when the payload has no conversation.

state
string (TriggerState)
Default: "pending"
Enum: "pending" "active" "paused" "expired" "needs_reconnect" "error" "dead"

Lifecycle of a trigger row.

pending is the reconciled-but-not-yet-armed state a canvas save creates; active is the only state the scheduler and dispatcher act on.

Responses

Request samples

Content type
application/json
{
  • "binding_target": "flow",
  • "concurrency_limit": 1,
  • "config": { },
  • "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",
  • "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc",
  • "kind": "string",
  • "max_attempts": 5,
  • "name": "string",
  • "node_id": "string",
  • "provider": "string",
  • "session_policy": "per_event",
  • "state": "pending"
}

Response samples

Content type
application/json
{
  • "binding_target": "string",
  • "concurrency_limit": 0,
  • "config": { },
  • "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",
  • "created_at": "2019-08-24T14:15:22Z",
  • "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "kind": "string",
  • "last_error": "string",
  • "last_fired_at": "2019-08-24T14:15:22Z",
  • "max_attempts": 0,
  • "name": "string",
  • "next_fire_at": "2019-08-24T14:15:22Z",
  • "node_id": "string",
  • "provider": "string",
  • "session_policy": "string",
  • "state": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Receive Slack App Delivery

Accept one Slack Events API delivery and fan it out to the triggers it fires.

The same pipeline as the per-trigger route, with the app in place of the trigger: resolve the registration, read a bounded body, verify Slack's signature with the registration's signing secret, rate-limit, and only then touch the database. Every refusal is the same 404.

Nothing is refused before the signature is checked. A registration id is an operator's chosen name, not a secret, and a budget spent before verification is keyed on the client address - which, behind a reverse proxy that is not trusted for X-Forwarded-For, is the proxy's, shared with Slack. Anyone who knew the Request URL could then exhaust it with unsigned requests and get every workspace's real deliveries refused. Verifying first costs a read of at most trigger_ingress_max_body_bytes and one HMAC-SHA256, and the budgets below are charged only for deliveries that verify.

What a failed request does spend is the per-client probing budget, and only to bound its audit rows: the audit queue is bounded and single-writer, so a flood of garbage must not crowd out real rows. Slack's own deliveries never fail verification and never touch it.

path Parameters
registration_id
required
string (Registration Id) [ 1 .. 120 ] characters ^[A-Za-z0-9][A-Za-z0-9_.-]*$

Responses

Response samples

Content type
application/json
null

Receive Provider Delivery

Accept one provider delivery and append it to the trigger's ledger.

path Parameters
provider
required
string (Provider) [ 1 .. 32 ] characters ^[a-z][a-z0-9_]*$
public_id
required
string (Public Id) [ 8 .. 64 ] characters ^[A-Za-z0-9_-]+$

Responses

Response samples

Content type
application/json
null

Delete Trigger

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)

Responses

Response samples

Content type
application/json
{
  • "detail": [
    ]
}

Get Trigger

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)

Responses

Response samples

Content type
application/json
{
  • "binding_target": "string",
  • "concurrency_limit": 0,
  • "config": { },
  • "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",
  • "created_at": "2019-08-24T14:15:22Z",
  • "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "kind": "string",
  • "last_error": "string",
  • "last_fired_at": "2019-08-24T14:15:22Z",
  • "max_attempts": 0,
  • "name": "string",
  • "next_fire_at": "2019-08-24T14:15:22Z",
  • "node_id": "string",
  • "provider": "string",
  • "session_policy": "string",
  • "state": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Update Trigger

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)
Request Body schema: application/json
required
TriggerBindingTarget (string) or null
Concurrency Limit (integer) or Concurrency Limit (null) (Concurrency Limit)
Config (object) or Config (null) (Config)
Connection Id (string) or Connection Id (null) (Connection Id)
Deployment Id (string) or Deployment Id (null) (Deployment Id)
Flow Version Id (string) or Flow Version Id (null) (Flow Version Id)
Max Attempts (integer) or Max Attempts (null) (Max Attempts)
Name (string) or Name (null) (Name)
TriggerSessionPolicy (string) or null

Responses

Request samples

Content type
application/json
{
  • "binding_target": "flow",
  • "concurrency_limit": 1,
  • "config": { },
  • "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",
  • "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc",
  • "max_attempts": 1,
  • "name": "string",
  • "session_policy": "per_event"
}

Response samples

Content type
application/json
{
  • "binding_target": "string",
  • "concurrency_limit": 0,
  • "config": { },
  • "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",
  • "created_at": "2019-08-24T14:15:22Z",
  • "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "kind": "string",
  • "last_error": "string",
  • "last_fired_at": "2019-08-24T14:15:22Z",
  • "max_attempts": 0,
  • "name": "string",
  • "next_fire_at": "2019-08-24T14:15:22Z",
  • "node_id": "string",
  • "provider": "string",
  • "session_policy": "string",
  • "state": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Disable Trigger

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)

Responses

Response samples

Content type
application/json
{
  • "binding_target": "string",
  • "concurrency_limit": 0,
  • "config": { },
  • "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",
  • "created_at": "2019-08-24T14:15:22Z",
  • "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "kind": "string",
  • "last_error": "string",
  • "last_fired_at": "2019-08-24T14:15:22Z",
  • "max_attempts": 0,
  • "name": "string",
  • "next_fire_at": "2019-08-24T14:15:22Z",
  • "node_id": "string",
  • "provider": "string",
  • "session_policy": "string",
  • "state": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Enable Trigger

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)

Responses

Response samples

Content type
application/json
{
  • "binding_target": "string",
  • "concurrency_limit": 0,
  • "config": { },
  • "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",
  • "created_at": "2019-08-24T14:15:22Z",
  • "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "kind": "string",
  • "last_error": "string",
  • "last_fired_at": "2019-08-24T14:15:22Z",
  • "max_attempts": 0,
  • "name": "string",
  • "next_fire_at": "2019-08-24T14:15:22Z",
  • "node_id": "string",
  • "provider": "string",
  • "session_policy": "string",
  • "state": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

List Trigger Events

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)
query Parameters
limit
integer (Limit) [ 1 .. 200 ]
Default: 50
offset
integer (Offset) >= 0
Default: 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Trigger Ingress

Where a caller posts to this trigger, and whether a secret is set.

Never the secret itself. A signing secret is shown exactly once, by the route that mints it; a GET that returned it would put it in every browser history, proxy log, and screen share that touches the triggers page.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)

Responses

Response samples

Content type
application/json
{
  • "has_signing_secret": true,
  • "ingress_url": "string",
  • "public_id": "string",
  • "trigger_id": "5727dbbb-3b26-4abe-aec6-181eabbdb21c"
}

Pin Trigger

Pin the trigger to a flow version, or unpin it with a null id.

A pin is only accepted for a version of the trigger's own flow: pinning across flows would let a writer on flow A run flow B's data as A's owner.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)
Request Body schema: application/json
required
required
Flow Version Id (string) or Flow Version Id (null) (Flow Version Id)
Any of
string <uuid> (Flow Version Id)

Responses

Request samples

Content type
application/json
{
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc"
}

Response samples

Content type
application/json
{
  • "binding_target": "string",
  • "concurrency_limit": 0,
  • "config": { },
  • "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",
  • "created_at": "2019-08-24T14:15:22Z",
  • "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",
  • "flow_id": "0746f03b-16cc-49fb-9833-df3713d407d2",
  • "flow_version_id": "6f696c2e-bdd1-4f9a-9390-ef494d757abc",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "kind": "string",
  • "last_error": "string",
  • "last_fired_at": "2019-08-24T14:15:22Z",
  • "max_attempts": 0,
  • "name": "string",
  • "next_fire_at": "2019-08-24T14:15:22Z",
  • "node_id": "string",
  • "provider": "string",
  • "session_policy": "string",
  • "state": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Replay Trigger Event

Re-run one ledger row as a new, linked event.

Replay costs a flow execution, so it needs flow execute — the same ceiling as pressing Run.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)
Request Body schema: application/json
required
event_id
required
string <uuid> (Event Id)

Responses

Request samples

Content type
application/json
{
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7"
}

Response samples

Content type
application/json
{
  • "attempt": 0,
  • "available_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "dedupe_key": "string",
  • "error": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
  • "payload": { },
  • "replay_of_event_id": "a9afe90e-138c-4e40-9089-5e0fa1fdf317",
  • "session_id": "string",
  • "state": "string",
  • "trigger_id": "5727dbbb-3b26-4abe-aec6-181eabbdb21c",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Rotate Trigger Signing Secret

Mint this trigger's ingress address and signing secret, or rotate them.

Rotation replaces the stored secret, so the previous one stops verifying on the next delivery: there is no grace window, deliberately. A webhook secret is rotated because it leaked, and a grace window is exactly the period the leak is still useful.

The address (public_id) is minted once and kept across rotations, so rotating a secret does not require reconfiguring the caller's URL.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)

Responses

Response samples

Content type
application/json
{
  • "has_signing_secret": true,
  • "ingress_url": "string",
  • "public_id": "string",
  • "signing_secret": "string",
  • "trigger_id": "5727dbbb-3b26-4abe-aec6-181eabbdb21c"
}

Test Trigger

Append a synthetic event so an owner can exercise the whole path.

The event goes through the ordinary ledger and dispatcher — there is no side-channel — so a passing test is evidence about production behaviour.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
trigger_id
required
string <uuid> (Trigger Id)
Request Body schema: application/json
required
object (Payload)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "payload": { }
}

Response samples

Content type
application/json
{
  • "attempt": 0,
  • "available_at": "2019-08-24T14:15:22Z",
  • "created_at": "2019-08-24T14:15:22Z",
  • "dedupe_key": "string",
  • "error": "string",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
  • "payload": { },
  • "replay_of_event_id": "a9afe90e-138c-4e40-9089-5e0fa1fdf317",
  • "session_id": "string",
  • "state": "string",
  • "trigger_id": "5727dbbb-3b26-4abe-aec6-181eabbdb21c",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Users

Read All Users

Retrieve a list of users from the database with pagination.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
skip
integer (Skip) >= 0
Default: 0
limit
integer (Limit) [ 1 .. 200 ]
Default: 10
Search (string) or Search (null) (Search)
Username (string) or Username (null) (Username)

Exact username match

Role Name (string) or Role Name (null) (Role Name)

Exact assigned role-name match

Deletion Requested (boolean) or Deletion Requested (null) (Deletion Requested)

Only users with an open account deletion request

header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)

Responses

Response samples

Content type
application/json
{
  • "deletion_requests": {
    },
  • "total_count": 0,
  • "users": [
    ]
}

Add User

Add a new user to the database.

This endpoint backs two flows that share the same route:

  • Public sign up (unauthenticated). Allowed only when public registration is enabled for the deployment, i.e. AUTO_LOGIN is off (multi-user mode) and ENABLE_SIGNUP is True.
  • Admin "add user" (authenticated active administrator). Always allowed, regardless of the sign up settings, so disabling public sign up does not break administrator-driven user creation.

User activation is controlled by the NEW_USER_IS_ACTIVE setting.

header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)
Request Body schema: application/json
required
Optins (object) or Optins (null) (Optins)
Default: {"dialog_dismissed":false,"discord_clicked":false,"github_starred":false}
password
required
string (Password)
username
required
string (Username)

Responses

Request samples

Content type
application/json
{
  • "optins": {
    },
  • "password": "string",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "create_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_active": true,
  • "is_superuser": true,
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "optins": { },
  • "profile_image": "string",
  • "store_api_key": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "username": "string"
}

Read Current User

Retrieve the current user's data.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
{
  • "create_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_active": true,
  • "is_superuser": true,
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "optins": { },
  • "profile_image": "string",
  • "store_api_key": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "username": "string"
}

Delete User

Delete a user and everything the account holds; the erase finishes in the background.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
user_id
required
string <uuid> (User Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)

Responses

Response samples

Content type
application/json
{ }

Read User

Read the current user or a specific user with user:manage.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
user_id
required
string <uuid> (User Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)

Responses

Response samples

Content type
application/json
{
  • "create_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_active": true,
  • "is_superuser": true,
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "optins": { },
  • "profile_image": "string",
  • "store_api_key": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "username": "string"
}

Patch User

Update an existing user's data.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
user_id
required
string <uuid> (User Id)
header Parameters
X-Langflow-Operation-Id (string) or X-Langflow-Operation-Id (null) (X-Langflow-Operation-Id)
Request Body schema: application/json
required
Is Active (boolean) or Is Active (null) (Is Active)
Is Superuser (boolean) or Is Superuser (null) (Is Superuser)
Last Login At (string) or Last Login At (null) (Last Login At)
Optins (object) or Optins (null) (Optins)
Password (string) or Password (null) (Password)
Profile Image (string) or Profile Image (null) (Profile Image)
Username (string) or Username (null) (Username)

Responses

Request samples

Content type
application/json
{
  • "is_active": true,
  • "is_superuser": true,
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "optins": { },
  • "password": "string",
  • "profile_image": "string",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "create_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_active": true,
  • "is_superuser": true,
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "optins": { },
  • "profile_image": "string",
  • "store_api_key": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "username": "string"
}

Reset Password

Change the current user's password after verifying the existing password.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
user_id
required
string <uuid> (User Id)
Request Body schema: application/json
required
current_password
required
string (Current Password)
password
required
string (Password)

Responses

Request samples

Content type
application/json
{
  • "current_password": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "create_at": "2019-08-24T14:15:22Z",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "is_active": true,
  • "is_superuser": true,
  • "last_login_at": "2019-08-24T14:15:22Z",
  • "optins": { },
  • "profile_image": "string",
  • "store_api_key": "string",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "username": "string"
}

MCP

Get Servers

Get the list of available servers.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Action Count (boolean) or Action Count (null) (Action Count)

Responses

Response samples

Content type
application/json
null

Delete Server

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
server_name
required
string (Server Name)

Responses

Response samples

Content type
application/json
null

Get Server Endpoint

Get a specific server.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
server_name
required
string (Server Name)

Responses

Response samples

Content type
application/json
null

Update Server Endpoint

Patch a server and return its configuration with credentials masked.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
server_name
required
string (Server Name)
Request Body schema: application/json
required
Array of Args (strings) or Args (null) (Args)
Command (string) or Command (null) (Command)
Env (object) or Env (null) (Env)
Headers (object) or Headers (null) (Headers)
Url (string) or Url (null) (Url)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "args": [
    ],
  • "command": "string",
  • "env": {
    },
  • "headers": {
    },
  • "url": "string"
}

Response samples

Content type
application/json
null

Add Server

Create a server and return its configuration with credentials masked.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
server_name
required
string (Server Name)
Request Body schema: application/json
required
Array of Args (strings) or Args (null) (Args)
Command (string) or Command (null) (Command)
Env (object) or Env (null) (Env)
Headers (object) or Headers (null) (Headers)
Url (string) or Url (null) (Url)
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "args": [
    ],
  • "command": "string",
  • "env": {
    },
  • "headers": {
    },
  • "url": "string"
}

Response samples

Content type
application/json
null

Workflow

Get Workflow Status

Get status of workflow job by job ID

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
Job Id (string) or Job Id (string) or Job Id (null) (Job Id)

Job ID to query

Responses

Response samples

Content type
{
  • "created_timestamp": "string",
  • "errors": [ ],
  • "flow_id": "string",
  • "globals": {
    },
  • "human_request": { },
  • "inputs": { },
  • "job_id": "string",
  • "object": "response",
  • "output": {
    },
  • "outputs": { },
  • "session_id": "string",
  • "status": "queued",
  • "warnings": [
    ]
}

Execute Workflow (v2 sync or stream)

Request Body schema: application/json
required
Data (object) or Data (null) (Data)

Optional live-canvas override of the flow's nodes/edges; takes priority over the saved flow data.

Expose Graph State (boolean) or Expose Graph State (null) (Expose Graph State)

Whether the stream may carry the flow's graph state: the events naming every component that will run and carrying each component's own output (STATE_SNAPSHOT/STATE_DELTA, STEP_STARTED/STEP_FINISHED and langflow.log on agui; vertices_sorted, per-vertex build_start, end_vertex and log on langflow). Unset defaults to False for agui, whose consumers are usually third-party clients, and True for langflow, whose passthrough shape existing callers already parse. The terminal output event is the flow's answer and is never suppressed. Not accepted by /workflows/public, which always forces it off.

Array of Files (strings) or Files (null) (Files)

Optional list of pre-uploaded file paths to attach to the run.

flow_id
required
string (Flow Id)

UUID of the flow to run.

object (Globals)

Request-level global variables made available to workflow components. Keys may use any printable string up to 256 chars; values are capped at 65536 chars. Body globals always win over the legacy X-LANGFLOW-GLOBAL-VAR-* headers. Honored in sync mode; ignored for stream/background modes.

Idempotency Key (string) or Idempotency Key (null) (Idempotency Key)

Optional client-supplied key that dedupes background submits. Two background runs with the same key return the same job_id instead of queuing duplicate work. Ignored for sync/stream modes.

input_value
string (Input Value)
Default: ""

Chat-style input value.

mode
string (WorkflowMode)
Default: "sync"
Enum: "sync" "stream" "background"

Execution mode. sync runs inline and returns the aggregated response; stream returns SSE; background queues a job.

Array of Output Ids (strings) or Output Ids (null) (Output Ids)

Component ids of the outputs you want as the answer (sync mode). When set, output.text resolves among only these, so naming one text output makes output.reason deterministic on multi-output flows. The full outputs map is still returned. Ids must be outputs of this flow or the request is rejected before the flow runs. Ignored for stream/background modes.

Session Id (string) or Session Id (null) (Session Id)

When set, message memory and chat history scope to this session.

Start Component Id (string) or Start Component Id (null) (Start Component Id)

Partial-run start component id.

Stop Component Id (string) or Stop Component Id (null) (Stop Component Id)

Partial-run stop component id.

stream_protocol
string (Stream Protocol)
Default: "langflow"

Wire protocol for streaming events. Defaults to langflow (raw EventManager payloads). agui emits AG-UI events. Unknown values return 422 with the available list. Ignored when mode=sync.

object (Tweaks)

Per-component parameter overrides keyed by component id.

Responses

Request samples

Content type
application/json
{
  • "flow_id": "67ccd2be-17f0-8190-81ff-3bb2cf6508e6",
  • "input_value": "Hello, how can you help me today?"
}

Response samples

Content type
Example
{
  • "created_timestamp": "string",
  • "errors": [ ],
  • "flow_id": "string",
  • "globals": {
    },
  • "job_id": "string",
  • "links": {
    },
  • "object": "job",
  • "status": "queued"
}

List pending human-input requests

Suspended HITL jobs for a flow plus their pending request, for the Traces overlay.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
flow_id
required
string <uuid> (Flow Id)

Flow ID to list pending HITL requests for

Responses

Response samples

Content type
application/json
[
  • { }
]

Stop Workflow

Stop a running background workflow execution

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
Request Body schema: application/json
required
required
Job Id (string) or Job Id (string) (Job Id)
Any of
string (Job Id)

Responses

Request samples

Content type
application/json
{
  • "job_id": "string"
}

Response samples

Content type
application/json
{
  • "job_id": "string",
  • "message": "string"
}

Re-attach to a background run

Replay durable events for a background run from Last-Event-ID and tail until it ends.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
job_id
required
string (Job Id)

Responses

Response samples

Content type
application/json
null

Resume Workflow

Resume a suspended (human-in-the-loop) workflow with a decision.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
path Parameters
job_id
required
string (Job Id)
Request Body schema: application/json
required
Decision (object) or Decision (null) (Decision)
request_id
required
string (Request Id)

Responses

Request samples

Content type
application/json
{
  • "decision": { },
  • "request_id": "string"
}

Response samples

Content type
application/json
{
  • "job_id": "string",
  • "message": "string",
  • "status": "string"
}

Health Check

Health

Responses

Response samples

Content type
application/json
null

Health Check

Responses

Response samples

Content type
application/json
{
  • "chat": "error check the server logs",
  • "db": "error check the server logs",
  • "status": "nok"
}

Healthz

Probe application readiness and optionally require every retained store to finish upgrading.

query Parameters
require_storage_ready
boolean (Require Storage Ready)
Default: false

Responses

Response samples

Content type
application/json
{
  • "chat": "error check the server logs",
  • "db": "error check the server logs",
  • "status": "nok"
}

Log

Logs

Retrieve application logs with superuser authentication required.

SECURITY: Logs may contain sensitive information and require superuser authentication.

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header
query Parameters
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

Responses

Response samples

Content type
application/json
null

Stream Logs

HTTP/2 Server-Sent-Event (SSE) endpoint for streaming logs.

Requires superuser authentication to prevent exposure of sensitive log data. It establishes a long-lived connection to the server and receives log messages in real-time. The client should use the header "Accept: text/event-stream".

Authorizations:
OAuth2PasswordBearerCookieAPI key queryAPI key header

Responses

Response samples

Content type
application/json
null
Search