From e8bbae8eeb8729abd650f07bfc55957cbdbc1636 Mon Sep 17 00:00:00 2001 From: Mendon Kissling <59585235+mendonk@users.noreply.github.com> Date: Wed, 18 Mar 2026 16:08:44 -0400 Subject: [PATCH] docs: replace api build automation (#12214) * remove-workflows-file-and-script * tag-hidden-endpoints * update-scripts-and-specs * fix: nightly now properly gets 1.9.0 branch (#12215) before it was attempting to pull release-notes as letters are alphanumerically after numbers when we sort -V then grab tail now we only look at branch names that follow the pattern '^release-[0-9]+\.[0-9]+\.[0-9]+$' * docs: add search icon (#12216) add-back-svg --------- Co-authored-by: Adam-Aghili <149833988+Adam-Aghili@users.noreply.github.com> Co-authored-by: Debojit Kaushik --- .github/workflows/docs-update-openapi.yml | 124 - docs/openapi/fetch_openapi_spec.py | 4 + docs/openapi/generate_openapi.py | 114 + docs/openapi/openapi.json | 15550 +++++++--------- docs/scripts/clean_openapi_formatting.py | 73 - .../base/langflow/agentic/api/router.py | 2 +- .../base/langflow/api/v1/deployments.py | 2 +- .../base/langflow/api/v1/flow_version.py | 2 +- src/backend/base/langflow/api/v1/mcp.py | 2 +- .../base/langflow/api/v1/mcp_projects.py | 17 +- 10 files changed, 7272 insertions(+), 8618 deletions(-) delete mode 100644 .github/workflows/docs-update-openapi.yml create mode 100755 docs/openapi/generate_openapi.py delete mode 100755 docs/scripts/clean_openapi_formatting.py diff --git a/.github/workflows/docs-update-openapi.yml b/.github/workflows/docs-update-openapi.yml deleted file mode 100644 index 6c1f6715ac..0000000000 --- a/.github/workflows/docs-update-openapi.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: Update OpenAPI Spec - -on: - schedule: - - cron: "0 20 * * 1" # Monday 4pm EST - workflow_dispatch: # Allow manual trigger - -permissions: - contents: write - pull-requests: write - -jobs: - check-openapi-updates: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - - - name: Install jq - run: sudo apt-get install -y jq - - - name: Check if there is already an open pull request - id: check_pull_request - run: | - if [[ -n $(gh pr list --state open --repo ${{ github.repository }} | grep "docs: OpenAPI spec") ]]; then - echo "There is already an open PR with updates to the OpenAPI spec. Merge or close that PR first. Skipping." - echo "pr_exists=true" >> $GITHUB_OUTPUT - else - echo "pr_exists=false" >> $GITHUB_OUTPUT - fi - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Run Langflow container and get OpenAPI spec - if: steps.check_pull_request.outputs.pr_exists != 'true' - run: | - # Start the container in the background - docker run -d --name langflow -p 7860:7860 langflowai/langflow:latest - - # Wait for the service to be ready (adjust timeout as needed) - echo "Waiting for Langflow to start..." - timeout=60 - elapsed=0 - while ! curl -s http://localhost:7860/health > /dev/null; do - sleep 2 - elapsed=$((elapsed+2)) - if [ "$elapsed" -ge "$timeout" ]; then - echo "Timed out waiting for Langflow to start" - exit 1 - fi - echo "Still waiting... ($elapsed seconds)" - done - - # Get the OpenAPI spec and save to file - echo "Fetching OpenAPI spec..." - curl -s http://localhost:7860/openapi.json > docs/openapi/new_openapi.json - - # Verify file was created - ls -la docs/openapi/new_openapi.json - - # stop the container when done - docker stop langflow - - - name: Compare OpenAPI files - if: steps.check_pull_request.outputs.pr_exists != 'true' - id: compare - run: | - # Extract versions - NEW_VERSION=$(jq -r '.info.version' docs/openapi/new_openapi.json) - CURRENT_VERSION=$(jq -r '.info.version' docs/openapi/openapi.json) - - echo "Current version: $CURRENT_VERSION" - echo "New version: $NEW_VERSION" - - # Compare file content (normalize by sorting keys) - jq --sort-keys . docs/openapi/new_openapi.json > docs/openapi/sorted_new.json - jq --sort-keys . docs/openapi/openapi.json > docs/openapi/sorted_current.json - - if ! cmp -s docs/openapi/sorted_new.json docs/openapi/sorted_current.json; then - echo "OpenAPI spec content has changed." - - # Clean the new spec for ReDoc formatting - echo "Cleaning OpenAPI spec formatting..." - python3 docs/scripts/clean_openapi_formatting.py docs/openapi/new_openapi.json - - # Compare versions (assuming semantic versioning) - if [ "$(printf '%s\n' "$CURRENT_VERSION" "$NEW_VERSION" | sort -V | tail -n1)" == "$NEW_VERSION" ] && [ "$CURRENT_VERSION" != "$NEW_VERSION" ]; then - echo "New version detected. Creating PR." - echo "NEEDS_UPDATE=true" >> $GITHUB_ENV - echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV - echo "UPDATE_REASON=version upgraded from $CURRENT_VERSION to $NEW_VERSION" >> $GITHUB_ENV - else - echo "File content changed but version remains the same. Creating PR." - echo "NEEDS_UPDATE=true" >> $GITHUB_ENV - echo "NEW_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV - echo "UPDATE_REASON=content updated without version change" >> $GITHUB_ENV - fi - - cat docs/openapi/new_openapi.json | jq > docs/openapi/openapi.json - else - echo "No changes detected in OpenAPI spec content." - echo "NEEDS_UPDATE=false" >> $GITHUB_ENV - fi - - # Clean up - rm docs/openapi/new_openapi.json docs/openapi/sorted_new.json docs/openapi/sorted_current.json - - - name: Create Pull Request - if: env.NEEDS_UPDATE == 'true' && steps.check_pull_request.outputs.pr_exists != 'true' - uses: peter-evans/create-pull-request@v8 - with: - token: ${{ secrets.GITHUB_TOKEN }} - commit-message: "docs: OpenAPI spec ${{ env.UPDATE_REASON }}" - title: "docs: OpenAPI spec ${{ env.UPDATE_REASON }}" - body: | - This PR updates the OpenAPI spec. - - Update reason: ${{ env.UPDATE_REASON }} - Version: ${{ env.NEW_VERSION }} - branch: update-openapi-spec - branch-suffix: timestamp - delete-branch: true - reviewers: mendonk diff --git a/docs/openapi/fetch_openapi_spec.py b/docs/openapi/fetch_openapi_spec.py index 6f0c4a26be..a1cd60e797 100755 --- a/docs/openapi/fetch_openapi_spec.py +++ b/docs/openapi/fetch_openapi_spec.py @@ -1,6 +1,10 @@ #!/usr/bin/env python3 """Pull OpenAPI spec files from the langflow-ai/sdk repository. +This script is only for syncing external SDK specs when needed. +It is not used by the main Langflow OpenAPI generation workflow, +which now relies on `docs/openapi/generate_openapi.py`. + Usage: python3 fetch_openapi_spec.py # Download all files python3 fetch_openapi_spec.py --file # Download specific file diff --git a/docs/openapi/generate_openapi.py b/docs/openapi/generate_openapi.py new file mode 100755 index 0000000000..28a4229a1f --- /dev/null +++ b/docs/openapi/generate_openapi.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python3 +"""Generate the Langflow OpenAPI specification. + +This script imports the Langflow FastAPI application and writes its OpenAPI +schema to a JSON file in this directory. + +Usage (from repository root): + + uv run python docs/openapi/generate_openapi.py + uv run python docs/openapi/generate_openapi.py --output openapi-1.5.0.json +""" + +from __future__ import annotations + +import argparse +import json +from pathlib import Path +from typing import Any + +from langflow.main import create_app + + +def _clean_descriptions(spec: dict[str, Any]) -> None: + """Convert newlines in operation descriptions to
for better ReDoc rendering.""" + paths = spec.get("paths") or {} + for path_item in paths.values(): + if not isinstance(path_item, dict): + continue + for operation in path_item.values(): + if not isinstance(operation, dict): + continue + description = operation.get("description") + if isinstance(description, str) and description: + operation["description"] = description.replace("\n", "
") + + +def _collect_and_rewrite_defs(node: Any, collected: dict[str, Any]) -> None: + """Hoist JSON Schema `$defs` into `components.schemas` and rewrite refs. + + Some tooling (like Redoc's sampler) cannot handle JSON Pointer segments + that contain `$defs`. To keep the schema tool-friendly, we: + - Collect any `$defs` blocks we find anywhere in the tree. + - Remove those local `$defs` blocks. + - Rewrite `"$ref": "#/$defs/Name"` to `"#/components/schemas/Name"`. + """ + if isinstance(node, dict): + # Hoist local $defs + if "$defs" in node and isinstance(node["$defs"], dict): + for name, schema in node["$defs"].items(): + # Only add if not already present; avoid clobbering explicit components + collected.setdefault(name, schema) + node.pop("$defs", None) + + # Rewrite local refs + ref = node.get("$ref") + if isinstance(ref, str) and ref.startswith("#/$defs/"): + name = ref.split("/")[-1] + node["$ref"] = f"#/components/schemas/{name}" + + # Recurse into values + for value in node.values(): + _collect_and_rewrite_defs(value, collected) + + elif isinstance(node, list): + for item in node: + _collect_and_rewrite_defs(item, collected) + + +def _normalize_defs(spec: dict[str, Any]) -> None: + """Normalize `$defs` usage for better compatibility with tooling.""" + collected: dict[str, Any] = {} + _collect_and_rewrite_defs(spec, collected) + + if not collected: + return + + components = spec.setdefault("components", {}) + schemas = components.setdefault("schemas", {}) + for name, schema in collected.items(): + schemas.setdefault(name, schema) + + +def generate_openapi(output_path: Path) -> None: + """Generate the OpenAPI spec and write it to ``output_path``.""" + app = create_app() + spec = app.openapi() + + _clean_descriptions(spec) + _normalize_defs(spec) + + output_path.parent.mkdir(parents=True, exist_ok=True) + with output_path.open("w", encoding="utf-8") as f: + json.dump(spec, f, indent=2, sort_keys=True, ensure_ascii=False) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Generate Langflow OpenAPI specification.") + parser.add_argument( + "--output", + "-o", + type=Path, + default=Path(__file__).parent / "openapi.json", + help="Output file path (default: docs/openapi/openapi.json)", + ) + return parser.parse_args() + + +def main() -> None: + args = parse_args() + generate_openapi(args.output) + + +if __name__ == "__main__": + main() diff --git a/docs/openapi/openapi.json b/docs/openapi/openapi.json index 524cb40f7c..4e2c21361b 100644 --- a/docs/openapi/openapi.json +++ b/docs/openapi/openapi.json @@ -1,6288 +1,28 @@ { - "openapi": "3.1.0", - "info": { - "title": "Langflow", - "version": "1.8.0" - }, - "$defs": { - "ComponentOutput": { - "description": "Component output schema.", - "properties": { - "type": { - "description": "Type of the component output (e.g., 'message', 'data', 'tool', 'text')", - "title": "Type", - "type": "string" - }, - "status": { - "$ref": "#/$defs/JobStatus" - }, - "content": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "title": "Content" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Metadata" - } - }, - "required": [ - "type", - "status" - ], - "title": "ComponentOutput", - "type": "object" - }, - "ErrorDetail": { - "description": "Error detail schema.", - "properties": { - "error": { - "title": "Error", - "type": "string" - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Code" - }, - "details": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Details" - } - }, - "required": [ - "error" - ], - "title": "ErrorDetail", - "type": "object" - }, - "JobStatus": { - "description": "Job execution status.", - "enum": [ - "queued", - "in_progress", - "completed", - "failed", - "cancelled", - "timed_out" - ], - "title": "JobStatus", - "type": "string" - } - }, - "paths": { - "/api/v1/build/{flow_id}/flow": { - "post": { - "tags": [ - "Chat" - ], - "summary": "Build Flow", - "description": "Build and process a flow, returning a job ID for event polling.

This endpoint requires authentication through the CurrentActiveUser dependency.
For public flows that don't require authentication, use the /build_public_tmp/flow_id/flow endpoint.

Args:
flow_id: UUID of the flow to build
background_tasks: Background tasks manager
inputs: Optional input values for the flow
data: Optional flow data
files: Optional files to include
stop_component_id: Optional ID of component to stop at
start_component_id: Optional ID of component to start from
log_builds: Whether to log the build process
current_user: The authenticated user
queue_service: Queue service for job management
flow_name: Optional name for the flow
event_delivery: Optional event delivery type - default is streaming

Returns:
Dict with job_id that can be used to poll for build status", - "operationId": "build_flow_api_v1_build__flow_id__flow_post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - }, - { - "name": "stop_component_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Stop Component Id" - } - }, - { - "name": "start_component_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Start Component Id" - } - }, - { - "name": "log_builds", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Log Builds" - } - }, - { - "name": "flow_name", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Flow Name" - } - }, - { - "name": "event_delivery", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/EventDeliveryType", - "default": "polling" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_build_flow_api_v1_build__flow_id__flow_post" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/build/{job_id}/events": { - "get": { - "tags": [ - "Chat" - ], - "summary": "Get Build Events", - "description": "Get events for a specific build job.

Requires authentication to prevent unauthorized access to build events.", - "operationId": "get_build_events_api_v1_build__job_id__events_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - } - }, - { - "name": "event_delivery", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/EventDeliveryType", - "default": "streaming" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/build/{job_id}/cancel": { - "post": { - "tags": [ - "Chat" - ], - "summary": "Cancel Build", - "description": "Cancel a specific build job.

Requires authentication to prevent unauthorized build cancellation.", - "operationId": "cancel_build_api_v1_build__job_id__cancel_post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "job_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Job Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CancelFlowResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/build_public_tmp/{flow_id}/flow": { - "post": { - "tags": [ - "Chat" - ], - "summary": "Build Public Tmp", - "description": "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.

The endpoint:
1. Verifies the requested flow is marked as public in the database
2. Creates a deterministic UUID based on client_id and flow_id
3. Uses the flow owner's permissions to build the flow

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
data: Optional flow data
files: Optional files to include
stop_component_id: Optional ID of component to stop at
start_component_id: Optional ID of component to start from
log_builds: Whether to log the build process
flow_name: Optional name for the flow
request: FastAPI request object (needed for cookie access)
queue_service: Queue service for job management
event_delivery: Optional event delivery type - default is streaming

Returns:
Dict with job_id that can be used to poll for build status", - "operationId": "build_public_tmp_api_v1_build_public_tmp__flow_id__flow_post", - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - }, - { - "name": "stop_component_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Stop Component Id" - } - }, - { - "name": "start_component_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Start Component Id" - } - }, - { - "name": "log_builds", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": true, - "title": "Log Builds" - } - }, - { - "name": "flow_name", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Flow Name" - } - }, - { - "name": "event_delivery", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/EventDeliveryType", - "default": "polling" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_build_public_tmp_api_v1_build_public_tmp__flow_id__flow_post" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/all": { - "get": { - "tags": [ - "Base" - ], - "summary": "Get All", - "description": "Retrieve all component types with compression for better performance.

Returns a compressed response containing all available component types.", - "operationId": "get_all_api_v1_all_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/run/{flow_id_or_name}": { - "post": { - "tags": [ - "Base" - ], - "summary": "Simplified Run Flow", - "description": "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)", - "operationId": "simplified_run_flow_api_v1_run__flow_id_or_name__post", - "security": [ - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id_or_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Flow Id Or Name" - } - }, - { - "name": "stream", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Stream" - } - }, - { - "name": "user_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "User Id" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_simplified_run_flow_api_v1_run__flow_id_or_name__post" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/webhook/{flow_id_or_name}": { - "post": { - "tags": [ - "Base" - ], - "summary": "Webhook Run Flow", - "description": "Run a flow using a webhook request.

Args:
flow_id_or_name: The flow ID or endpoint name (used by dependency).
flow: The flow to be executed.
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.", - "operationId": "webhook_run_flow_api_v1_webhook__flow_id_or_name__post", - "parameters": [ - { - "name": "flow_id_or_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Flow Id Or Name" - } - }, - { - "name": "user_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "User Id" - } - } - ], - "responses": { - "202": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true, - "title": "Response Webhook Run Flow Api V1 Webhook Flow Id Or Name Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/run/advanced/{flow_id_or_name}": { - "post": { - "tags": [ - "Base" - ], - "summary": "Experimental Run Flow", - "description": "Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.

This endpoint supports running flows with caching to enhance performance and efficiency.

### Parameters:
- `flow` (Flow): The flow object to be executed, resolved via dependency injection.
- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components
for the flow. Each input can target specific components and provide custom values.
- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.
If not provided, all outputs are returned.
- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.
The tweaks can be used to modify the flow's parameters and components.
Tweaks can be overridden by the input values.
- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.
- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow
execution.
- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.

### Returns:
A `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow
and the session ID.
The structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.

### Raises:
HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during
flow execution.

### Example usage:
```json
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.", - "operationId": "experimental_run_flow_api_v1_run_advanced__flow_id_or_name__post", - "security": [ - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id_or_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Flow Id Or Name" - } - }, - { - "name": "user_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "User Id" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Body_experimental_run_flow_api_v1_run_advanced__flow_id_or_name__post" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RunResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/version": { - "get": { - "tags": [ - "Base" - ], - "summary": "Get Version", - "operationId": "get_version_api_v1_version_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/api/v1/config": { - "get": { - "tags": [ - "Base" - ], - "summary": "Get Config", - "description": "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.", - "operationId": "get_config_api_v1_config_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/ConfigResponse" - }, - { - "$ref": "#/components/schemas/PublicConfigResponse" - } - ], - "title": "Response Get Config Api V1 Config Get" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/flows/": { - "post": { - "tags": [ - "Flows" - ], - "summary": "Create Flow", - "operationId": "create_flow_api_v1_flows__post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowCreate" - } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "get": { - "tags": [ - "Flows" - ], - "summary": "Read Flows", - "description": "Retrieve a list of flows with pagination support.

Args:
current_user (User): The current authenticated user.
session (Session): The database session.
settings_service (SettingsService): The settings service.
components_only (bool, optional): Whether to return only components. Defaults to False.

get_all (bool, optional): Whether to return all flows without pagination. Defaults to True.
**This field must be True because of backward compatibility with the frontend - Release: 1.0.20**

folder_id (UUID, optional): The project ID. Defaults to None.
params (Params): Pagination parameters.
remove_example_flows (bool, optional): Whether to remove example flows. Defaults to False.
header_flows (bool, optional): Whether to return only specific headers of the flows. Defaults to False.

Returns:
list[FlowRead] | Page[FlowRead] | list[FlowHeader]
A list of flows or a paginated response containing the list of flows or a list of flow headers.", - "operationId": "read_flows_api_v1_flows__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "remove_example_flows", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Remove Example Flows" - } - }, - { - "name": "components_only", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Components Only" - } - }, - { - "name": "get_all", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Get All" - } - }, - { - "name": "folder_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Folder Id" - } - }, - { - "name": "header_flows", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Header Flows" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "default": 1, - "title": "Page" - } - }, - { - "name": "size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "maximum": 100, - "minimum": 1, - "default": 50, - "title": "Size" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowRead" - } - }, - { - "$ref": "#/components/schemas/Page_FlowRead_" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowHeader" - } - } - ], - "title": "Response Read Flows Api V1 Flows Get" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Flows" - ], - "summary": "Delete Multiple Flows", - "description": "Delete multiple flows by their IDs.

Args:
flow_ids (List[str]): The list of flow IDs to delete.
user (User, optional): The user making the request. Defaults to the current active user.
db (Session, optional): The database session.

Returns:
dict: A dictionary containing the number of flows deleted.", - "operationId": "delete_multiple_flows_api_v1_flows__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - }, - "title": "Flow Ids" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/flows/{flow_id}": { - "get": { - "tags": [ - "Flows" - ], - "summary": "Read Flow", - "description": "Read a flow.", - "operationId": "read_flow_api_v1_flows__flow_id__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "patch": { - "tags": [ - "Flows" - ], - "summary": "Update Flow", - "description": "Update a flow.", - "operationId": "update_flow_api_v1_flows__flow_id__patch", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowUpdate" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Flows" - ], - "summary": "Delete Flow", - "description": "Delete a flow.", - "operationId": "delete_flow_api_v1_flows__flow_id__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/flows/public_flow/{flow_id}": { - "get": { - "tags": [ - "Flows" - ], - "summary": "Read Public Flow", - "description": "Read a public flow.", - "operationId": "read_public_flow_api_v1_flows_public_flow__flow_id__get", - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/flows/batch/": { - "post": { - "tags": [ - "Flows" - ], - "summary": "Create Flows", - "description": "Create multiple new flows.", - "operationId": "create_flows_api_v1_flows_batch__post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FlowListCreate" - } - } - }, - "required": true - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/FlowRead" - }, - "type": "array", - "title": "Response Create Flows Api V1 Flows Batch Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/flows/upload/": { - "post": { - "tags": [ - "Flows" - ], - "summary": "Upload File", - "description": "Upload flows from a file.", - "operationId": "upload_file_api_v1_flows_upload__post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "folder_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Folder Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_upload_file_api_v1_flows_upload__post" - } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FlowRead" - }, - "title": "Response Upload File Api V1 Flows Upload Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/flows/download/": { - "post": { - "tags": [ - "Flows" - ], - "summary": "Download Multiple File", - "description": "Download all flows as a zip file.", - "operationId": "download_multiple_file_api_v1_flows_download__post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "items": { - "type": "string", - "format": "uuid" - }, - "type": "array", - "title": "Flow Ids" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/flows/basic_examples/": { - "get": { - "tags": [ - "Flows" - ], - "summary": "Read Basic Examples", - "description": "Retrieve a list of basic example flows.

Args:
session (Session): The database session.

Returns:
list[FlowRead]: A list of basic example flows.", - "operationId": "read_basic_examples_api_v1_flows_basic_examples__get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/FlowRead" - }, - "type": "array", - "title": "Response Read Basic Examples Api V1 Flows Basic Examples Get" - } - } - } - } - } - } - }, - "/api/v1/users/": { - "post": { - "tags": [ - "Users" - ], - "summary": "Add User", - "description": "Add a new user to the database.

This endpoint allows public user registration (sign up).
User activation is controlled by the NEW_USER_IS_ACTIVE setting.", - "operationId": "add_user_api_v1_users__post", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserCreate" - } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "get": { - "tags": [ - "Users" - ], - "summary": "Read All Users", - "description": "Retrieve a list of users from the database with pagination.", - "operationId": "read_all_users_api_v1_users__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "skip", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 0, - "title": "Skip" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "default": 10, - "title": "Limit" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsersResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/users/whoami": { - "get": { - "tags": [ - "Users" - ], - "summary": "Read Current User", - "description": "Retrieve the current user's data.", - "operationId": "read_current_user_api_v1_users_whoami_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserRead" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/users/{user_id}": { - "patch": { - "tags": [ - "Users" - ], - "summary": "Patch User", - "description": "Update an existing user's data.", - "operationId": "patch_user_api_v1_users__user_id__patch", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "User Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserUpdate" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Users" - ], - "summary": "Delete User", - "description": "Delete a user from the database.", - "operationId": "delete_user_api_v1_users__user_id__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "User Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true, - "title": "Response Delete User Api V1 Users User Id Delete" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/users/{user_id}/reset-password": { - "patch": { - "tags": [ - "Users" - ], - "summary": "Reset Password", - "description": "Reset a user's password.", - "operationId": "reset_password_api_v1_users__user_id__reset_password_patch", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "User Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserUpdate" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/files/upload/{flow_id}": { - "post": { - "tags": [ - "Files" - ], - "summary": "Upload File", - "operationId": "upload_file_api_v1_files_upload__flow_id__post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_upload_file_api_v1_files_upload__flow_id__post" - } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/langflow__api__v1__schemas__UploadFileResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/files/download/{flow_id}/{file_name}": { - "get": { - "tags": [ - "Files" - ], - "summary": "Download File", - "operationId": "download_file_api_v1_files_download__flow_id___file_name__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "file_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Name" - } - }, - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/files/images/{flow_id}/{file_name}": { - "get": { - "tags": [ - "Files" - ], - "summary": "Download Image", - "description": "Download image from storage for browser rendering.", - "operationId": "download_image_api_v1_files_images__flow_id___file_name__get", - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - }, - { - "name": "file_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Name" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/files/profile_pictures/{folder_name}/{file_name}": { - "get": { - "tags": [ - "Files" - ], - "summary": "Download Profile Picture", - "description": "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.", - "operationId": "download_profile_picture_api_v1_files_profile_pictures__folder_name___file_name__get", - "parameters": [ - { - "name": "folder_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Folder Name" - } - }, - { - "name": "file_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Name" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/files/profile_pictures/list": { - "get": { - "tags": [ - "Files" - ], - "summary": "List Profile Pictures", - "description": "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.", - "operationId": "list_profile_pictures_api_v1_files_profile_pictures_list_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/api/v1/files/list/{flow_id}": { - "get": { - "tags": [ - "Files" - ], - "summary": "List Files", - "operationId": "list_files_api_v1_files_list__flow_id__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/files/delete/{flow_id}/{file_name}": { - "delete": { - "tags": [ - "Files" - ], - "summary": "Delete File", - "operationId": "delete_file_api_v1_files_delete__flow_id___file_name__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "file_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "File Name" - } - }, - { - "name": "flow_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/builds": { - "get": { - "tags": [ - "Monitor" - ], - "summary": "Get Vertex Builds", - "operationId": "get_vertex_builds_api_v1_monitor_builds_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VertexBuildMapModel" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Monitor" - ], - "summary": "Delete Vertex Builds", - "operationId": "delete_vertex_builds_api_v1_monitor_builds_delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/messages/sessions": { - "get": { - "tags": [ - "Monitor" - ], - "summary": "Get Message Sessions", - "operationId": "get_message_sessions_api_v1_monitor_messages_sessions_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Flow Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "title": "Response Get Message Sessions Api V1 Monitor Messages Sessions Get" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/messages": { - "get": { - "tags": [ - "Monitor" - ], - "summary": "Get Messages", - "operationId": "get_messages_api_v1_monitor_messages_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Flow Id" - } - }, - { - "name": "session_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Session Id" - } - }, - { - "name": "sender", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Sender" - } - }, - { - "name": "sender_name", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Sender Name" - } - }, - { - "name": "order_by", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": "timestamp", - "title": "Order By" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessageResponse" - }, - "title": "Response Get Messages Api V1 Monitor Messages Get" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Monitor" - ], - "summary": "Delete Messages", - "operationId": "delete_messages_api_v1_monitor_messages_delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - }, - "title": "Message Ids" - } - } - } - }, - "responses": { - "204": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/messages/{message_id}": { - "put": { - "tags": [ - "Monitor" - ], - "summary": "Update Message", - "operationId": "update_message_api_v1_monitor_messages__message_id__put", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Message Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessageUpdate" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessageRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/messages/session/{old_session_id}": { - "patch": { - "tags": [ - "Monitor" - ], - "summary": "Update Session Id", - "operationId": "update_session_id_api_v1_monitor_messages_session__old_session_id__patch", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "old_session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Old Session Id" - } - }, - { - "name": "new_session_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "description": "The new session ID to update to", - "title": "New Session Id" - }, - "description": "The new session ID to update to" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessageResponse" - }, - "title": "Response Update Session Id Api V1 Monitor Messages Session Old Session Id Patch" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/messages/session/{session_id}": { - "delete": { - "tags": [ - "Monitor" - ], - "summary": "Delete Messages Session", - "operationId": "delete_messages_session_api_v1_monitor_messages_session__session_id__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "session_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Session Id" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/transactions": { - "get": { - "tags": [ - "Monitor" - ], - "summary": "Get Transactions", - "operationId": "get_transactions_api_v1_monitor_transactions_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 1, - "description": "Page number", - "default": 1, - "title": "Page" - }, - "description": "Page number" - }, - { - "name": "size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "maximum": 100, - "minimum": 1, - "description": "Page size", - "default": 50, - "title": "Size" - }, - "description": "Page size" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Page_TransactionLogsResponse_" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/traces": { - "get": { - "tags": [ - "Traces" - ], - "summary": "Get Traces", - "description": "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", - "operationId": "get_traces_api_v1_monitor_traces_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Flow Id" - } - }, - { - "name": "session_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Session Id" - } - }, - { - "name": "status", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/SpanStatus" - }, - { - "type": "null" - } - ], - "title": "Status" - } - }, - { - "name": "query", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Query" - } - }, - { - "name": "start_time", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Start Time" - } - }, - { - "name": "end_time", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "End Time" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "default": 1, - "title": "Page" - } - }, - { - "name": "size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "maximum": 200, - "minimum": 1, - "default": 50, - "title": "Size" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TraceListResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Traces" - ], - "summary": "Delete Traces By Flow", - "description": "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).", - "operationId": "delete_traces_by_flow_api_v1_monitor_traces_delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_id", - "in": "query", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Flow Id" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/monitor/traces/{trace_id}": { - "get": { - "tags": [ - "Traces" - ], - "summary": "Get Trace", - "description": "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.", - "operationId": "get_trace_api_v1_monitor_traces__trace_id__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "trace_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Trace Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TraceRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Traces" - ], - "summary": "Delete Trace", - "description": "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).", - "operationId": "delete_trace_api_v1_monitor_traces__trace_id__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "trace_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Trace Id" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/projects/": { - "get": { - "tags": [ - "Projects" - ], - "summary": "Read Projects", - "operationId": "read_projects_api_v1_projects__get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/FolderRead" - }, - "type": "array", - "title": "Response Read Projects Api V1 Projects Get" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - }, - "post": { - "tags": [ - "Projects" - ], - "summary": "Create Project", - "operationId": "create_project_api_v1_projects__post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FolderCreate" - } - } - }, - "required": true - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FolderRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/projects/{project_id}": { - "get": { - "tags": [ - "Projects" - ], - "summary": "Read Project", - "operationId": "read_project_api_v1_projects__project_id__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Page" - } - }, - { - "name": "size", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Size" - } - }, - { - "name": "is_component", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Is Component" - } - }, - { - "name": "is_flow", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Is Flow" - } - }, - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "", - "title": "Search" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/FolderWithPaginatedFlows" - }, - { - "$ref": "#/components/schemas/FolderReadWithFlows" - } - ], - "title": "Response Read Project Api V1 Projects Project Id Get" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "patch": { - "tags": [ - "Projects" - ], - "summary": "Update Project", - "operationId": "update_project_api_v1_projects__project_id__patch", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FolderUpdate" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FolderRead" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Projects" - ], - "summary": "Delete Project", - "operationId": "delete_project_api_v1_projects__project_id__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "204": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/projects/download/{project_id}": { - "get": { - "tags": [ - "Projects" - ], - "summary": "Download File", - "description": "Download all flows from project as a zip file.", - "operationId": "download_file_api_v1_projects_download__project_id__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/projects/upload/": { - "post": { - "tags": [ - "Projects" - ], - "summary": "Upload File", - "description": "Upload flows from a file.", - "operationId": "upload_file_api_v1_projects_upload__post", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_upload_file_api_v1_projects_upload__post" - } - } - }, - "required": true - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/FlowRead" - }, - "type": "array", - "title": "Response Upload File Api V1 Projects Upload Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/starter-projects/": { - "get": { - "tags": [ - "Flows" - ], - "summary": "Get Starter Projects", - "description": "Get a list of starter projects.", - "operationId": "get_starter_projects_api_v1_starter_projects__get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/GraphDumpResponse" - }, - "type": "array", - "title": "Response Get Starter Projects Api V1 Starter Projects Get" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/mcp/sse": { - "get": { - "tags": [ - "mcp" - ], - "summary": "Handle Sse", - "operationId": "handle_sse_api_v1_mcp_sse_get", - "responses": { - "200": { - "description": "Successful Response" - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - }, - "head": { - "tags": [ - "mcp" - ], - "summary": "Im Alive", - "operationId": "im_alive_api_v1_mcp_sse_head", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "text/html": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/api/v1/mcp/": { - "post": { - "tags": [ - "mcp" - ], - "summary": "Handle Messages", - "operationId": "handle_messages_api_v1_mcp__post", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/api/v1/mcp/streamable": { - "get": { - "tags": [ - "mcp" - ], - "summary": "Handle Streamable Http", - "description": "Streamable HTTP endpoint for MCP clients that support the new transport.", - "operationId": "handle_streamable_http_api_v1_mcp_streamable_delete", - "responses": { - "200": { - "description": "Successful Response" - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - }, - "post": { - "tags": [ - "mcp" - ], - "summary": "Handle Streamable Http", - "description": "Streamable HTTP endpoint for MCP clients that support the new transport.", - "operationId": "handle_streamable_http_api_v1_mcp_streamable_delete", - "responses": { - "200": { - "description": "Successful Response" - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - }, - "delete": { - "tags": [ - "mcp" - ], - "summary": "Handle Streamable Http", - "description": "Streamable HTTP endpoint for MCP clients that support the new transport.", - "operationId": "handle_streamable_http_api_v1_mcp_streamable_delete", - "responses": { - "200": { - "description": "Successful Response" - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - }, - "head": { - "tags": [ - "mcp" - ], - "summary": "Streamable Health", - "operationId": "streamable_health_api_v1_mcp_streamable_head", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/api/v1/mcp/project/{project_id}": { - "get": { - "tags": [ - "mcp_projects" - ], - "summary": "List Project Tools", - "description": "List project MCP tools.", - "operationId": "list_project_tools_api_v1_mcp_project__project_id__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - }, - { - "name": "mcp_enabled", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true, - "title": "Mcp Enabled" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "post": { - "tags": [ - "mcp_projects" - ], - "summary": "Handle Project Messages", - "description": "Handle POST messages for a project-specific MCP server.", - "operationId": "handle_project_messages_api_v1_mcp_project__project_id__post", - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "patch": { - "tags": [ - "mcp_projects" - ], - "summary": "Update Project Mcp Settings", - "description": "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.", - "operationId": "update_project_mcp_settings_api_v1_mcp_project__project_id__patch", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MCPProjectUpdateRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/mcp/project/{project_id}/sse": { - "head": { - "tags": [ - "mcp_projects" - ], - "summary": "Im Alive", - "operationId": "im_alive_api_v1_mcp_project__project_id__sse_head", - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "text/html": { - "schema": { - "type": "string" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "get": { - "tags": [ - "mcp_projects" - ], - "summary": "Handle Project Sse", - "description": "Handle SSE connections for a specific project.", - "operationId": "handle_project_sse_api_v1_mcp_project__project_id__sse_get", - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "text/html": { - "schema": { - "type": "string" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/mcp/project/{project_id}/": { - "post": { - "tags": [ - "mcp_projects" - ], - "summary": "Handle Project Messages", - "description": "Handle POST messages for a project-specific MCP server.", - "operationId": "handle_project_messages_api_v1_mcp_project__project_id___post", - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/mcp/project/{project_id}/streamable": { - "head": { - "tags": [ - "mcp_projects" - ], - "summary": "Streamable Health", - "operationId": "streamable_health_api_v1_mcp_project__project_id__streamable_head", - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "mcp_projects" - ], - "summary": "Handle Project Streamable Http", - "description": "Handle Streamable HTTP connections for a specific project.", - "operationId": "handle_project_streamable_http_api_v1_mcp_project__project_id__streamable_delete", - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "get": { - "tags": [ - "mcp_projects" - ], - "summary": "Handle Project Streamable Http", - "description": "Handle Streamable HTTP connections for a specific project.", - "operationId": "handle_project_streamable_http_api_v1_mcp_project__project_id__streamable_delete", - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "post": { - "tags": [ - "mcp_projects" - ], - "summary": "Handle Project Streamable Http", - "description": "Handle Streamable HTTP connections for a specific project.", - "operationId": "handle_project_streamable_http_api_v1_mcp_project__project_id__streamable_delete", - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response" - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/mcp/project/{project_id}/install": { - "post": { - "tags": [ - "mcp_projects" - ], - "summary": "Install Mcp Config", - "description": "Install MCP server configuration for Cursor, Windsurf, or Claude.", - "operationId": "install_mcp_config_api_v1_mcp_project__project_id__install_post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MCPInstallRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/mcp/project/{project_id}/composer-url": { - "get": { - "tags": [ - "mcp_projects" - ], - "summary": "Get Project Composer Url", - "description": "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.", - "operationId": "get_project_composer_url_api_v1_mcp_project__project_id__composer_url_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUrlResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/mcp/project/{project_id}/installed": { - "get": { - "tags": [ - "mcp_projects" - ], - "summary": "Check Installed Mcp Servers", - "description": "Check if MCP server configuration is installed for this project in Cursor, Windsurf, or Claude.", - "operationId": "check_installed_mcp_servers_api_v1_mcp_project__project_id__installed_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "project_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "Project Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/responses": { - "post": { - "tags": [ - "OpenAI Responses API" - ], - "summary": "Create Response", - "description": "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", - "operationId": "create_response_api_v1_responses_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAIResponsesRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/agentic/execute/{flow_name}": { - "post": { - "tags": [ - "Agentic" - ], - "summary": "Execute Named Flow", - "description": "Execute a named flow from the flows directory.", - "operationId": "execute_named_flow_api_v1_agentic_execute__flow_name__post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "flow_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Flow Name" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssistantRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true, - "title": "Response Execute Named Flow Api V1 Agentic Execute Flow Name Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v1/agentic/check-config": { - "get": { - "tags": [ - "Agentic" - ], - "summary": "Check Assistant Config", - "description": "Check if the Langflow Assistant is properly configured.

Returns available providers with their configured status and available models.", - "operationId": "check_assistant_config_api_v1_agentic_check_config_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": true, - "type": "object", - "title": "Response Check Assistant Config Api V1 Agentic Check Config Get" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/agentic/assist": { - "post": { - "tags": [ - "Agentic" - ], - "summary": "Assist", - "description": "Chat with the Langflow Assistant.", - "operationId": "assist_api_v1_agentic_assist_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssistantRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": true, - "type": "object", - "title": "Response Assist Api V1 Agentic Assist Post" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v1/agentic/assist/stream": { - "post": { - "tags": [ - "Agentic" - ], - "summary": "Assist Stream", - "description": "Chat with the Langflow Assistant with streaming progress updates.", - "operationId": "assist_stream_api_v1_agentic_assist_stream_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssistantRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v2/files/": { - "post": { - "tags": [ - "Files" - ], - "summary": "Upload User File", - "description": "Upload a file for the current user and track it in the database.", - "operationId": "upload_user_file_api_v2_files__post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "append", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Append" - } - } - ], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_upload_user_file_api_v2_files__post" - } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/langflow__api__schemas__UploadFileResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "get": { - "tags": [ - "Files" - ], - "summary": "List Files", - "description": "List the files available to the current user.", - "operationId": "list_files_api_v2_files__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/langflow__services__database__models__file__model__File" - }, - "title": "Response List Files Api V2 Files Get" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Files" - ], - "summary": "Delete All Files", - "description": "Delete all files for the current user.", - "operationId": "delete_all_files_api_v2_files__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/api/v2/files": { - "post": { - "tags": [ - "Files" - ], - "summary": "Upload User File", - "description": "Upload a file for the current user and track it in the database.", - "operationId": "upload_user_file_api_v2_files_post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "append", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Append" - } - } - ], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/Body_upload_user_file_api_v2_files_post" - } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/langflow__api__schemas__UploadFileResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "get": { - "tags": [ - "Files" - ], - "summary": "List Files", - "description": "List the files available to the current user.", - "operationId": "list_files_api_v2_files_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/langflow__services__database__models__file__model__File" - }, - "title": "Response List Files Api V2 Files Get" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Files" - ], - "summary": "Delete All Files", - "description": "Delete all files for the current user.", - "operationId": "delete_all_files_api_v2_files_delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/api/v2/files/batch/": { - "post": { - "tags": [ - "Files" - ], - "summary": "Download Files Batch", - "description": "Download multiple files as a zip file by their IDs.", - "operationId": "download_files_batch_api_v2_files_batch__post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "items": { - "type": "string", - "format": "uuid" - }, - "type": "array", - "title": "File Ids" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - }, - "delete": { - "tags": [ - "Files" - ], - "summary": "Delete Files Batch", - "description": "Delete multiple files by their IDs.", - "operationId": "delete_files_batch_api_v2_files_batch__delete", - "requestBody": { - "content": { - "application/json": { - "schema": { - "items": { - "type": "string", - "format": "uuid" - }, - "type": "array", - "title": "File Ids" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/api/v2/files/{file_id}": { - "get": { - "tags": [ - "Files" - ], - "summary": "Download File", - "description": "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.", - "operationId": "download_file_api_v2_files__file_id__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "File Id" - } - }, - { - "name": "return_content", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false, - "title": "Return Content" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "put": { - "tags": [ - "Files" - ], - "summary": "Edit File Name", - "description": "Edit the name of a file by its ID.", - "operationId": "edit_file_name_api_v2_files__file_id__put", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "File Id" - } - }, - { - "name": "name", - "in": "query", - "required": true, - "schema": { - "type": "string", - "title": "Name" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/langflow__api__schemas__UploadFileResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Files" - ], - "summary": "Delete File", - "description": "Delete a file by its ID.", - "operationId": "delete_file_api_v2_files__file_id__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string", - "format": "uuid", - "title": "File Id" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v2/mcp/servers": { - "get": { - "tags": [ - "MCP" - ], - "summary": "Get Servers", - "description": "Get the list of available servers.", - "operationId": "get_servers_api_v2_mcp_servers_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "action_count", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Action Count" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v2/mcp/servers/{server_name}": { - "get": { - "tags": [ - "MCP" - ], - "summary": "Get Server Endpoint", - "description": "Get a specific server.", - "operationId": "get_server_endpoint_api_v2_mcp_servers__server_name__get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "server_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Server Name" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "post": { - "tags": [ - "MCP" - ], - "summary": "Add Server", - "operationId": "add_server_api_v2_mcp_servers__server_name__post", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "server_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Server Name" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MCPServerConfig" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "patch": { - "tags": [ - "MCP" - ], - "summary": "Update Server Endpoint", - "operationId": "update_server_endpoint_api_v2_mcp_servers__server_name__patch", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "server_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Server Name" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MCPServerConfig" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "delete": { - "tags": [ - "MCP" - ], - "summary": "Delete Server", - "operationId": "delete_server_api_v2_mcp_servers__server_name__delete", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "server_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "title": "Server Name" - } - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v2/workflows": { - "post": { - "tags": [ - "Workflow" - ], - "summary": "Execute Workflow", - "description": "Execute a workflow with support for sync, stream, and background modes", - "operationId": "execute_workflow_api_v2_workflows_post", - "security": [ - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkflowExecutionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Workflow execution response", - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "$defs": { - "ComponentOutput": { - "description": "Component output schema.", - "properties": { - "type": { - "description": "Type of the component output (e.g., 'message', 'data', 'tool', 'text')", - "title": "Type", - "type": "string" - }, - "status": { - "$ref": "#/$defs/JobStatus" - }, - "content": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "title": "Content" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Metadata" - } - }, - "required": [ - "type", - "status" - ], - "title": "ComponentOutput", - "type": "object" - }, - "ErrorDetail": { - "description": "Error detail schema.", - "properties": { - "error": { - "title": "Error", - "type": "string" - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Code" - }, - "details": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Details" - } - }, - "required": [ - "error" - ], - "title": "ErrorDetail", - "type": "object" - }, - "JobStatus": { - "description": "Job execution status.", - "enum": [ - "queued", - "in_progress", - "completed", - "failed", - "cancelled", - "timed_out" - ], - "title": "JobStatus", - "type": "string" - } - }, - "description": "Synchronous workflow execution response.", - "properties": { - "flow_id": { - "title": "Flow Id", - "type": "string" - }, - "job_id": { - "anyOf": [ - { - "type": "string" - }, - { - "format": "uuid", - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Job Id" - }, - "object": { - "const": "response", - "default": "response", - "title": "Object", - "type": "string" - }, - "created_timestamp": { - "title": "Created Timestamp", - "type": "string" - }, - "status": { - "$ref": "#/$defs/JobStatus" - }, - "errors": { - "default": [], - "items": { - "$ref": "#/$defs/ErrorDetail" - }, - "title": "Errors", - "type": "array" - }, - "inputs": { - "additionalProperties": true, - "default": {}, - "title": "Inputs", - "type": "object" - }, - "outputs": { - "additionalProperties": { - "$ref": "#/$defs/ComponentOutput" - }, - "default": {}, - "title": "Outputs", - "type": "object" - } - }, - "required": [ - "flow_id", - "status" - ], - "title": "WorkflowExecutionResponse", - "type": "object" - }, - { - "$defs": { - "ErrorDetail": { - "description": "Error detail schema.", - "properties": { - "error": { - "title": "Error", - "type": "string" - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Code" - }, - "details": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Details" - } - }, - "required": [ - "error" - ], - "title": "ErrorDetail", - "type": "object" - }, - "JobStatus": { - "description": "Job execution status.", - "enum": [ - "queued", - "in_progress", - "completed", - "failed", - "cancelled", - "timed_out" - ], - "title": "JobStatus", - "type": "string" - } - }, - "description": "Background job response.", - "properties": { - "job_id": { - "anyOf": [ - { - "type": "string" - }, - { - "format": "uuid", - "type": "string" - } - ], - "title": "Job Id" - }, - "flow_id": { - "title": "Flow Id", - "type": "string" - }, - "object": { - "const": "job", - "default": "job", - "title": "Object", - "type": "string" - }, - "created_timestamp": { - "title": "Created Timestamp", - "type": "string" - }, - "status": { - "$ref": "#/$defs/JobStatus" - }, - "links": { - "additionalProperties": { - "type": "string" - }, - "title": "Links", - "type": "object" - }, - "errors": { - "default": [], - "items": { - "$ref": "#/$defs/ErrorDetail" - }, - "title": "Errors", - "type": "array" - } - }, - "required": [ - "job_id", - "flow_id", - "status" - ], - "title": "WorkflowJobResponse", - "type": "object" - } - ], - "discriminator": { - "propertyName": "object", - "mapping": { - "response": "#/components/schemas/WorkflowExecutionResponse", - "job": "#/components/schemas/WorkflowJobResponse" - } - } - } - }, - "text/event-stream": { - "schema": { - "description": "Streaming event response.", - "properties": { - "type": { - "title": "Type", - "type": "string" - }, - "run_id": { - "title": "Run Id", - "type": "string" - }, - "timestamp": { - "title": "Timestamp", - "type": "integer" - }, - "raw_event": { - "additionalProperties": true, - "title": "Raw Event", - "type": "object" - } - }, - "required": [ - "type", - "run_id", - "timestamp", - "raw_event" - ], - "title": "WorkflowStreamEvent", - "type": "object" - }, - "description": "Server-sent events for streaming execution" - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - }, - "get": { - "tags": [ - "Workflow" - ], - "summary": "Get Workflow Status", - "description": "Get status of workflow job by job ID", - "operationId": "get_workflow_status_api_v2_workflows_get", - "security": [ - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "job_id", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "description": "Job ID to query", - "title": "Job Id" - }, - "description": "Job ID to query" - } - ], - "responses": { - "200": { - "description": "Workflow status response", - "content": { - "application/json": { - "schema": { - "$defs": { - "ComponentOutput": { - "description": "Component output schema.", - "properties": { - "type": { - "description": "Type of the component output (e.g., 'message', 'data', 'tool', 'text')", - "title": "Type", - "type": "string" - }, - "status": { - "$ref": "#/$defs/JobStatus" - }, - "content": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "title": "Content" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Metadata" - } - }, - "required": [ - "type", - "status" - ], - "title": "ComponentOutput", - "type": "object" - }, - "ErrorDetail": { - "description": "Error detail schema.", - "properties": { - "error": { - "title": "Error", - "type": "string" - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Code" - }, - "details": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Details" - } - }, - "required": [ - "error" - ], - "title": "ErrorDetail", - "type": "object" - }, - "JobStatus": { - "description": "Job execution status.", - "enum": [ - "queued", - "in_progress", - "completed", - "failed", - "cancelled", - "timed_out" - ], - "title": "JobStatus", - "type": "string" - } - }, - "description": "Synchronous workflow execution response.", - "properties": { - "flow_id": { - "title": "Flow Id", - "type": "string" - }, - "job_id": { - "anyOf": [ - { - "type": "string" - }, - { - "format": "uuid", - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Job Id" - }, - "object": { - "const": "response", - "default": "response", - "title": "Object", - "type": "string" - }, - "created_timestamp": { - "title": "Created Timestamp", - "type": "string" - }, - "status": { - "$ref": "#/$defs/JobStatus" - }, - "errors": { - "default": [], - "items": { - "$ref": "#/$defs/ErrorDetail" - }, - "title": "Errors", - "type": "array" - }, - "inputs": { - "additionalProperties": true, - "default": {}, - "title": "Inputs", - "type": "object" - }, - "outputs": { - "additionalProperties": { - "$ref": "#/$defs/ComponentOutput" - }, - "default": {}, - "title": "Outputs", - "type": "object" - } - }, - "required": [ - "flow_id", - "status" - ], - "title": "WorkflowExecutionResponse", - "type": "object" - } - }, - "text/event-stream": { - "schema": { - "description": "Streaming event response.", - "properties": { - "type": { - "title": "Type", - "type": "string" - }, - "run_id": { - "title": "Run Id", - "type": "string" - }, - "timestamp": { - "title": "Timestamp", - "type": "integer" - }, - "raw_event": { - "additionalProperties": true, - "title": "Raw Event", - "type": "object" - } - }, - "required": [ - "type", - "run_id", - "timestamp", - "raw_event" - ], - "title": "WorkflowStreamEvent", - "type": "object" - }, - "description": "Server-sent events for streaming status" - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - }, - "/api/v2/workflows/stop": { - "post": { - "tags": [ - "Workflow" - ], - "summary": "Stop Workflow", - "description": "Stop a running workflow execution", - "operationId": "stop_workflow_api_v2_workflows_stop_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkflowStopRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkflowStopResponse" - } - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - }, - "security": [ - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/health": { - "get": { - "tags": [ - "Health Check" - ], - "summary": "Health", - "operationId": "health_health_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - } - } - }, - "/health_check": { - "get": { - "tags": [ - "Health Check" - ], - "summary": "Health Check", - "operationId": "health_check_health_check_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthResponse" - } - } - } - } - } - } - }, - "/logs-stream": { - "get": { - "tags": [ - "Log" - ], - "summary": "Stream Logs", - "description": "HTTP/2 Server-Sent-Event (SSE) endpoint for streaming logs.

Requires authentication to prevent exposure of sensitive log data.
It establishes a long-lived connection to the server and receives log messages in real-time.
The client should use the header \"Accept: text/event-stream\".", - "operationId": "stream_logs_logs_stream_get", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - } - }, - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] - } - }, - "/logs": { - "get": { - "tags": [ - "Log" - ], - "summary": "Logs", - "description": "Retrieve application logs with authentication required.

SECURITY: Logs may contain sensitive information and require authentication.", - "operationId": "logs_logs_get", - "security": [ - { - "OAuth2PasswordBearerCookie": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], - "parameters": [ - { - "name": "lines_before", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "description": "The number of logs before the timestamp or the last log", - "default": 0, - "title": "Lines Before" - }, - "description": "The number of logs before the timestamp or the last log" - }, - { - "name": "lines_after", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "description": "The number of logs after the timestamp", - "default": 0, - "title": "Lines After" - }, - "description": "The number of logs after the timestamp" - }, - { - "name": "timestamp", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "description": "The timestamp to start getting logs from", - "default": 0, - "title": "Timestamp" - }, - "description": "The timestamp to start getting logs from" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": {} - } - } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } - } - } - } - } - }, "components": { "schemas": { "AccessTypeEnum": { - "type": "string", "enum": [ "PRIVATE", "PUBLIC" ], - "title": "AccessTypeEnum" - }, - "AssistantRequest": { - "properties": { - "flow_id": { - "type": "string", - "title": "Flow Id" - }, - "component_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Component Id" - }, - "field_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Field Name" - }, - "input_value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Input Value" - }, - "max_retries": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Max Retries" - }, - "model_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Model Name" - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Provider" - }, - "session_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Session Id" - } - }, - "type": "object", - "required": [ - "flow_id" - ], - "title": "AssistantRequest", - "description": "Request model for assistant interactions." + "title": "AccessTypeEnum", + "type": "string" }, "AuthSettings": { + "description": "Model representing authentication settings for MCP.", "properties": { "auth_type": { - "type": "string", + "default": "none", "enum": [ "none", "apikey", "oauth" ], "title": "Auth Type", - "default": "none" + "type": "string" }, - "oauth_host": { + "oauth_auth_url": { "anyOf": [ { "type": "string" @@ -6291,29 +31,7 @@ "type": "null" } ], - "title": "Oauth Host" - }, - "oauth_port": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Oauth Port" - }, - "oauth_server_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Oauth Server Url" + "title": "Oauth Auth Url" }, "oauth_callback_path": { "anyOf": [ @@ -6351,8 +69,8 @@ "oauth_client_secret": { "anyOf": [ { - "type": "string", "format": "password", + "type": "string", "writeOnly": true }, { @@ -6361,7 +79,7 @@ ], "title": "Oauth Client Secret" }, - "oauth_auth_url": { + "oauth_host": { "anyOf": [ { "type": "string" @@ -6370,18 +88,7 @@ "type": "null" } ], - "title": "Oauth Auth Url" - }, - "oauth_token_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Oauth Token Url" + "title": "Oauth Host" }, "oauth_mcp_scope": { "anyOf": [ @@ -6394,6 +101,17 @@ ], "title": "Oauth Mcp Scope" }, + "oauth_port": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Oauth Port" + }, "oauth_provider_scope": { "anyOf": [ { @@ -6404,24 +122,35 @@ } ], "title": "Oauth Provider Scope" + }, + "oauth_server_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Oauth Server Url" + }, + "oauth_token_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Oauth Token Url" } }, - "type": "object", "title": "AuthSettings", - "description": "Model representing authentication settings for MCP." + "type": "object" }, "Body_build_flow_api_v1_build__flow_id__flow_post": { "properties": { - "inputs": { - "anyOf": [ - { - "$ref": "#/components/schemas/InputValueRequest" - }, - { - "type": "null" - } - ] - }, "data": { "anyOf": [ { @@ -6445,33 +174,23 @@ } ], "title": "Files" + }, + "inputs": { + "anyOf": [ + { + "$ref": "#/components/schemas/InputValueRequest" + }, + { + "type": "null" + } + ] } }, - "type": "object", - "title": "Body_build_flow_api_v1_build__flow_id__flow_post" + "title": "Body_build_flow_api_v1_build__flow_id__flow_post", + "type": "object" }, "Body_build_public_tmp_api_v1_build_public_tmp__flow_id__flow_post": { "properties": { - "inputs": { - "anyOf": [ - { - "$ref": "#/components/schemas/InputValueRequest" - }, - { - "type": "null" - } - ] - }, - "data": { - "anyOf": [ - { - "$ref": "#/components/schemas/FlowDataRequest" - }, - { - "type": "null" - } - ] - }, "files": { "anyOf": [ { @@ -6485,10 +204,20 @@ } ], "title": "Files" + }, + "inputs": { + "anyOf": [ + { + "$ref": "#/components/schemas/InputValueRequest" + }, + { + "type": "null" + } + ] } }, - "type": "object", - "title": "Body_build_public_tmp_api_v1_build_public_tmp__flow_id__flow_post" + "title": "Body_build_public_tmp_api_v1_build_public_tmp__flow_id__flow_post", + "type": "object" }, "Body_experimental_run_flow_api_v1_run_advanced__flow_id_or_name__post": { "properties": { @@ -6520,21 +249,6 @@ ], "title": "Outputs" }, - "tweaks": { - "anyOf": [ - { - "$ref": "#/components/schemas/Tweaks" - }, - { - "type": "null" - } - ] - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, "session_id": { "anyOf": [ { @@ -6545,23 +259,28 @@ } ], "title": "Session Id" - } - }, - "type": "object", - "title": "Body_experimental_run_flow_api_v1_run_advanced__flow_id_or_name__post" - }, - "Body_simplified_run_flow_api_v1_run__flow_id_or_name__post": { - "properties": { - "input_request": { + }, + "stream": { + "default": false, + "title": "Stream", + "type": "boolean" + }, + "tweaks": { "anyOf": [ { - "$ref": "#/components/schemas/SimplifiedAPIRequest" + "$ref": "#/components/schemas/Tweaks" }, { "type": "null" } ] - }, + } + }, + "title": "Body_experimental_run_flow_api_v1_run_advanced__flow_id_or_name__post", + "type": "object" + }, + "Body_simplified_run_flow_api_v1_run__flow_id_or_name__post": { + "properties": { "context": { "anyOf": [ { @@ -6573,102 +292,132 @@ } ], "title": "Context" + }, + "input_request": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimplifiedAPIRequest" + }, + { + "type": "null" + } + ] } }, - "type": "object", - "title": "Body_simplified_run_flow_api_v1_run__flow_id_or_name__post" + "title": "Body_simplified_run_flow_api_v1_run__flow_id_or_name__post", + "type": "object" }, "Body_upload_file_api_v1_files_upload__flow_id__post": { "properties": { "file": { - "type": "string", "contentMediaType": "application/octet-stream", - "title": "File" + "title": "File", + "type": "string" } }, - "type": "object", "required": [ "file" ], - "title": "Body_upload_file_api_v1_files_upload__flow_id__post" + "title": "Body_upload_file_api_v1_files_upload__flow_id__post", + "type": "object" }, "Body_upload_file_api_v1_flows_upload__post": { "properties": { "file": { - "type": "string", "contentMediaType": "application/octet-stream", - "title": "File" + "title": "File", + "type": "string" } }, - "type": "object", "required": [ "file" ], - "title": "Body_upload_file_api_v1_flows_upload__post" + "title": "Body_upload_file_api_v1_flows_upload__post", + "type": "object" }, "Body_upload_file_api_v1_projects_upload__post": { "properties": { "file": { - "type": "string", "contentMediaType": "application/octet-stream", - "title": "File" + "title": "File", + "type": "string" } }, - "type": "object", "required": [ "file" ], - "title": "Body_upload_file_api_v1_projects_upload__post" + "title": "Body_upload_file_api_v1_projects_upload__post", + "type": "object" }, "Body_upload_user_file_api_v2_files__post": { "properties": { "file": { - "type": "string", "contentMediaType": "application/octet-stream", - "title": "File" + "title": "File", + "type": "string" } }, - "type": "object", "required": [ "file" ], - "title": "Body_upload_user_file_api_v2_files__post" + "title": "Body_upload_user_file_api_v2_files__post", + "type": "object" }, "Body_upload_user_file_api_v2_files_post": { "properties": { "file": { - "type": "string", "contentMediaType": "application/octet-stream", - "title": "File" + "title": "File", + "type": "string" } }, - "type": "object", "required": [ "file" ], - "title": "Body_upload_user_file_api_v2_files_post" + "title": "Body_upload_user_file_api_v2_files_post", + "type": "object" }, "CancelFlowResponse": { + "description": "Response model for flow build cancellation.", "properties": { - "success": { - "type": "boolean", - "title": "Success" - }, "message": { - "type": "string", - "title": "Message" + "title": "Message", + "type": "string" + }, + "success": { + "title": "Success", + "type": "boolean" } }, - "type": "object", "required": [ "success", "message" ], "title": "CancelFlowResponse", - "description": "Response model for flow build cancellation." + "type": "object" }, "ChatOutputResponse": { + "description": "Chat output response schema.", "properties": { + "component_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Component Id" + }, + "files": { + "default": [], + "items": { + "$ref": "#/components/schemas/lfx__utils__schemas__File" + }, + "title": "Files", + "type": "array" + }, "message": { "anyOf": [ { @@ -6700,8 +449,8 @@ "type": "null" } ], - "title": "Sender", - "default": "Machine" + "default": "Machine", + "title": "Sender" }, "sender_name": { "anyOf": [ @@ -6712,8 +461,8 @@ "type": "null" } ], - "title": "Sender Name", - "default": "AI" + "default": "AI", + "title": "Sender Name" }, "session_id": { "anyOf": [ @@ -6737,53 +486,66 @@ ], "title": "Stream Url" }, - "component_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Component Id" - }, - "files": { - "items": { - "$ref": "#/components/schemas/lfx__utils__schemas__File" - }, - "type": "array", - "title": "Files", - "default": [] - }, "type": { - "type": "string", - "title": "Type" + "title": "Type", + "type": "string" } }, - "type": "object", "required": [ "message", "type" ], "title": "ChatOutputResponse", - "description": "Chat output response schema." + "type": "object" }, "CodeContent": { "additionalProperties": true, "type": "object" }, - "ComposerUrlResponse": { + "ComponentOutput": { + "description": "Component output schema.", "properties": { - "project_id": { - "type": "string", - "title": "Project Id" + "content": { + "anyOf": [ + {}, + { + "type": "null" + } + ], + "title": "Content" }, - "uses_composer": { - "type": "boolean", - "title": "Uses Composer" + "metadata": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Metadata" }, - "streamable_http_url": { + "status": { + "$ref": "#/$defs/JobStatus" + }, + "type": { + "description": "Type of the component output (e.g., 'message', 'data', 'tool', 'text')", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "title": "ComponentOutput", + "type": "object" + }, + "ComposerUrlResponse": { + "description": "Response model for MCP Composer connection details.", + "properties": { + "error_message": { "anyOf": [ { "type": "string" @@ -6792,7 +554,7 @@ "type": "null" } ], - "title": "Streamable Http Url" + "title": "Error Message" }, "legacy_sse_url": { "anyOf": [ @@ -6805,7 +567,11 @@ ], "title": "Legacy Sse Url" }, - "error_message": { + "project_id": { + "title": "Project Id", + "type": "string" + }, + "streamable_http_url": { "anyOf": [ { "type": "string" @@ -6814,95 +580,98 @@ "type": "null" } ], - "title": "Error Message" + "title": "Streamable Http Url" + }, + "uses_composer": { + "title": "Uses Composer", + "type": "boolean" } }, - "type": "object", "required": [ "project_id", "uses_composer" ], "title": "ComposerUrlResponse", - "description": "Response model for MCP Composer connection details." + "type": "object" }, "ConfigResponse": { + "description": "Full configuration response for authenticated users.\n\nThe 'type' field is a discriminator to distinguish from PublicConfigResponse.", "properties": { - "max_file_size_upload": { - "type": "integer", - "title": "Max File Size Upload" + "auto_saving": { + "title": "Auto Saving", + "type": "boolean" + }, + "auto_saving_interval": { + "title": "Auto Saving Interval", + "type": "integer" + }, + "default_folder_name": { + "title": "Default Folder Name", + "type": "string" }, "event_delivery": { - "type": "string", "enum": [ "polling", "streaming", "direct" ], - "title": "Event Delivery" - }, - "voice_mode_available": { - "type": "boolean", - "title": "Voice Mode Available" - }, - "frontend_timeout": { - "type": "integer", - "title": "Frontend Timeout" - }, - "type": { - "type": "string", - "const": "full", - "title": "Type", - "default": "full" + "title": "Event Delivery", + "type": "string" }, "feature_flags": { "$ref": "#/components/schemas/FeatureFlags" }, - "serialization_max_items_length": { - "type": "integer", - "title": "Serialization Max Items Length" - }, - "serialization_max_text_length": { - "type": "integer", - "title": "Serialization Max Text Length" - }, - "auto_saving": { - "type": "boolean", - "title": "Auto Saving" - }, - "auto_saving_interval": { - "type": "integer", - "title": "Auto Saving Interval" + "frontend_timeout": { + "title": "Frontend Timeout", + "type": "integer" }, "health_check_max_retries": { - "type": "integer", - "title": "Health Check Max Retries" - }, - "webhook_polling_interval": { - "type": "integer", - "title": "Webhook Polling Interval" - }, - "public_flow_cleanup_interval": { - "type": "integer", - "title": "Public Flow Cleanup Interval" - }, - "public_flow_expiration": { - "type": "integer", - "title": "Public Flow Expiration" - }, - "webhook_auth_enable": { - "type": "boolean", - "title": "Webhook Auth Enable" - }, - "default_folder_name": { - "type": "string", - "title": "Default Folder Name" + "title": "Health Check Max Retries", + "type": "integer" }, "hide_getting_started_progress": { - "type": "boolean", - "title": "Hide Getting Started Progress" + "title": "Hide Getting Started Progress", + "type": "boolean" + }, + "max_file_size_upload": { + "title": "Max File Size Upload", + "type": "integer" + }, + "public_flow_cleanup_interval": { + "title": "Public Flow Cleanup Interval", + "type": "integer" + }, + "public_flow_expiration": { + "title": "Public Flow Expiration", + "type": "integer" + }, + "serialization_max_items_length": { + "title": "Serialization Max Items Length", + "type": "integer" + }, + "serialization_max_text_length": { + "title": "Serialization Max Text Length", + "type": "integer" + }, + "type": { + "const": "full", + "default": "full", + "title": "Type", + "type": "string" + }, + "voice_mode_available": { + "title": "Voice Mode Available", + "type": "boolean" + }, + "webhook_auth_enable": { + "title": "Webhook Auth Enable", + "type": "boolean" + }, + "webhook_polling_interval": { + "title": "Webhook Polling Interval", + "type": "integer" } }, - "type": "object", "required": [ "max_file_size_upload", "event_delivery", @@ -6922,26 +691,23 @@ "hide_getting_started_progress" ], "title": "ConfigResponse", - "description": "Full configuration response for authenticated users.\n\nThe 'type' field is a discriminator to distinguish from PublicConfigResponse." + "type": "object" }, "ContentBlock": { + "description": "A block of content that can contain different types of content.", "properties": { - "title": { - "type": "string", - "title": "Title" + "allow_markdown": { + "default": true, + "title": "Allow Markdown", + "type": "boolean" }, "contents": { "items": { "additionalProperties": true, "type": "object" }, - "type": "array", - "title": "Contents" - }, - "allow_markdown": { - "type": "boolean", - "title": "Allow Markdown", - "default": true + "title": "Contents", + "type": "array" }, "media_url": { "anyOf": [ @@ -6956,48 +722,88 @@ } ], "title": "Media Url" + }, + "title": { + "title": "Title", + "type": "string" } }, - "type": "object", "required": [ "title", "contents" ], "title": "ContentBlock", - "description": "A block of content that can contain different types of content." + "type": "object" }, "ErrorContent": { "additionalProperties": true, "type": "object" }, + "ErrorDetail": { + "description": "Error detail schema.", + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Code" + }, + "details": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Details" + }, + "error": { + "title": "Error", + "type": "string" + } + }, + "required": [ + "error" + ], + "title": "ErrorDetail", + "type": "object" + }, "EventDeliveryType": { - "type": "string", "enum": [ "streaming", "direct", "polling" ], - "title": "EventDeliveryType" + "title": "EventDeliveryType", + "type": "string" }, "FeatureFlags": { + "additionalProperties": false, "properties": { "mvp_components": { - "type": "boolean", + "default": false, "title": "Mvp Components", - "default": false + "type": "boolean" } }, - "additionalProperties": false, - "type": "object", - "title": "FeatureFlags" + "title": "FeatureFlags", + "type": "object" }, - "Flow": { + "FlowCreate": { "properties": { - "name": { - "type": "string", - "title": "Name" + "access_type": { + "$ref": "#/components/schemas/AccessTypeEnum", + "default": "PRIVATE" }, - "description": { + "action_description": { "anyOf": [ { "type": "string" @@ -7006,9 +812,10 @@ "type": "null" } ], - "title": "Description" + "description": "The description of the action associated with the flow", + "title": "Action Description" }, - "icon": { + "action_name": { "anyOf": [ { "type": "string" @@ -7017,29 +824,8 @@ "type": "null" } ], - "title": "Icon" - }, - "icon_bg_color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Icon Bg Color" - }, - "gradient": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Gradient" + "description": "The name of the action associated with the flow", + "title": "Action Name" }, "data": { "anyOf": [ @@ -7053,42 +839,16 @@ ], "title": "Data" }, - "is_component": { + "description": { "anyOf": [ { - "type": "boolean" + "type": "string" }, { "type": "null" } ], - "title": "Is Component", - "default": false - }, - "updated_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Updated At" - }, - "webhook": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Webhook", - "description": "Can be used on the webhook endpoint", - "default": false + "title": "Description" }, "endpoint_name": { "anyOf": [ @@ -7101,96 +861,11 @@ ], "title": "Endpoint Name" }, - "tags": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Tags", - "default": [] - }, - "locked": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Locked", - "default": false - }, - "mcp_enabled": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Mcp Enabled", - "description": "Can be exposed in the MCP server", - "default": false - }, - "action_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Action Name", - "description": "The name of the action associated with the flow" - }, - "action_description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Action Description", - "description": "The description of the action associated with the flow" - }, - "access_type": { - "$ref": "#/components/schemas/AccessTypeEnum", - "default": "PRIVATE" - }, - "id": { - "type": "string", - "format": "uuid", - "title": "Id" - }, - "user_id": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "User Id" - }, "folder_id": { "anyOf": [ { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, { "type": "null" @@ -7208,22 +883,8 @@ } ], "title": "Fs Path" - } - }, - "type": "object", - "required": [ - "name", - "user_id" - ], - "title": "Flow" - }, - "FlowCreate": { - "properties": { - "name": { - "type": "string", - "title": "Name" }, - "description": { + "gradient": { "anyOf": [ { "type": "string" @@ -7232,7 +893,7 @@ "type": "null" } ], - "title": "Description" + "title": "Gradient" }, "icon": { "anyOf": [ @@ -7256,29 +917,6 @@ ], "title": "Icon Bg Color" }, - "gradient": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Gradient" - }, - "data": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Data" - }, "is_component": { "anyOf": [ { @@ -7288,22 +926,10 @@ "type": "null" } ], - "title": "Is Component", - "default": false + "default": false, + "title": "Is Component" }, - "updated_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Updated At" - }, - "webhook": { + "locked": { "anyOf": [ { "type": "boolean" @@ -7312,20 +938,25 @@ "type": "null" } ], - "title": "Webhook", - "description": "Can be used on the webhook endpoint", - "default": false + "default": false, + "title": "Locked" }, - "endpoint_name": { + "mcp_enabled": { "anyOf": [ { - "type": "string" + "type": "boolean" }, { "type": "null" } ], - "title": "Endpoint Name" + "default": false, + "description": "Can be exposed in the MCP server", + "title": "Mcp Enabled" + }, + "name": { + "title": "Name", + "type": "string" }, "tags": { "anyOf": [ @@ -7341,64 +972,23 @@ ], "title": "Tags" }, - "locked": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Locked", - "default": false - }, - "mcp_enabled": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Mcp Enabled", - "description": "Can be exposed in the MCP server", - "default": false - }, - "action_name": { + "updated_at": { "anyOf": [ { + "format": "date-time", "type": "string" }, { "type": "null" } ], - "title": "Action Name", - "description": "The name of the action associated with the flow" - }, - "action_description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Action Description", - "description": "The description of the action associated with the flow" - }, - "access_type": { - "$ref": "#/components/schemas/AccessTypeEnum", - "default": "PRIVATE" + "title": "Updated At" }, "user_id": { "anyOf": [ { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, { "type": "null" @@ -7406,53 +996,43 @@ ], "title": "User Id" }, - "folder_id": { + "webhook": { "anyOf": [ { - "type": "string", - "format": "uuid" + "type": "boolean" }, { "type": "null" } ], - "title": "Folder Id" - }, - "fs_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Fs Path" + "default": false, + "description": "Can be used on the webhook endpoint", + "title": "Webhook" } }, - "type": "object", "required": [ "name" ], - "title": "FlowCreate" + "title": "FlowCreate", + "type": "object" }, "FlowDataRequest": { "properties": { - "nodes": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Nodes" - }, "edges": { "items": { "additionalProperties": true, "type": "object" }, - "type": "array", - "title": "Edges" + "title": "Edges", + "type": "array" + }, + "nodes": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "title": "Nodes", + "type": "array" }, "viewport": { "anyOf": [ @@ -7467,52 +1047,28 @@ "title": "Viewport" } }, - "type": "object", "required": [ "nodes", "edges" ], - "title": "FlowDataRequest" + "title": "FlowDataRequest", + "type": "object" }, "FlowHeader": { + "description": "Model representing a header for a flow - Without the data.", "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Id", - "description": "Unique identifier for the flow" - }, - "name": { - "type": "string", - "title": "Name", - "description": "The name of the flow" - }, - "folder_id": { + "access_type": { "anyOf": [ { - "type": "string", - "format": "uuid" + "$ref": "#/components/schemas/AccessTypeEnum" }, { "type": "null" } ], - "title": "Folder Id", - "description": "The ID of the folder containing the flow. None if not associated with a folder" + "description": "The access type of the flow" }, - "is_component": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Is Component", - "description": "Flag indicating whether the flow is a component" - }, - "endpoint_name": { + "action_description": { "anyOf": [ { "type": "string" @@ -7521,10 +1077,10 @@ "type": "null" } ], - "title": "Endpoint Name", - "description": "The name of the endpoint associated with this flow" + "description": "The description of the action associated with the flow", + "title": "Action Description" }, - "description": { + "action_name": { "anyOf": [ { "type": "string" @@ -7533,8 +1089,8 @@ "type": "null" } ], - "title": "Description", - "description": "A description of the flow" + "description": "The name of the action associated with the flow", + "title": "Action Name" }, "data": { "anyOf": [ @@ -7546,19 +1102,80 @@ "type": "null" } ], - "title": "Data", - "description": "The data of the component, if is_component is True" + "description": "The data of the component, if is_component is True", + "title": "Data" }, - "access_type": { + "description": { "anyOf": [ { - "$ref": "#/components/schemas/AccessTypeEnum" + "type": "string" }, { "type": "null" } ], - "description": "The access type of the flow" + "description": "A description of the flow", + "title": "Description" + }, + "endpoint_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The name of the endpoint associated with this flow", + "title": "Endpoint Name" + }, + "folder_id": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The ID of the folder containing the flow. None if not associated with a folder", + "title": "Folder Id" + }, + "id": { + "description": "Unique identifier for the flow", + "format": "uuid", + "title": "Id", + "type": "string" + }, + "is_component": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Flag indicating whether the flow is a component", + "title": "Is Component" + }, + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Flag indicating whether the flow is exposed in the MCP server", + "title": "Mcp Enabled" + }, + "name": { + "description": "The name of the flow", + "title": "Name", + "type": "string" }, "tags": { "anyOf": [ @@ -7572,32 +1189,38 @@ "type": "null" } ], - "title": "Tags", - "description": "The tags of the flow" - }, - "mcp_enabled": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Mcp Enabled", - "description": "Flag indicating whether the flow is exposed in the MCP server" - }, - "action_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Action Name", - "description": "The name of the action associated with the flow" + "description": "The tags of the flow", + "title": "Tags" + } + }, + "required": [ + "id", + "name" + ], + "title": "FlowHeader", + "type": "object" + }, + "FlowListCreate": { + "properties": { + "flows": { + "items": { + "$ref": "#/components/schemas/FlowCreate" + }, + "title": "Flows", + "type": "array" + } + }, + "required": [ + "flows" + ], + "title": "FlowListCreate", + "type": "object" + }, + "FlowRead": { + "properties": { + "access_type": { + "$ref": "#/components/schemas/AccessTypeEnum", + "default": "PRIVATE" }, "action_description": { "anyOf": [ @@ -7608,39 +1231,32 @@ "type": "null" } ], - "title": "Action Description", - "description": "The description of the action associated with the flow" - } - }, - "type": "object", - "required": [ - "id", - "name" - ], - "title": "FlowHeader", - "description": "Model representing a header for a flow - Without the data." - }, - "FlowListCreate": { - "properties": { - "flows": { - "items": { - "$ref": "#/components/schemas/FlowCreate" - }, - "type": "array", - "title": "Flows" - } - }, - "type": "object", - "required": [ - "flows" - ], - "title": "FlowListCreate" - }, - "FlowRead": { - "properties": { - "name": { - "type": "string", - "title": "Name" + "description": "The description of the action associated with the flow", + "title": "Action Description" + }, + "action_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The name of the action associated with the flow", + "title": "Action Name" + }, + "data": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Data" }, "description": { "anyOf": [ @@ -7653,6 +1269,40 @@ ], "title": "Description" }, + "endpoint_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Endpoint Name" + }, + "folder_id": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Folder Id" + }, + "gradient": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Gradient" + }, "icon": { "anyOf": [ { @@ -7675,28 +1325,10 @@ ], "title": "Icon Bg Color" }, - "gradient": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Gradient" - }, - "data": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Data" + "id": { + "format": "uuid", + "title": "Id", + "type": "string" }, "is_component": { "anyOf": [ @@ -7707,22 +1339,10 @@ "type": "null" } ], - "title": "Is Component", - "default": false + "default": false, + "title": "Is Component" }, - "updated_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Updated At" - }, - "webhook": { + "locked": { "anyOf": [ { "type": "boolean" @@ -7731,20 +1351,25 @@ "type": "null" } ], - "title": "Webhook", - "description": "Can be used on the webhook endpoint", - "default": false + "default": false, + "title": "Locked" }, - "endpoint_name": { + "mcp_enabled": { "anyOf": [ { - "type": "string" + "type": "boolean" }, { "type": "null" } ], - "title": "Endpoint Name" + "default": false, + "description": "Can be exposed in the MCP server", + "title": "Mcp Enabled" + }, + "name": { + "title": "Name", + "type": "string" }, "tags": { "anyOf": [ @@ -7758,45 +1383,67 @@ "type": "null" } ], - "title": "Tags", - "description": "The tags of the flow" + "description": "The tags of the flow", + "title": "Tags" }, - "locked": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Locked", - "default": false - }, - "mcp_enabled": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Mcp Enabled", - "description": "Can be exposed in the MCP server", - "default": false - }, - "action_name": { + "updated_at": { "anyOf": [ { + "format": "date-time", "type": "string" }, { "type": "null" } ], - "title": "Action Name", - "description": "The name of the action associated with the flow" + "title": "Updated At" + }, + "user_id": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "User Id" + }, + "webhook": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": false, + "description": "Can be used on the webhook endpoint", + "title": "Webhook" + } + }, + "required": [ + "name", + "id", + "user_id", + "folder_id" + ], + "title": "FlowRead", + "type": "object" + }, + "FlowUpdate": { + "properties": { + "access_type": { + "anyOf": [ + { + "$ref": "#/components/schemas/AccessTypeEnum" + }, + { + "type": "null" + } + ] }, "action_description": { "anyOf": [ @@ -7807,55 +1454,9 @@ "type": "null" } ], - "title": "Action Description", - "description": "The description of the action associated with the flow" + "title": "Action Description" }, - "access_type": { - "$ref": "#/components/schemas/AccessTypeEnum", - "default": "PRIVATE" - }, - "id": { - "type": "string", - "format": "uuid", - "title": "Id" - }, - "user_id": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "User Id" - }, - "folder_id": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Folder Id" - } - }, - "type": "object", - "required": [ - "name", - "id", - "user_id", - "folder_id" - ], - "title": "FlowRead" - }, - "FlowUpdate": { - "properties": { - "name": { + "action_name": { "anyOf": [ { "type": "string" @@ -7864,18 +1465,7 @@ "type": "null" } ], - "title": "Name" - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Description" + "title": "Action Name" }, "data": { "anyOf": [ @@ -7889,17 +1479,16 @@ ], "title": "Data" }, - "folder_id": { + "description": { "anyOf": [ { - "type": "string", - "format": "uuid" + "type": "string" }, { "type": "null" } ], - "title": "Folder Id" + "title": "Description" }, "endpoint_name": { "anyOf": [ @@ -7912,16 +1501,28 @@ ], "title": "Endpoint Name" }, - "mcp_enabled": { + "folder_id": { "anyOf": [ { - "type": "boolean" + "format": "uuid", + "type": "string" }, { "type": "null" } ], - "title": "Mcp Enabled" + "title": "Folder Id" + }, + "fs_path": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Fs Path" }, "locked": { "anyOf": [ @@ -7934,7 +1535,18 @@ ], "title": "Locked" }, - "action_name": { + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mcp Enabled" + }, + "name": { "anyOf": [ { "type": "string" @@ -7943,61 +1555,14 @@ "type": "null" } ], - "title": "Action Name" - }, - "action_description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Action Description" - }, - "access_type": { - "anyOf": [ - { - "$ref": "#/components/schemas/AccessTypeEnum" - }, - { - "type": "null" - } - ] - }, - "fs_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Fs Path" + "title": "Name" } }, - "type": "object", - "title": "FlowUpdate" + "title": "FlowUpdate", + "type": "object" }, "FolderCreate": { "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Description" - }, "auth_settings": { "anyOf": [ { @@ -8008,15 +1573,15 @@ "type": "null" } ], - "title": "Auth Settings", - "description": "Authentication settings for the folder/project" + "description": "Authentication settings for the folder/project", + "title": "Auth Settings" }, "components_list": { "anyOf": [ { "items": { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "type": "array" }, @@ -8026,12 +1591,23 @@ ], "title": "Components List" }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, "flows_list": { "anyOf": [ { "items": { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, "type": "array" }, @@ -8040,19 +1616,32 @@ } ], "title": "Flows List" + }, + "name": { + "title": "Name", + "type": "string" } }, - "type": "object", "required": [ "name" ], - "title": "FolderCreate" + "title": "FolderCreate", + "type": "object" }, "FolderRead": { "properties": { - "name": { - "type": "string", - "title": "Name" + "auth_settings": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Authentication settings for the folder/project", + "title": "Auth Settings" }, "description": { "anyOf": [ @@ -8065,29 +1654,20 @@ ], "title": "Description" }, - "auth_settings": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Auth Settings", - "description": "Authentication settings for the folder/project" - }, "id": { - "type": "string", "format": "uuid", - "title": "Id" + "title": "Id", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" }, "parent_id": { "anyOf": [ { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, { "type": "null" @@ -8096,31 +1676,16 @@ "title": "Parent Id" } }, - "type": "object", "required": [ "name", "id", "parent_id" ], - "title": "FolderRead" + "title": "FolderRead", + "type": "object" }, "FolderReadWithFlows": { "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Description" - }, "auth_settings": { "anyOf": [ { @@ -8131,55 +1696,8 @@ "type": "null" } ], - "title": "Auth Settings", - "description": "Authentication settings for the folder/project" - }, - "id": { - "type": "string", - "format": "uuid", - "title": "Id" - }, - "parent_id": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Parent Id" - }, - "flows": { - "items": { - "$ref": "#/components/schemas/FlowRead" - }, - "type": "array", - "title": "Flows", - "default": [] - } - }, - "type": "object", - "required": [ - "name", - "id", - "parent_id" - ], - "title": "FolderReadWithFlows" - }, - "FolderUpdate": { - "properties": { - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Name" + "description": "Authentication settings for the folder/project", + "title": "Auth Settings" }, "description": { "anyOf": [ @@ -8192,34 +1710,46 @@ ], "title": "Description" }, + "flows": { + "default": [], + "items": { + "$ref": "#/components/schemas/FlowRead" + }, + "title": "Flows", + "type": "array" + }, + "id": { + "format": "uuid", + "title": "Id", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, "parent_id": { "anyOf": [ { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, { "type": "null" } ], "title": "Parent Id" - }, - "components": { - "items": { - "type": "string", - "format": "uuid" - }, - "type": "array", - "title": "Components" - }, - "flows": { - "items": { - "type": "string", - "format": "uuid" - }, - "type": "array", - "title": "Flows" - }, + } + }, + "required": [ + "name", + "id", + "parent_id" + ], + "title": "FolderReadWithFlows", + "type": "object" + }, + "FolderUpdate": { + "properties": { "auth_settings": { "anyOf": [ { @@ -8231,44 +1761,94 @@ } ], "title": "Auth Settings" + }, + "components": { + "items": { + "format": "uuid", + "type": "string" + }, + "title": "Components", + "type": "array" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "flows": { + "items": { + "format": "uuid", + "type": "string" + }, + "title": "Flows", + "type": "array" + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Name" + }, + "parent_id": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Parent Id" } }, - "type": "object", - "title": "FolderUpdate" + "title": "FolderUpdate", + "type": "object" }, "FolderWithPaginatedFlows": { "properties": { + "flows": { + "$ref": "#/components/schemas/Page_FlowRead_" + }, "folder": { "$ref": "#/components/schemas/FolderRead" - }, - "flows": { - "$ref": "#/components/schemas/Page_Flow_" } }, - "type": "object", "required": [ "folder", "flows" ], - "title": "FolderWithPaginatedFlows" + "title": "FolderWithPaginatedFlows", + "type": "object" }, "GraphData": { "properties": { - "nodes": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Nodes" - }, "edges": { "items": { "additionalProperties": true, "type": "object" }, - "type": "array", - "title": "Edges" + "title": "Edges", + "type": "array" + }, + "nodes": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "title": "Nodes", + "type": "array" }, "viewport": { "anyOf": [ @@ -8281,18 +1861,40 @@ ] } }, - "type": "object", "required": [ "nodes", "edges" ], - "title": "GraphData" + "title": "GraphData", + "type": "object" }, "GraphDumpResponse": { "properties": { "data": { "$ref": "#/components/schemas/GraphData" }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "endpoint_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Endpoint Name" + }, "is_component": { "anyOf": [ { @@ -8314,35 +1916,13 @@ } ], "title": "Name" - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Description" - }, - "endpoint_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Endpoint Name" } }, - "type": "object", "required": [ "data" ], - "title": "GraphDumpResponse" + "title": "GraphDumpResponse", + "type": "object" }, "HTTPValidationError": { "properties": { @@ -8350,107 +1930,36 @@ "items": { "$ref": "#/components/schemas/ValidationError" }, - "type": "array", - "title": "Detail" + "title": "Detail", + "type": "array" } }, - "type": "object", - "title": "HTTPValidationError" + "title": "HTTPValidationError", + "type": "object" }, "HealthResponse": { "properties": { - "status": { - "type": "string", - "title": "Status", - "default": "nok" - }, "chat": { - "type": "string", + "default": "error check the server logs", "title": "Chat", - "default": "error check the server logs" + "type": "string" }, "db": { - "type": "string", + "default": "error check the server logs", "title": "Db", - "default": "error check the server logs" + "type": "string" + }, + "status": { + "default": "nok", + "title": "Status", + "type": "string" } }, - "type": "object", - "title": "HealthResponse" + "title": "HealthResponse", + "type": "object" }, "InputValueRequest": { - "properties": { - "components": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Components", - "default": [] - }, - "input_value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Input Value" - }, - "session": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Session" - }, - "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "chat", - "text", - "any" - ] - }, - { - "type": "null" - } - ], - "title": "Type", - "description": "Defines on which components the input value should be applied. 'any' applies to all input components.", - "default": "any" - }, - "client_request_time": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Client Request Time", - "description": "Client-side timestamp in milliseconds when the request was initiated. Used to calculate accurate end-to-end duration." - } - }, "additionalProperties": false, - "type": "object", - "title": "InputValueRequest", "examples": [ { "components": [ @@ -8488,26 +1997,110 @@ "input_value": "{\"key\": \"value\"}", "type": "json" } - ] + ], + "properties": { + "client_request_time": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "Client-side timestamp in milliseconds when the request was initiated. Used to calculate accurate end-to-end duration.", + "title": "Client Request Time" + }, + "components": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": [], + "title": "Components" + }, + "input_value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Input Value" + }, + "session": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session" + }, + "type": { + "anyOf": [ + { + "enum": [ + "chat", + "text", + "any" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": "any", + "description": "Defines on which components the input value should be applied. 'any' applies to all input components.", + "title": "Type" + } + }, + "title": "InputValueRequest", + "type": "object" }, "JSONContent": { "additionalProperties": true, "type": "object" }, + "JobStatus": { + "description": "Job execution status.", + "enum": [ + "queued", + "in_progress", + "completed", + "failed", + "cancelled", + "timed_out" + ], + "title": "JobStatus", + "type": "string" + }, "MCPInstallRequest": { "properties": { "client": { - "type": "string", - "title": "Client" + "title": "Client", + "type": "string" }, "transport": { "anyOf": [ { - "type": "string", "enum": [ "sse", "streamablehttp" - ] + ], + "type": "string" }, { "type": "null" @@ -8516,21 +2109,15 @@ "title": "Transport" } }, - "type": "object", "required": [ "client" ], - "title": "MCPInstallRequest" + "title": "MCPInstallRequest", + "type": "object" }, "MCPProjectUpdateRequest": { + "description": "Request model for updating MCP project settings including auth.", "properties": { - "settings": { - "items": { - "$ref": "#/components/schemas/MCPSettings" - }, - "type": "array", - "title": "Settings" - }, "auth_settings": { "anyOf": [ { @@ -8540,28 +2127,25 @@ "type": "null" } ] + }, + "settings": { + "items": { + "$ref": "#/components/schemas/MCPSettings" + }, + "title": "Settings", + "type": "array" } }, - "type": "object", "required": [ "settings" ], "title": "MCPProjectUpdateRequest", - "description": "Request model for updating MCP project settings including auth." + "type": "object" }, "MCPServerConfig": { + "additionalProperties": true, + "description": "Pydantic model for MCP server configuration.", "properties": { - "command": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Command" - }, "args": { "anyOf": [ { @@ -8576,6 +2160,17 @@ ], "title": "Args" }, + "command": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Command" + }, "env": { "anyOf": [ { @@ -8616,28 +2211,22 @@ "title": "Url" } }, - "additionalProperties": true, - "type": "object", "title": "MCPServerConfig", - "description": "Pydantic model for MCP server configuration." + "type": "object" }, "MCPSettings": { + "description": "Model representing MCP settings for a flow.", "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Id" - }, - "mcp_enabled": { + "action_description": { "anyOf": [ { - "type": "boolean" + "type": "string" }, { "type": "null" } ], - "title": "Mcp Enabled" + "title": "Action Description" }, "action_name": { "anyOf": [ @@ -8650,7 +2239,7 @@ ], "title": "Action Name" }, - "action_description": { + "description": { "anyOf": [ { "type": "string" @@ -8659,7 +2248,23 @@ "type": "null" } ], - "title": "Action Description" + "title": "Description" + }, + "id": { + "format": "uuid", + "title": "Id", + "type": "string" + }, + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mcp Enabled" }, "name": { "anyOf": [ @@ -8671,25 +2276,13 @@ } ], "title": "Name" - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Description" } }, - "type": "object", "required": [ "id" ], "title": "MCPSettings", - "description": "Model representing MCP settings for a flow." + "type": "object" }, "MediaContent": { "additionalProperties": true, @@ -8697,22 +2290,17 @@ }, "MessageRead": { "properties": { - "timestamp": { - "type": "string", - "format": "date-time", - "title": "Timestamp" + "category": { + "default": "message", + "title": "Category", + "type": "string" }, - "sender": { - "type": "string", - "title": "Sender" - }, - "sender_name": { - "type": "string", - "title": "Sender Name" - }, - "session_id": { - "type": "string", - "title": "Session Id" + "content_blocks": { + "items": { + "$ref": "#/components/schemas/ContentBlock" + }, + "title": "Content Blocks", + "type": "array" }, "context_id": { "anyOf": [ @@ -8725,61 +2313,65 @@ ], "title": "Context Id" }, - "text": { - "type": "string", - "title": "Text" + "edit": { + "default": false, + "title": "Edit", + "type": "boolean" + }, + "error": { + "default": false, + "title": "Error", + "type": "boolean" }, "files": { "items": { "type": "string" }, - "type": "array", - "title": "Files" - }, - "error": { - "type": "boolean", - "title": "Error", - "default": false - }, - "edit": { - "type": "boolean", - "title": "Edit", - "default": false - }, - "properties": { - "$ref": "#/components/schemas/Properties" - }, - "category": { - "type": "string", - "title": "Category", - "default": "message" - }, - "content_blocks": { - "items": { - "$ref": "#/components/schemas/ContentBlock" - }, - "type": "array", - "title": "Content Blocks" - }, - "id": { - "type": "string", - "format": "uuid", - "title": "Id" + "title": "Files", + "type": "array" }, "flow_id": { "anyOf": [ { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, { "type": "null" } ], "title": "Flow Id" + }, + "id": { + "format": "uuid", + "title": "Id", + "type": "string" + }, + "properties": { + "$ref": "#/components/schemas/Properties" + }, + "sender": { + "title": "Sender", + "type": "string" + }, + "sender_name": { + "title": "Sender Name", + "type": "string" + }, + "session_id": { + "title": "Session Id", + "type": "string" + }, + "text": { + "title": "Text", + "type": "string" + }, + "timestamp": { + "format": "date-time", + "title": "Timestamp", + "type": "string" } }, - "type": "object", "required": [ "sender", "sender_name", @@ -8788,102 +2380,11 @@ "id", "flow_id" ], - "title": "MessageRead" + "title": "MessageRead", + "type": "object" }, "MessageResponse": { "properties": { - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Id" - }, - "flow_id": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Flow Id" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "title": "Timestamp" - }, - "sender": { - "type": "string", - "title": "Sender" - }, - "sender_name": { - "type": "string", - "title": "Sender Name" - }, - "session_id": { - "type": "string", - "title": "Session Id" - }, - "context_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Context Id" - }, - "text": { - "type": "string", - "title": "Text" - }, - "files": { - "items": { - "type": "string" - }, - "type": "array", - "title": "Files", - "default": [] - }, - "edit": { - "type": "boolean", - "title": "Edit" - }, - "duration": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "title": "Duration" - }, - "properties": { - "anyOf": [ - { - "$ref": "#/components/schemas/Properties" - }, - { - "type": "null" - } - ] - }, "category": { "anyOf": [ { @@ -8908,21 +2409,8 @@ } ], "title": "Content Blocks" - } - }, - "type": "object", - "required": [ - "sender", - "sender_name", - "session_id", - "text", - "edit" - ], - "title": "MessageResponse" - }, - "MessageUpdate": { - "properties": { - "text": { + }, + "context_id": { "anyOf": [ { "type": "string" @@ -8931,7 +2419,158 @@ "type": "null" } ], - "title": "Text" + "title": "Context Id" + }, + "duration": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Duration" + }, + "edit": { + "title": "Edit", + "type": "boolean" + }, + "files": { + "default": [], + "items": { + "type": "string" + }, + "title": "Files", + "type": "array" + }, + "flow_id": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Flow Id" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Id" + }, + "properties": { + "anyOf": [ + { + "$ref": "#/components/schemas/Properties" + }, + { + "type": "null" + } + ] + }, + "sender": { + "title": "Sender", + "type": "string" + }, + "sender_name": { + "title": "Sender Name", + "type": "string" + }, + "session_id": { + "title": "Session Id", + "type": "string" + }, + "text": { + "title": "Text", + "type": "string" + }, + "timestamp": { + "format": "date-time", + "title": "Timestamp", + "type": "string" + } + }, + "required": [ + "sender", + "sender_name", + "session_id", + "text", + "edit" + ], + "title": "MessageResponse", + "type": "object" + }, + "MessageUpdate": { + "properties": { + "context_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Context Id" + }, + "edit": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Edit" + }, + "error": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Error" + }, + "files": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Files" + }, + "properties": { + "anyOf": [ + { + "$ref": "#/components/schemas/Properties" + }, + { + "type": "null" + } + ] }, "sender": { "anyOf": [ @@ -8966,7 +2605,7 @@ ], "title": "Session Id" }, - "context_id": { + "text": { "anyOf": [ { "type": "string" @@ -8975,106 +2614,20 @@ "type": "null" } ], - "title": "Context Id" - }, - "files": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Files" - }, - "edit": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Edit" - }, - "error": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Error" - }, - "properties": { - "anyOf": [ - { - "$ref": "#/components/schemas/Properties" - }, - { - "type": "null" - } - ] + "title": "Text" } }, - "type": "object", - "title": "MessageUpdate" + "title": "MessageUpdate", + "type": "object" }, "OpenAIResponsesRequest": { + "description": "OpenAI-compatible responses request with flow_id as model parameter.", "properties": { - "model": { - "type": "string", - "title": "Model", - "description": "The flow ID to execute (used instead of OpenAI model)" - }, - "input": { - "type": "string", - "title": "Input", - "description": "The input text to process" - }, - "stream": { - "type": "boolean", - "title": "Stream", - "description": "Whether to stream the response", - "default": false - }, "background": { - "type": "boolean", - "title": "Background", + "default": false, "description": "Whether to process in background", - "default": false - }, - "tools": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Tools", - "description": "Tools are not supported yet" - }, - "previous_response_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Previous Response Id", - "description": "ID of previous response to continue conversation" + "title": "Background", + "type": "boolean" }, "include": { "anyOf": [ @@ -9088,141 +2641,20 @@ "type": "null" } ], - "title": "Include", - "description": "Additional response data to include, e.g., ['tool_call.results']" - } - }, - "type": "object", - "required": [ - "model", - "input" - ], - "title": "OpenAIResponsesRequest", - "description": "OpenAI-compatible responses request with flow_id as model parameter." - }, - "Page_FlowRead_": { - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/FlowRead" - }, - "type": "array", - "title": "Items" + "description": "Additional response data to include, e.g., ['tool_call.results']", + "title": "Include" }, - "total": { - "type": "integer", - "minimum": 0.0, - "title": "Total" + "input": { + "description": "The input text to process", + "title": "Input", + "type": "string" }, - "page": { - "type": "integer", - "minimum": 1.0, - "title": "Page" + "model": { + "description": "The flow ID to execute (used instead of OpenAI model)", + "title": "Model", + "type": "string" }, - "size": { - "type": "integer", - "minimum": 1.0, - "title": "Size" - }, - "pages": { - "type": "integer", - "minimum": 0.0, - "title": "Pages" - } - }, - "type": "object", - "required": [ - "items", - "total", - "page", - "size", - "pages" - ], - "title": "Page[FlowRead]" - }, - "Page_Flow_": { - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Flow" - }, - "type": "array", - "title": "Items" - }, - "total": { - "type": "integer", - "minimum": 0.0, - "title": "Total" - }, - "page": { - "type": "integer", - "minimum": 1.0, - "title": "Page" - }, - "size": { - "type": "integer", - "minimum": 1.0, - "title": "Size" - }, - "pages": { - "type": "integer", - "minimum": 0.0, - "title": "Pages" - } - }, - "type": "object", - "required": [ - "items", - "total", - "page", - "size", - "pages" - ], - "title": "Page[Flow]" - }, - "Page_TransactionLogsResponse_": { - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/TransactionLogsResponse" - }, - "type": "array", - "title": "Items" - }, - "total": { - "type": "integer", - "minimum": 0.0, - "title": "Total" - }, - "page": { - "type": "integer", - "minimum": 1.0, - "title": "Page" - }, - "size": { - "type": "integer", - "minimum": 1.0, - "title": "Size" - }, - "pages": { - "type": "integer", - "minimum": 0.0, - "title": "Pages" - } - }, - "type": "object", - "required": [ - "items", - "total", - "page", - "size", - "pages" - ], - "title": "Page[TransactionLogsResponse]" - }, - "Properties": { - "properties": { - "text_color": { + "previous_response_id": { "anyOf": [ { "type": "string" @@ -9231,7 +2663,122 @@ "type": "null" } ], - "title": "Text Color" + "description": "ID of previous response to continue conversation", + "title": "Previous Response Id" + }, + "stream": { + "default": false, + "description": "Whether to stream the response", + "title": "Stream", + "type": "boolean" + }, + "tools": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "Tools are not supported yet", + "title": "Tools" + } + }, + "required": [ + "model", + "input" + ], + "title": "OpenAIResponsesRequest", + "type": "object" + }, + "Page_FlowRead_": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/FlowRead" + }, + "title": "Items", + "type": "array" + }, + "page": { + "minimum": 1.0, + "title": "Page", + "type": "integer" + }, + "pages": { + "minimum": 0.0, + "title": "Pages", + "type": "integer" + }, + "size": { + "minimum": 1.0, + "title": "Size", + "type": "integer" + }, + "total": { + "minimum": 0.0, + "title": "Total", + "type": "integer" + } + }, + "required": [ + "items", + "total", + "page", + "size", + "pages" + ], + "title": "Page[FlowRead]", + "type": "object" + }, + "Page_TransactionLogsResponse_": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/TransactionLogsResponse" + }, + "title": "Items", + "type": "array" + }, + "page": { + "minimum": 1.0, + "title": "Page", + "type": "integer" + }, + "pages": { + "minimum": 0.0, + "title": "Pages", + "type": "integer" + }, + "size": { + "minimum": 1.0, + "title": "Size", + "type": "integer" + }, + "total": { + "minimum": 0.0, + "title": "Total", + "type": "integer" + } + }, + "required": [ + "items", + "total", + "page", + "size", + "pages" + ], + "title": "Page[TransactionLogsResponse]", + "type": "object" + }, + "Properties": { + "properties": { + "allow_markdown": { + "default": false, + "title": "Allow Markdown", + "type": "boolean" }, "background_color": { "anyOf": [ @@ -9244,13 +2791,21 @@ ], "title": "Background Color" }, - "edited": { - "type": "boolean", - "title": "Edited", - "default": false + "build_duration": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Build Duration" }, - "source": { - "$ref": "#/components/schemas/Source" + "edited": { + "default": false, + "title": "Edited", + "type": "boolean" }, "icon": { "anyOf": [ @@ -9263,11 +2818,6 @@ ], "title": "Icon" }, - "allow_markdown": { - "type": "boolean", - "title": "Allow Markdown", - "default": false - }, "positive_feedback": { "anyOf": [ { @@ -9279,20 +2829,34 @@ ], "title": "Positive Feedback" }, + "source": { + "$ref": "#/components/schemas/Source" + }, "state": { - "type": "string", + "default": "complete", "enum": [ "partial", "complete" ], "title": "State", - "default": "complete" + "type": "string" }, "targets": { + "default": [], "items": {}, - "type": "array", "title": "Targets", - "default": [] + "type": "array" + }, + "text_color": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Text Color" }, "usage": { "anyOf": [ @@ -9303,53 +2867,42 @@ "type": "null" } ] - }, - "build_duration": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "title": "Build Duration" } }, - "type": "object", - "title": "Properties" + "title": "Properties", + "type": "object" }, "PublicConfigResponse": { + "description": "Configuration response for public/unauthenticated endpoints like the public playground.\n\nContains only the configuration values needed for public features, without sensitive data.\nThe 'type' field is a discriminator to distinguish from full ConfigResponse.", "properties": { - "max_file_size_upload": { - "type": "integer", - "title": "Max File Size Upload" - }, "event_delivery": { - "type": "string", "enum": [ "polling", "streaming", "direct" ], - "title": "Event Delivery" - }, - "voice_mode_available": { - "type": "boolean", - "title": "Voice Mode Available" + "title": "Event Delivery", + "type": "string" }, "frontend_timeout": { - "type": "integer", - "title": "Frontend Timeout" + "title": "Frontend Timeout", + "type": "integer" + }, + "max_file_size_upload": { + "title": "Max File Size Upload", + "type": "integer" }, "type": { - "type": "string", "const": "public", + "default": "public", "title": "Type", - "default": "public" + "type": "string" + }, + "voice_mode_available": { + "title": "Voice Mode Available", + "type": "boolean" } }, - "type": "object", "required": [ "max_file_size_upload", "event_delivery", @@ -9357,19 +2910,10 @@ "frontend_timeout" ], "title": "PublicConfigResponse", - "description": "Configuration response for public/unauthenticated endpoints like the public playground.\n\nContains only the configuration values needed for public features, without sensitive data.\nThe 'type' field is a discriminator to distinguish from full ConfigResponse." + "type": "object" }, "ResultData": { "properties": { - "results": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "title": "Results" - }, "artifacts": { "anyOf": [ {}, @@ -9379,17 +2923,38 @@ ], "title": "Artifacts" }, - "outputs": { + "component_display_name": { "anyOf": [ { - "additionalProperties": true, - "type": "object" + "type": "string" }, { "type": "null" } ], - "title": "Outputs" + "title": "Component Display Name" + }, + "component_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Component Id" + }, + "duration": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Duration" }, "logs": { "anyOf": [ @@ -9417,6 +2982,27 @@ ], "title": "Messages" }, + "outputs": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Outputs" + }, + "results": { + "anyOf": [ + {}, + { + "type": "null" + } + ], + "title": "Results" + }, "timedelta": { "anyOf": [ { @@ -9428,39 +3014,6 @@ ], "title": "Timedelta" }, - "duration": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Duration" - }, - "component_display_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Component Display Name" - }, - "component_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Component Id" - }, "used_frozen_result": { "anyOf": [ { @@ -9470,19 +3023,19 @@ "type": "null" } ], - "title": "Used Frozen Result", - "default": false + "default": false, + "title": "Used Frozen Result" } }, - "type": "object", - "title": "ResultData" + "title": "ResultData", + "type": "object" }, "RunOutputs": { "properties": { "inputs": { "additionalProperties": true, - "type": "object", - "title": "Inputs" + "title": "Inputs", + "type": "object" }, "outputs": { "items": { @@ -9495,14 +3048,15 @@ } ] }, - "type": "array", - "title": "Outputs" + "title": "Outputs", + "type": "array" } }, - "type": "object", - "title": "RunOutputs" + "title": "RunOutputs", + "type": "object" }, "RunResponse": { + "description": "Run response schema.", "properties": { "outputs": { "anyOf": [ @@ -9516,8 +3070,8 @@ "type": "null" } ], - "title": "Outputs", - "default": [] + "default": [], + "title": "Outputs" }, "session_id": { "anyOf": [ @@ -9531,12 +3085,29 @@ "title": "Session Id" } }, - "type": "object", "title": "RunResponse", - "description": "Run response schema." + "type": "object" }, "SimplifiedAPIRequest": { "properties": { + "input_type": { + "anyOf": [ + { + "enum": [ + "chat", + "text", + "any" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": "chat", + "description": "The input type", + "title": "Input Type" + }, "input_value": { "anyOf": [ { @@ -9546,45 +3117,8 @@ "type": "null" } ], - "title": "Input Value", - "description": "The input value" - }, - "input_type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "chat", - "text", - "any" - ] - }, - { - "type": "null" - } - ], - "title": "Input Type", - "description": "The input type", - "default": "chat" - }, - "output_type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "chat", - "text", - "any", - "debug" - ] - }, - { - "type": "null" - } - ], - "title": "Output Type", - "description": "The output type", - "default": "chat" + "description": "The input value", + "title": "Input Value" }, "output_component": { "anyOf": [ @@ -9595,9 +3129,40 @@ "type": "null" } ], - "title": "Output Component", + "default": "", "description": "If there are multiple output components, you can specify the component to get the output from.", - "default": "" + "title": "Output Component" + }, + "output_type": { + "anyOf": [ + { + "enum": [ + "chat", + "text", + "any", + "debug" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": "chat", + "description": "The output type", + "title": "Output Type" + }, + "session_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The session id", + "title": "Session Id" }, "tweaks": { "anyOf": [ @@ -9609,37 +3174,13 @@ } ], "description": "The tweaks" - }, - "session_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Session Id", - "description": "The session id" } }, - "type": "object", - "title": "SimplifiedAPIRequest" + "title": "SimplifiedAPIRequest", + "type": "object" }, "Source": { "properties": { - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Id", - "description": "The id of the source component." - }, "display_name": { "anyOf": [ { @@ -9649,8 +3190,20 @@ "type": "null" } ], - "title": "Display Name", - "description": "The display name of the source component." + "description": "The display name of the source component.", + "title": "Display Name" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The id of the source component.", + "title": "Id" }, "source": { "anyOf": [ @@ -9661,47 +3214,28 @@ "type": "null" } ], - "title": "Source", - "description": "The source of the message. Normally used to display the model name (e.g. 'gpt-4o')" + "description": "The source of the message. Normally used to display the model name (e.g. 'gpt-4o')", + "title": "Source" } }, - "type": "object", - "title": "Source" + "title": "Source", + "type": "object" }, "SpanReadResponse": { + "description": "Response model for a single span, with nested children.\n\nSerializes to camelCase JSON to match the frontend API contract.", "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "type": { - "$ref": "#/components/schemas/SpanType" - }, - "status": { - "$ref": "#/components/schemas/SpanStatus" - }, - "startTime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Starttime" + "children": { + "items": { + "$ref": "#/components/schemas/SpanReadResponse" + }, + "title": "Children", + "type": "array" }, "endTime": { "anyOf": [ { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, { "type": "null" @@ -9709,9 +3243,21 @@ ], "title": "Endtime" }, - "latencyMs": { - "type": "integer", - "title": "Latencyms" + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Error" + }, + "id": { + "format": "uuid", + "title": "Id", + "type": "string" }, "inputs": { "anyOf": [ @@ -9725,6 +3271,25 @@ ], "title": "Inputs" }, + "latencyMs": { + "title": "Latencyms", + "type": "integer" + }, + "modelName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Modelname" + }, + "name": { + "title": "Name", + "type": "string" + }, "outputs": { "anyOf": [ { @@ -9737,27 +3302,20 @@ ], "title": "Outputs" }, - "error": { + "startTime": { "anyOf": [ { + "format": "date-time", "type": "string" }, { "type": "null" } ], - "title": "Error" + "title": "Starttime" }, - "modelName": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Modelname" + "status": { + "$ref": "#/components/schemas/SpanStatus" }, "tokenUsage": { "anyOf": [ @@ -9771,15 +3329,10 @@ ], "title": "Tokenusage" }, - "children": { - "items": { - "$ref": "#/components/schemas/SpanReadResponse" - }, - "type": "array", - "title": "Children" + "type": { + "$ref": "#/components/schemas/SpanType" } }, - "type": "object", "required": [ "id", "name", @@ -9795,20 +3348,20 @@ "tokenUsage" ], "title": "SpanReadResponse", - "description": "Response model for a single span, with nested children.\n\nSerializes to camelCase JSON to match the frontend API contract." + "type": "object" }, "SpanStatus": { - "type": "string", + "description": "OpenTelemetry status codes.\n\n- UNSET: Default status, span has not ended yet\n- OK: Span completed successfully\n- ERROR: Span completed with an error", "enum": [ "unset", "ok", "error" ], "title": "SpanStatus", - "description": "OpenTelemetry status codes.\n\n- UNSET: Default status, span has not ended yet\n- OK: Span completed successfully\n- ERROR: Span completed with an error" + "type": "string" }, "SpanType": { - "type": "string", + "description": "Types of spans that can be recorded.", "enum": [ "chain", "llm", @@ -9819,7 +3372,7 @@ "agent" ], "title": "SpanType", - "description": "Types of spans that can be recorded." + "type": "string" }, "TextContent": { "additionalProperties": true, @@ -9830,63 +3383,40 @@ "type": "object" }, "TraceListResponse": { + "description": "Paginated list response for traces.", "properties": { + "pages": { + "title": "Pages", + "type": "integer" + }, + "total": { + "title": "Total", + "type": "integer" + }, "traces": { "items": { "$ref": "#/components/schemas/TraceSummaryRead" }, - "type": "array", - "title": "Traces" - }, - "total": { - "type": "integer", - "title": "Total" - }, - "pages": { - "type": "integer", - "title": "Pages" + "title": "Traces", + "type": "array" } }, - "type": "object", "required": [ "traces", "total", "pages" ], "title": "TraceListResponse", - "description": "Paginated list response for traces." + "type": "object" }, "TraceRead": { + "description": "Response model for a single trace with its hierarchical span tree.\n\nSerializes to camelCase JSON to match the frontend API contract.", "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "status": { - "$ref": "#/components/schemas/SpanStatus" - }, - "startTime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Starttime" - }, "endTime": { "anyOf": [ { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, { "type": "null" @@ -9894,22 +3424,15 @@ ], "title": "Endtime" }, - "totalLatencyMs": { - "type": "integer", - "title": "Totallatencyms" - }, - "totalTokens": { - "type": "integer", - "title": "Totaltokens" - }, "flowId": { - "type": "string", "format": "uuid", - "title": "Flowid" + "title": "Flowid", + "type": "string" }, - "sessionId": { - "type": "string", - "title": "Sessionid" + "id": { + "format": "uuid", + "title": "Id", + "type": "string" }, "input": { "anyOf": [ @@ -9923,6 +3446,10 @@ ], "title": "Input" }, + "name": { + "title": "Name", + "type": "string" + }, "output": { "anyOf": [ { @@ -9935,15 +3462,41 @@ ], "title": "Output" }, + "sessionId": { + "title": "Sessionid", + "type": "string" + }, "spans": { "items": { "$ref": "#/components/schemas/SpanReadResponse" }, - "type": "array", - "title": "Spans" + "title": "Spans", + "type": "array" + }, + "startTime": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Starttime" + }, + "status": { + "$ref": "#/components/schemas/SpanStatus" + }, + "totalLatencyMs": { + "title": "Totallatencyms", + "type": "integer" + }, + "totalTokens": { + "title": "Totaltokens", + "type": "integer" } }, - "type": "object", "required": [ "id", "name", @@ -9956,50 +3509,20 @@ "sessionId" ], "title": "TraceRead", - "description": "Response model for a single trace with its hierarchical span tree.\n\nSerializes to camelCase JSON to match the frontend API contract." + "type": "object" }, "TraceSummaryRead": { + "description": "Lightweight trace model for list endpoint.\n\nSerializes to camelCase JSON to match the frontend API contract.", "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Id" - }, - "name": { - "type": "string", - "title": "Name" - }, - "status": { - "$ref": "#/components/schemas/SpanStatus" - }, - "startTime": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Starttime" - }, - "totalLatencyMs": { - "type": "integer", - "title": "Totallatencyms" - }, - "totalTokens": { - "type": "integer", - "title": "Totaltokens" - }, "flowId": { - "type": "string", "format": "uuid", - "title": "Flowid" + "title": "Flowid", + "type": "string" }, - "sessionId": { - "type": "string", - "title": "Sessionid" + "id": { + "format": "uuid", + "title": "Id", + "type": "string" }, "input": { "anyOf": [ @@ -10013,6 +3536,10 @@ ], "title": "Input" }, + "name": { + "title": "Name", + "type": "string" + }, "output": { "anyOf": [ { @@ -10024,9 +3551,35 @@ } ], "title": "Output" + }, + "sessionId": { + "title": "Sessionid", + "type": "string" + }, + "startTime": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Starttime" + }, + "status": { + "$ref": "#/components/schemas/SpanStatus" + }, + "totalLatencyMs": { + "title": "Totallatencyms", + "type": "integer" + }, + "totalTokens": { + "title": "Totaltokens", + "type": "integer" } }, - "type": "object", "required": [ "id", "name", @@ -10038,23 +3591,29 @@ "sessionId" ], "title": "TraceSummaryRead", - "description": "Lightweight trace model for list endpoint.\n\nSerializes to camelCase JSON to match the frontend API contract." + "type": "object" }, "TransactionLogsResponse": { + "description": "Transaction response model for logs view - excludes error and flow_id fields.", "properties": { "id": { - "type": "string", "format": "uuid", - "title": "Id" + "title": "Id", + "type": "string" }, - "timestamp": { - "type": "string", - "format": "date-time", - "title": "Timestamp" + "inputs": { + "additionalProperties": true, + "title": "Inputs", + "type": "object" }, - "vertex_id": { - "type": "string", - "title": "Vertex Id" + "outputs": { + "additionalProperties": true, + "title": "Outputs", + "type": "object" + }, + "status": { + "title": "Status", + "type": "string" }, "target_id": { "anyOf": [ @@ -10067,29 +3626,23 @@ ], "title": "Target Id" }, - "inputs": { - "additionalProperties": true, - "type": "object", - "title": "Inputs" + "timestamp": { + "format": "date-time", + "title": "Timestamp", + "type": "string" }, - "outputs": { - "additionalProperties": true, - "type": "object", - "title": "Outputs" - }, - "status": { - "type": "string", - "title": "Status" + "vertex_id": { + "title": "Vertex Id", + "type": "string" } }, - "type": "object", "required": [ "id", "vertex_id", "status" ], "title": "TransactionLogsResponse", - "description": "Transaction response model for logs view - excludes error and flow_id fields." + "type": "object" }, "Tweaks": { "additionalProperties": { @@ -10103,8 +3656,6 @@ } ] }, - "type": "object", - "title": "Tweaks", "description": "A dictionary of tweaks to adjust the flow's execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.", "examples": [ { @@ -10116,9 +3667,12 @@ }, "parameter_name": "value" } - ] + ], + "title": "Tweaks", + "type": "object" }, "Usage": { + "description": "Token usage information from LLM responses.", "properties": { "input_tokens": { "anyOf": [ @@ -10154,19 +3708,75 @@ "title": "Total Tokens" } }, - "type": "object", "title": "Usage", - "description": "Token usage information from LLM responses." + "type": "object" }, "UserCreate": { "properties": { - "username": { - "type": "string", - "title": "Username" + "optins": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": { + "dialog_dismissed": false, + "discord_clicked": false, + "github_starred": false + }, + "title": "Optins" }, "password": { - "type": "string", - "title": "Password" + "title": "Password", + "type": "string" + }, + "username": { + "title": "Username", + "type": "string" + } + }, + "required": [ + "username", + "password" + ], + "title": "UserCreate", + "type": "object" + }, + "UserRead": { + "properties": { + "create_at": { + "format": "date-time", + "title": "Create At", + "type": "string" + }, + "id": { + "format": "uuid", + "title": "Id", + "type": "string" + }, + "is_active": { + "title": "Is Active", + "type": "boolean" + }, + "is_superuser": { + "title": "Is Superuser", + "type": "boolean" + }, + "last_login_at": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Last Login At" }, "optins": { "anyOf": [ @@ -10178,31 +3788,7 @@ "type": "null" } ], - "title": "Optins", - "default": { - "github_starred": false, - "dialog_dismissed": false, - "discord_clicked": false - } - } - }, - "type": "object", - "required": [ - "username", - "password" - ], - "title": "UserCreate" - }, - "UserRead": { - "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Id" - }, - "username": { - "type": "string", - "title": "Username" + "title": "Optins" }, "profile_image": { "anyOf": [ @@ -10226,29 +3812,58 @@ ], "title": "Store Api Key" }, + "updated_at": { + "format": "date-time", + "title": "Updated At", + "type": "string" + }, + "username": { + "title": "Username", + "type": "string" + } + }, + "required": [ + "username", + "profile_image", + "store_api_key", + "is_active", + "is_superuser", + "create_at", + "updated_at", + "last_login_at" + ], + "title": "UserRead", + "type": "object" + }, + "UserUpdate": { + "properties": { "is_active": { - "type": "boolean", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], "title": "Is Active" }, "is_superuser": { - "type": "boolean", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], "title": "Is Superuser" }, - "create_at": { - "type": "string", - "format": "date-time", - "title": "Create At" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "title": "Updated At" - }, "last_login_at": { "anyOf": [ { - "type": "string", - "format": "date-time" + "format": "date-time", + "type": "string" }, { "type": "null" @@ -10267,44 +3882,6 @@ } ], "title": "Optins" - } - }, - "type": "object", - "required": [ - "username", - "profile_image", - "store_api_key", - "is_active", - "is_superuser", - "create_at", - "updated_at", - "last_login_at" - ], - "title": "UserRead" - }, - "UserUpdate": { - "properties": { - "username": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Username" - }, - "profile_image": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Profile Image" }, "password": { "anyOf": [ @@ -10317,79 +3894,62 @@ ], "title": "Password" }, - "is_active": { + "profile_image": { "anyOf": [ { - "type": "boolean" + "type": "string" }, { "type": "null" } ], - "title": "Is Active" + "title": "Profile Image" }, - "is_superuser": { + "username": { "anyOf": [ { - "type": "boolean" + "type": "string" }, { "type": "null" } ], - "title": "Is Superuser" - }, - "last_login_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Last Login At" - }, - "optins": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Optins" + "title": "Username" } }, - "type": "object", - "title": "UserUpdate" + "title": "UserUpdate", + "type": "object" }, "UsersResponse": { "properties": { "total_count": { - "type": "integer", - "title": "Total Count" + "title": "Total Count", + "type": "integer" }, "users": { "items": { "$ref": "#/components/schemas/UserRead" }, - "type": "array", - "title": "Users" + "title": "Users", + "type": "array" } }, - "type": "object", "required": [ "total_count", "users" ], - "title": "UsersResponse" + "title": "UsersResponse", + "type": "object" }, "ValidationError": { "properties": { + "ctx": { + "title": "Context", + "type": "object" + }, + "input": { + "title": "Input" + }, "loc": { "items": { "anyOf": [ @@ -10401,32 +3961,25 @@ } ] }, - "type": "array", - "title": "Location" + "title": "Location", + "type": "array" }, "msg": { - "type": "string", - "title": "Message" + "title": "Message", + "type": "string" }, "type": { - "type": "string", - "title": "Error Type" - }, - "input": { - "title": "Input" - }, - "ctx": { - "type": "object", - "title": "Context" + "title": "Error Type", + "type": "string" } }, - "type": "object", "required": [ "loc", "msg", "type" ], - "title": "ValidationError" + "title": "ValidationError", + "type": "object" }, "VertexBuildMapModel": { "properties": { @@ -10437,55 +3990,54 @@ }, "type": "array" }, - "type": "object", - "title": "Vertex Builds" + "title": "Vertex Builds", + "type": "object" } }, - "type": "object", "required": [ "vertex_builds" ], - "title": "VertexBuildMapModel" + "title": "VertexBuildMapModel", + "type": "object" }, "VertexBuildTable": { "properties": { - "timestamp": { - "type": "string", - "format": "date-time", - "title": "Timestamp" + "artifacts": { + "additionalProperties": true, + "title": "Artifacts", + "type": "object" }, - "id": { - "type": "string", - "title": "Id" + "build_id": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Build Id" }, "data": { "additionalProperties": true, - "type": "object", - "title": "Data" - }, - "artifacts": { - "additionalProperties": true, - "type": "object", - "title": "Artifacts" - }, - "params": { - "type": "string", - "title": "Params" - }, - "valid": { - "type": "boolean", - "title": "Valid" + "title": "Data", + "type": "object" }, "flow_id": { - "type": "string", "format": "uuid", - "title": "Flow Id" + "title": "Flow Id", + "type": "string" + }, + "id": { + "title": "Id", + "type": "string" }, "job_id": { "anyOf": [ { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" }, { "type": "null" @@ -10493,86 +4045,53 @@ ], "title": "Job Id" }, - "build_id": { - "anyOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "type": "null" - } - ], - "title": "Build Id" + "params": { + "title": "Params", + "type": "string" + }, + "timestamp": { + "format": "date-time", + "title": "Timestamp", + "type": "string" + }, + "valid": { + "title": "Valid", + "type": "boolean" } }, - "type": "object", "required": [ "id", "valid", "flow_id" ], - "title": "VertexBuildTable" + "title": "VertexBuildTable", + "type": "object" }, "ViewPort": { "properties": { "x": { - "type": "number", - "title": "X" + "title": "X", + "type": "number" }, "y": { - "type": "number", - "title": "Y" + "title": "Y", + "type": "number" }, "zoom": { - "type": "number", - "title": "Zoom" + "title": "Zoom", + "type": "number" } }, - "type": "object", "required": [ "x", "y", "zoom" ], - "title": "ViewPort" + "title": "ViewPort", + "type": "object" }, "WorkflowExecutionRequest": { - "properties": { - "background": { - "type": "boolean", - "title": "Background", - "default": false - }, - "stream": { - "type": "boolean", - "title": "Stream", - "default": false - }, - "flow_id": { - "type": "string", - "title": "Flow Id" - }, - "inputs": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Inputs", - "description": "Component-specific inputs in flat format: 'component_id.param_name': value" - } - }, "additionalProperties": false, - "type": "object", - "required": [ - "flow_id" - ], - "title": "WorkflowExecutionRequest", "description": "Request schema for workflow execution.", "examples": [ { @@ -10603,9 +4122,44 @@ }, "stream": true } - ] + ], + "properties": { + "background": { + "default": false, + "title": "Background", + "type": "boolean" + }, + "flow_id": { + "title": "Flow Id", + "type": "string" + }, + "inputs": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Component-specific inputs in flat format: 'component_id.param_name': value", + "title": "Inputs" + }, + "stream": { + "default": false, + "title": "Stream", + "type": "boolean" + } + }, + "required": [ + "flow_id" + ], + "title": "WorkflowExecutionRequest", + "type": "object" }, "WorkflowStopRequest": { + "description": "Request schema for stopping workflow.", "properties": { "job_id": { "anyOf": [ @@ -10613,21 +4167,21 @@ "type": "string" }, { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } ], "title": "Job Id" } }, - "type": "object", "required": [ "job_id" ], "title": "WorkflowStopRequest", - "description": "Request schema for stopping workflow." + "type": "object" }, "WorkflowStopResponse": { + "description": "Response schema for stopping workflow.", "properties": { "job_id": { "anyOf": [ @@ -10635,8 +4189,8 @@ "type": "string" }, { - "type": "string", - "format": "uuid" + "format": "uuid", + "type": "string" } ], "title": "Job Id" @@ -10653,32 +4207,28 @@ "title": "Message" } }, - "type": "object", "required": [ "job_id" ], "title": "WorkflowStopResponse", - "description": "Response schema for stopping workflow." + "type": "object" }, "langflow__api__schemas__UploadFileResponse": { + "description": "File upload response schema.", "properties": { "id": { - "type": "string", "format": "uuid", - "title": "Id" + "title": "Id", + "type": "string" }, "name": { - "type": "string", - "title": "Name" + "title": "Name", + "type": "string" }, "path": { - "type": "string", "format": "path", - "title": "Path" - }, - "size": { - "type": "integer", - "title": "Size" + "title": "Path", + "type": "string" }, "provider": { "anyOf": [ @@ -10690,9 +4240,12 @@ } ], "title": "Provider" + }, + "size": { + "title": "Size", + "type": "integer" } }, - "type": "object", "required": [ "id", "name", @@ -10700,51 +4253,47 @@ "size" ], "title": "UploadFileResponse", - "description": "File upload response schema." + "type": "object" }, "langflow__api__v1__schemas__UploadFileResponse": { + "description": "Upload file response schema.", "properties": { - "flowId": { - "type": "string", - "title": "Flowid" - }, "file_path": { - "type": "string", "format": "path", - "title": "File Path" + "title": "File Path", + "type": "string" + }, + "flowId": { + "title": "Flowid", + "type": "string" } }, - "type": "object", "required": [ "flowId", "file_path" ], "title": "UploadFileResponse", - "description": "Upload file response schema." + "type": "object" }, "langflow__services__database__models__file__model__File": { "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Id" + "created_at": { + "format": "date-time", + "title": "Created At", + "type": "string" }, - "user_id": { - "type": "string", + "id": { "format": "uuid", - "title": "User Id" + "title": "Id", + "type": "string" }, "name": { - "type": "string", - "title": "Name" + "title": "Name", + "type": "string" }, "path": { - "type": "string", - "title": "Path" - }, - "size": { - "type": "integer", - "title": "Size" + "title": "Path", + "type": "string" }, "provider": { "anyOf": [ @@ -10757,71 +4306,5244 @@ ], "title": "Provider" }, - "created_at": { - "type": "string", - "format": "date-time", - "title": "Created At" + "size": { + "title": "Size", + "type": "integer" }, "updated_at": { - "type": "string", "format": "date-time", - "title": "Updated At" + "title": "Updated At", + "type": "string" + }, + "user_id": { + "format": "uuid", + "title": "User Id", + "type": "string" } }, - "type": "object", "required": [ "user_id", "name", "path", "size" ], - "title": "File" + "title": "File", + "type": "object" }, "lfx__utils__schemas__File": { + "description": "File schema.", "properties": { - "path": { - "type": "string", - "title": "Path" - }, "name": { - "type": "string", - "title": "Name" + "title": "Name", + "type": "string" + }, + "path": { + "title": "Path", + "type": "string" }, "type": { - "type": "string", - "title": "Type" + "title": "Type", + "type": "string" } }, - "type": "object", "required": [ "path", "name", "type" ], "title": "File", - "description": "File schema." + "type": "object" } }, "securitySchemes": { + "API key header": { + "in": "header", + "name": "x-api-key", + "type": "apiKey" + }, + "API key query": { + "in": "query", + "name": "x-api-key", + "type": "apiKey" + }, "OAuth2PasswordBearerCookie": { - "type": "oauth2", "flows": { "password": { "scopes": {}, "tokenUrl": "api/v1/login" } - } + }, + "type": "oauth2" + } + } + }, + "info": { + "title": "Langflow", + "version": "1.8.1" + }, + "openapi": "3.1.0", + "paths": { + "/api/v1/all": { + "get": { + "description": "Retrieve all component types with compression for better performance.

Returns a compressed response containing all available component types.", + "operationId": "get_all_api_v1_all_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get All", + "tags": [ + "Base" + ] + } + }, + "/api/v1/build/{flow_id}/flow": { + "post": { + "description": "Build and process a flow, returning a job ID for event polling.

This endpoint requires authentication through the CurrentActiveUser dependency.
For public flows that don't require authentication, use the /build_public_tmp/flow_id/flow endpoint.

Args:
flow_id: UUID of the flow to build
background_tasks: Background tasks manager
inputs: Optional input values for the flow
data: Optional flow data
files: Optional files to include
stop_component_id: Optional ID of component to stop at
start_component_id: Optional ID of component to start from
log_builds: Whether to log the build process
current_user: The authenticated user
queue_service: Queue service for job management
flow_name: Optional name for the flow
event_delivery: Optional event delivery type - default is streaming

Returns:
Dict with job_id that can be used to poll for build status", + "operationId": "build_flow_api_v1_build__flow_id__flow_post", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + }, + { + "in": "query", + "name": "stop_component_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Stop Component Id" + } + }, + { + "in": "query", + "name": "start_component_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Start Component Id" + } + }, + { + "in": "query", + "name": "log_builds", + "required": false, + "schema": { + "default": true, + "title": "Log Builds", + "type": "boolean" + } + }, + { + "in": "query", + "name": "flow_name", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Flow Name" + } + }, + { + "in": "query", + "name": "event_delivery", + "required": false, + "schema": { + "$ref": "#/components/schemas/EventDeliveryType", + "default": "polling" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_build_flow_api_v1_build__flow_id__flow_post" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Build Flow", + "tags": [ + "Chat" + ] + } + }, + "/api/v1/build/{job_id}/cancel": { + "post": { + "description": "Cancel a specific build job.

Requires authentication to prevent unauthorized build cancellation.", + "operationId": "cancel_build_api_v1_build__job_id__cancel_post", + "parameters": [ + { + "in": "path", + "name": "job_id", + "required": true, + "schema": { + "title": "Job Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CancelFlowResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Cancel Build", + "tags": [ + "Chat" + ] + } + }, + "/api/v1/build/{job_id}/events": { + "get": { + "description": "Get events for a specific build job.

Requires authentication to prevent unauthorized access to build events.", + "operationId": "get_build_events_api_v1_build__job_id__events_get", + "parameters": [ + { + "in": "path", + "name": "job_id", + "required": true, + "schema": { + "title": "Job Id", + "type": "string" + } + }, + { + "in": "query", + "name": "event_delivery", + "required": false, + "schema": { + "$ref": "#/components/schemas/EventDeliveryType", + "default": "streaming" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Build Events", + "tags": [ + "Chat" + ] + } + }, + "/api/v1/build_public_tmp/{flow_id}/flow": { + "post": { + "description": "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

The endpoint:
1. Verifies the requested flow is marked as public in the database
2. Creates a deterministic UUID based on client_id and flow_id
3. Uses the flow owner's permissions to build the flow
4. Always loads the flow definition from the database

Requirements:
- The flow must be marked as PUBLIC in the database
- The request must include a client_id cookie

Args:
flow_id: UUID of the public flow to build
background_tasks: Background tasks manager
inputs: Optional input values for the flow
files: Optional files to include
stop_component_id: Optional ID of component to stop at
start_component_id: Optional ID of component to start from
log_builds: Whether to log the build process
flow_name: Optional name for the flow
request: FastAPI request object (needed for cookie access)
queue_service: Queue service for job management
event_delivery: Optional event delivery type - default is streaming

Returns:
Dict with job_id that can be used to poll for build status", + "operationId": "build_public_tmp_api_v1_build_public_tmp__flow_id__flow_post", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + }, + { + "in": "query", + "name": "stop_component_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Stop Component Id" + } + }, + { + "in": "query", + "name": "start_component_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Start Component Id" + } + }, + { + "in": "query", + "name": "log_builds", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": true, + "title": "Log Builds" + } + }, + { + "in": "query", + "name": "flow_name", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Flow Name" + } + }, + { + "in": "query", + "name": "event_delivery", + "required": false, + "schema": { + "$ref": "#/components/schemas/EventDeliveryType", + "default": "polling" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_build_public_tmp_api_v1_build_public_tmp__flow_id__flow_post" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Build Public Tmp", + "tags": [ + "Chat" + ] + } + }, + "/api/v1/config": { + "get": { + "description": "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.", + "operationId": "get_config_api_v1_config_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/ConfigResponse" + }, + { + "$ref": "#/components/schemas/PublicConfigResponse" + } + ], + "title": "Response Get Config Api V1 Config Get" + } + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Config", + "tags": [ + "Base" + ] + } + }, + "/api/v1/files/delete/{flow_id}/{file_name}": { + "delete": { + "operationId": "delete_file_api_v1_files_delete__flow_id___file_name__delete", + "parameters": [ + { + "in": "path", + "name": "file_name", + "required": true, + "schema": { + "title": "File Name", + "type": "string" + } + }, + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete File", + "tags": [ + "Files" + ] + } + }, + "/api/v1/files/download/{flow_id}/{file_name}": { + "get": { + "operationId": "download_file_api_v1_files_download__flow_id___file_name__get", + "parameters": [ + { + "in": "path", + "name": "file_name", + "required": true, + "schema": { + "title": "File Name", + "type": "string" + } + }, + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Download File", + "tags": [ + "Files" + ] + } + }, + "/api/v1/files/images/{flow_id}/{file_name}": { + "get": { + "description": "Download image from storage for browser rendering.", + "operationId": "download_image_api_v1_files_images__flow_id___file_name__get", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + }, + { + "in": "path", + "name": "file_name", + "required": true, + "schema": { + "title": "File Name", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Download Image", + "tags": [ + "Files" + ] + } + }, + "/api/v1/files/list/{flow_id}": { + "get": { + "operationId": "list_files_api_v1_files_list__flow_id__get", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "List Files", + "tags": [ + "Files" + ] + } + }, + "/api/v1/files/profile_pictures/list": { + "get": { + "description": "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.", + "operationId": "list_profile_pictures_api_v1_files_profile_pictures_list_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + } + }, + "summary": "List Profile Pictures", + "tags": [ + "Files" + ] + } + }, + "/api/v1/files/profile_pictures/{folder_name}/{file_name}": { + "get": { + "description": "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.", + "operationId": "download_profile_picture_api_v1_files_profile_pictures__folder_name___file_name__get", + "parameters": [ + { + "in": "path", + "name": "folder_name", + "required": true, + "schema": { + "title": "Folder Name", + "type": "string" + } + }, + { + "in": "path", + "name": "file_name", + "required": true, + "schema": { + "title": "File Name", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Download Profile Picture", + "tags": [ + "Files" + ] + } + }, + "/api/v1/files/upload/{flow_id}": { + "post": { + "operationId": "upload_file_api_v1_files_upload__flow_id__post", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_upload_file_api_v1_files_upload__flow_id__post" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/langflow__api__v1__schemas__UploadFileResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Upload File", + "tags": [ + "Files" + ] + } + }, + "/api/v1/flows/": { + "delete": { + "description": "Delete multiple flows by their IDs.

Args:
flow_ids (List[str]): The list of flow IDs to delete.
user (User, optional): The user making the request. Defaults to the current active user.
db (Session, optional): The database session.

Returns:
dict: A dictionary containing the number of flows deleted.", + "operationId": "delete_multiple_flows_api_v1_flows__delete", + "requestBody": { + "content": { + "application/json": { + "schema": { + "items": { + "format": "uuid", + "type": "string" + }, + "title": "Flow Ids", + "type": "array" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Multiple Flows", + "tags": [ + "Flows" + ] }, - "API key query": { - "type": "apiKey", - "in": "query", - "name": "x-api-key" + "get": { + "description": "Retrieve a list of flows with pagination support.

Args:
current_user (User): The current authenticated user.
session (Session): The database session.
settings_service (SettingsService): The settings service.
components_only (bool, optional): Whether to return only components. Defaults to False.

get_all (bool, optional): Whether to return all flows without pagination. Defaults to True.
**This field must be True because of backward compatibility with the frontend - Release: 1.0.20**

folder_id (UUID, optional): The project ID. Defaults to None.
params (Params): Pagination parameters.
remove_example_flows (bool, optional): Whether to remove example flows. Defaults to False.
header_flows (bool, optional): Whether to return only specific headers of the flows. Defaults to False.

Returns:
list[FlowRead] | Page[FlowRead] | list[FlowHeader]
A list of flows or a paginated response containing the list of flows or a list of flow headers.", + "operationId": "read_flows_api_v1_flows__get", + "parameters": [ + { + "in": "query", + "name": "remove_example_flows", + "required": false, + "schema": { + "default": false, + "title": "Remove Example Flows", + "type": "boolean" + } + }, + { + "in": "query", + "name": "components_only", + "required": false, + "schema": { + "default": false, + "title": "Components Only", + "type": "boolean" + } + }, + { + "in": "query", + "name": "get_all", + "required": false, + "schema": { + "default": true, + "title": "Get All", + "type": "boolean" + } + }, + { + "in": "query", + "name": "folder_id", + "required": false, + "schema": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Folder Id" + } + }, + { + "in": "query", + "name": "header_flows", + "required": false, + "schema": { + "default": false, + "title": "Header Flows", + "type": "boolean" + } + }, + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "default": 1, + "minimum": 1, + "title": "Page", + "type": "integer" + } + }, + { + "in": "query", + "name": "size", + "required": false, + "schema": { + "default": 50, + "maximum": 100, + "minimum": 1, + "title": "Size", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/FlowRead" + }, + "type": "array" + }, + { + "$ref": "#/components/schemas/Page_FlowRead_" + }, + { + "items": { + "$ref": "#/components/schemas/FlowHeader" + }, + "type": "array" + } + ], + "title": "Response Read Flows Api V1 Flows Get" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Read Flows", + "tags": [ + "Flows" + ] }, - "API key header": { - "type": "apiKey", - "in": "header", - "name": "x-api-key" + "post": { + "operationId": "create_flow_api_v1_flows__post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowCreate" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Create Flow", + "tags": [ + "Flows" + ] + } + }, + "/api/v1/flows/basic_examples/": { + "get": { + "description": "Retrieve a list of basic example flows.

Args:
session (Session): The database session.

Returns:
list[FlowRead]: A list of basic example flows.", + "operationId": "read_basic_examples_api_v1_flows_basic_examples__get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FlowRead" + }, + "title": "Response Read Basic Examples Api V1 Flows Basic Examples Get", + "type": "array" + } + } + }, + "description": "Successful Response" + } + }, + "summary": "Read Basic Examples", + "tags": [ + "Flows" + ] + } + }, + "/api/v1/flows/batch/": { + "post": { + "description": "Create multiple new flows.", + "operationId": "create_flows_api_v1_flows_batch__post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowListCreate" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FlowRead" + }, + "title": "Response Create Flows Api V1 Flows Batch Post", + "type": "array" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Create Flows", + "tags": [ + "Flows" + ] + } + }, + "/api/v1/flows/download/": { + "post": { + "description": "Download all flows as a zip file.", + "operationId": "download_multiple_file_api_v1_flows_download__post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "items": { + "format": "uuid", + "type": "string" + }, + "title": "Flow Ids", + "type": "array" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Download Multiple File", + "tags": [ + "Flows" + ] + } + }, + "/api/v1/flows/public_flow/{flow_id}": { + "get": { + "description": "Read a public flow.", + "operationId": "read_public_flow_api_v1_flows_public_flow__flow_id__get", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Public Flow", + "tags": [ + "Flows" + ] + } + }, + "/api/v1/flows/upload/": { + "post": { + "description": "Upload flows from a file.", + "operationId": "upload_file_api_v1_flows_upload__post", + "parameters": [ + { + "in": "query", + "name": "folder_id", + "required": false, + "schema": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Folder Id" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_upload_file_api_v1_flows_upload__post" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FlowRead" + }, + "title": "Response Upload File Api V1 Flows Upload Post", + "type": "array" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Upload File", + "tags": [ + "Flows" + ] + } + }, + "/api/v1/flows/{flow_id}": { + "delete": { + "description": "Delete a flow.", + "operationId": "delete_flow_api_v1_flows__flow_id__delete", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Flow", + "tags": [ + "Flows" + ] + }, + "get": { + "description": "Read a flow.", + "operationId": "read_flow_api_v1_flows__flow_id__get", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Read Flow", + "tags": [ + "Flows" + ] + }, + "patch": { + "description": "Update a flow.", + "operationId": "update_flow_api_v1_flows__flow_id__patch", + "parameters": [ + { + "in": "path", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowUpdate" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FlowRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Update Flow", + "tags": [ + "Flows" + ] + } + }, + "/api/v1/mcp/project/{project_id}": { + "get": { + "description": "List project MCP tools.", + "operationId": "list_project_tools_api_v1_mcp_project__project_id__get", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + }, + { + "in": "query", + "name": "mcp_enabled", + "required": false, + "schema": { + "default": true, + "title": "Mcp Enabled", + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "List Project Tools", + "tags": [ + "mcp_projects" + ] + }, + "patch": { + "description": "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.", + "operationId": "update_project_mcp_settings_api_v1_mcp_project__project_id__patch", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MCPProjectUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Update Project Mcp Settings", + "tags": [ + "mcp_projects" + ] + } + }, + "/api/v1/mcp/project/{project_id}/composer-url": { + "get": { + "description": "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.", + "operationId": "get_project_composer_url_api_v1_mcp_project__project_id__composer_url_get", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUrlResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Project Composer Url", + "tags": [ + "mcp_projects" + ] + } + }, + "/api/v1/mcp/project/{project_id}/install": { + "post": { + "description": "Install MCP server configuration for Cursor, Windsurf, or Claude.", + "operationId": "install_mcp_config_api_v1_mcp_project__project_id__install_post", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MCPInstallRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Install Mcp Config", + "tags": [ + "mcp_projects" + ] + } + }, + "/api/v1/mcp/project/{project_id}/installed": { + "get": { + "description": "Check if MCP server configuration is installed for this project in Cursor, Windsurf, or Claude.", + "operationId": "check_installed_mcp_servers_api_v1_mcp_project__project_id__installed_get", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Check Installed Mcp Servers", + "tags": [ + "mcp_projects" + ] + } + }, + "/api/v1/monitor/builds": { + "delete": { + "operationId": "delete_vertex_builds_api_v1_monitor_builds_delete", + "parameters": [ + { + "in": "query", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Vertex Builds", + "tags": [ + "Monitor" + ] + }, + "get": { + "operationId": "get_vertex_builds_api_v1_monitor_builds_get", + "parameters": [ + { + "in": "query", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VertexBuildMapModel" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Vertex Builds", + "tags": [ + "Monitor" + ] + } + }, + "/api/v1/monitor/messages": { + "delete": { + "operationId": "delete_messages_api_v1_monitor_messages_delete", + "requestBody": { + "content": { + "application/json": { + "schema": { + "items": { + "format": "uuid", + "type": "string" + }, + "title": "Message Ids", + "type": "array" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Messages", + "tags": [ + "Monitor" + ] + }, + "get": { + "operationId": "get_messages_api_v1_monitor_messages_get", + "parameters": [ + { + "in": "query", + "name": "flow_id", + "required": false, + "schema": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Flow Id" + } + }, + { + "in": "query", + "name": "session_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session Id" + } + }, + { + "in": "query", + "name": "sender", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sender" + } + }, + { + "in": "query", + "name": "sender_name", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Sender Name" + } + }, + { + "in": "query", + "name": "order_by", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": "timestamp", + "title": "Order By" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/MessageResponse" + }, + "title": "Response Get Messages Api V1 Monitor Messages Get", + "type": "array" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Messages", + "tags": [ + "Monitor" + ] + } + }, + "/api/v1/monitor/messages/session/{old_session_id}": { + "patch": { + "operationId": "update_session_id_api_v1_monitor_messages_session__old_session_id__patch", + "parameters": [ + { + "in": "path", + "name": "old_session_id", + "required": true, + "schema": { + "title": "Old Session Id", + "type": "string" + } + }, + { + "description": "The new session ID to update to", + "in": "query", + "name": "new_session_id", + "required": true, + "schema": { + "description": "The new session ID to update to", + "title": "New Session Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/MessageResponse" + }, + "title": "Response Update Session Id Api V1 Monitor Messages Session Old Session Id Patch", + "type": "array" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Update Session Id", + "tags": [ + "Monitor" + ] + } + }, + "/api/v1/monitor/messages/session/{session_id}": { + "delete": { + "operationId": "delete_messages_session_api_v1_monitor_messages_session__session_id__delete", + "parameters": [ + { + "in": "path", + "name": "session_id", + "required": true, + "schema": { + "title": "Session Id", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Messages Session", + "tags": [ + "Monitor" + ] + } + }, + "/api/v1/monitor/messages/sessions": { + "get": { + "operationId": "get_message_sessions_api_v1_monitor_messages_sessions_get", + "parameters": [ + { + "in": "query", + "name": "flow_id", + "required": false, + "schema": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Flow Id" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "type": "string" + }, + "title": "Response Get Message Sessions Api V1 Monitor Messages Sessions Get", + "type": "array" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Message Sessions", + "tags": [ + "Monitor" + ] + } + }, + "/api/v1/monitor/messages/{message_id}": { + "put": { + "operationId": "update_message_api_v1_monitor_messages__message_id__put", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Message Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageUpdate" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Update Message", + "tags": [ + "Monitor" + ] + } + }, + "/api/v1/monitor/traces": { + "delete": { + "description": "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).", + "operationId": "delete_traces_by_flow_api_v1_monitor_traces_delete", + "parameters": [ + { + "in": "query", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Traces By Flow", + "tags": [ + "Traces" + ] + }, + "get": { + "description": "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", + "operationId": "get_traces_api_v1_monitor_traces_get", + "parameters": [ + { + "in": "query", + "name": "flow_id", + "required": false, + "schema": { + "anyOf": [ + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Flow Id" + } + }, + { + "in": "query", + "name": "session_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Session Id" + } + }, + { + "in": "query", + "name": "status", + "required": false, + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/SpanStatus" + }, + { + "type": "null" + } + ], + "title": "Status" + } + }, + { + "in": "query", + "name": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Query" + } + }, + { + "in": "query", + "name": "start_time", + "required": false, + "schema": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Start Time" + } + }, + { + "in": "query", + "name": "end_time", + "required": false, + "schema": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "End Time" + } + }, + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "default": 1, + "minimum": 0, + "title": "Page", + "type": "integer" + } + }, + { + "in": "query", + "name": "size", + "required": false, + "schema": { + "default": 50, + "maximum": 200, + "minimum": 1, + "title": "Size", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TraceListResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Traces", + "tags": [ + "Traces" + ] + } + }, + "/api/v1/monitor/traces/{trace_id}": { + "delete": { + "description": "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).", + "operationId": "delete_trace_api_v1_monitor_traces__trace_id__delete", + "parameters": [ + { + "in": "path", + "name": "trace_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Trace Id", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Trace", + "tags": [ + "Traces" + ] + }, + "get": { + "description": "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.", + "operationId": "get_trace_api_v1_monitor_traces__trace_id__get", + "parameters": [ + { + "in": "path", + "name": "trace_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Trace Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TraceRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Trace", + "tags": [ + "Traces" + ] + } + }, + "/api/v1/monitor/transactions": { + "get": { + "operationId": "get_transactions_api_v1_monitor_transactions_get", + "parameters": [ + { + "in": "query", + "name": "flow_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Flow Id", + "type": "string" + } + }, + { + "description": "Page number", + "in": "query", + "name": "page", + "required": false, + "schema": { + "default": 1, + "description": "Page number", + "minimum": 1, + "title": "Page", + "type": "integer" + } + }, + { + "description": "Page size", + "in": "query", + "name": "size", + "required": false, + "schema": { + "default": 50, + "description": "Page size", + "maximum": 100, + "minimum": 1, + "title": "Size", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Page_TransactionLogsResponse_" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Transactions", + "tags": [ + "Monitor" + ] + } + }, + "/api/v1/projects/": { + "get": { + "operationId": "read_projects_api_v1_projects__get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FolderRead" + }, + "title": "Response Read Projects Api V1 Projects Get", + "type": "array" + } + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Read Projects", + "tags": [ + "Projects" + ] + }, + "post": { + "operationId": "create_project_api_v1_projects__post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderCreate" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Create Project", + "tags": [ + "Projects" + ] + } + }, + "/api/v1/projects/download/{project_id}": { + "get": { + "description": "Download all flows from project as a zip file.", + "operationId": "download_file_api_v1_projects_download__project_id__get", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Download File", + "tags": [ + "Projects" + ] + } + }, + "/api/v1/projects/upload/": { + "post": { + "description": "Upload flows from a file.", + "operationId": "upload_file_api_v1_projects_upload__post", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_upload_file_api_v1_projects_upload__post" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FlowRead" + }, + "title": "Response Upload File Api V1 Projects Upload Post", + "type": "array" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Upload File", + "tags": [ + "Projects" + ] + } + }, + "/api/v1/projects/{project_id}": { + "delete": { + "operationId": "delete_project_api_v1_projects__project_id__delete", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Project", + "tags": [ + "Projects" + ] + }, + "get": { + "operationId": "read_project_api_v1_projects__project_id__get", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + }, + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Page" + } + }, + { + "in": "query", + "name": "size", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size" + } + }, + { + "in": "query", + "name": "is_component", + "required": false, + "schema": { + "default": false, + "title": "Is Component", + "type": "boolean" + } + }, + { + "in": "query", + "name": "is_flow", + "required": false, + "schema": { + "default": false, + "title": "Is Flow", + "type": "boolean" + } + }, + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "default": "", + "title": "Search", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/FolderWithPaginatedFlows" + }, + { + "$ref": "#/components/schemas/FolderReadWithFlows" + } + ], + "title": "Response Read Project Api V1 Projects Project Id Get" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Read Project", + "tags": [ + "Projects" + ] + }, + "patch": { + "operationId": "update_project_api_v1_projects__project_id__patch", + "parameters": [ + { + "in": "path", + "name": "project_id", + "required": true, + "schema": { + "format": "uuid", + "title": "Project Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderUpdate" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Update Project", + "tags": [ + "Projects" + ] + } + }, + "/api/v1/responses": { + "post": { + "description": "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", + "operationId": "create_response_api_v1_responses_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAIResponsesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Create Response", + "tags": [ + "OpenAI Responses API" + ] + } + }, + "/api/v1/run/advanced/{flow_id_or_name}": { + "post": { + "description": "Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.

This endpoint supports running flows with caching to enhance performance and efficiency.

### Parameters:
- `flow` (Flow): The flow object to be executed, resolved via dependency injection.
- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components
for the flow. Each input can target specific components and provide custom values.
- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.
If not provided, all outputs are returned.
- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.
The tweaks can be used to modify the flow's parameters and components.
Tweaks can be overridden by the input values.
- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.
- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow
execution.
- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.

### Returns:
A `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow
and the session ID.
The structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.

### Raises:
HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during
flow execution.

### Example usage:
```json
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.", + "operationId": "experimental_run_flow_api_v1_run_advanced__flow_id_or_name__post", + "parameters": [ + { + "in": "path", + "name": "flow_id_or_name", + "required": true, + "schema": { + "title": "Flow Id Or Name", + "type": "string" + } + }, + { + "in": "query", + "name": "user_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "User Id" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_experimental_run_flow_api_v1_run_advanced__flow_id_or_name__post" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RunResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Experimental Run Flow", + "tags": [ + "Base" + ] + } + }, + "/api/v1/run/{flow_id_or_name}": { + "post": { + "description": "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)", + "operationId": "simplified_run_flow_api_v1_run__flow_id_or_name__post", + "parameters": [ + { + "in": "path", + "name": "flow_id_or_name", + "required": true, + "schema": { + "title": "Flow Id Or Name", + "type": "string" + } + }, + { + "in": "query", + "name": "stream", + "required": false, + "schema": { + "default": false, + "title": "Stream", + "type": "boolean" + } + }, + { + "in": "query", + "name": "user_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "User Id" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Body_simplified_run_flow_api_v1_run__flow_id_or_name__post" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Simplified Run Flow", + "tags": [ + "Base" + ] + } + }, + "/api/v1/starter-projects/": { + "get": { + "description": "Get a list of starter projects.", + "operationId": "get_starter_projects_api_v1_starter_projects__get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GraphDumpResponse" + }, + "title": "Response Get Starter Projects Api V1 Starter Projects Get", + "type": "array" + } + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Starter Projects", + "tags": [ + "Flows" + ] + } + }, + "/api/v1/users/": { + "get": { + "description": "Retrieve a list of users from the database with pagination.", + "operationId": "read_all_users_api_v1_users__get", + "parameters": [ + { + "in": "query", + "name": "skip", + "required": false, + "schema": { + "default": 0, + "title": "Skip", + "type": "integer" + } + }, + { + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 10, + "title": "Limit", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Read All Users", + "tags": [ + "Users" + ] + }, + "post": { + "description": "Add a new user to the database.

This endpoint allows public user registration (sign up).
User activation is controlled by the NEW_USER_IS_ACTIVE setting.", + "operationId": "add_user_api_v1_users__post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreate" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Add User", + "tags": [ + "Users" + ] + } + }, + "/api/v1/users/whoami": { + "get": { + "description": "Retrieve the current user's data.", + "operationId": "read_current_user_api_v1_users_whoami_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRead" + } + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Read Current User", + "tags": [ + "Users" + ] + } + }, + "/api/v1/users/{user_id}": { + "delete": { + "description": "Delete a user from the database.", + "operationId": "delete_user_api_v1_users__user_id__delete", + "parameters": [ + { + "in": "path", + "name": "user_id", + "required": true, + "schema": { + "format": "uuid", + "title": "User Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "additionalProperties": true, + "title": "Response Delete User Api V1 Users User Id Delete", + "type": "object" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete User", + "tags": [ + "Users" + ] + }, + "patch": { + "description": "Update an existing user's data.", + "operationId": "patch_user_api_v1_users__user_id__patch", + "parameters": [ + { + "in": "path", + "name": "user_id", + "required": true, + "schema": { + "format": "uuid", + "title": "User Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserUpdate" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Patch User", + "tags": [ + "Users" + ] + } + }, + "/api/v1/users/{user_id}/reset-password": { + "patch": { + "description": "Reset a user's password.", + "operationId": "reset_password_api_v1_users__user_id__reset_password_patch", + "parameters": [ + { + "in": "path", + "name": "user_id", + "required": true, + "schema": { + "format": "uuid", + "title": "User Id", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserUpdate" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRead" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Reset Password", + "tags": [ + "Users" + ] + } + }, + "/api/v1/version": { + "get": { + "operationId": "get_version_api_v1_version_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + } + }, + "summary": "Get Version", + "tags": [ + "Base" + ] + } + }, + "/api/v1/webhook/{flow_id_or_name}": { + "post": { + "description": "Run a flow using a webhook request.

Args:
flow_id_or_name: The flow ID or endpoint name (used by dependency).
flow: The flow to be executed.
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.", + "operationId": "webhook_run_flow_api_v1_webhook__flow_id_or_name__post", + "parameters": [ + { + "in": "path", + "name": "flow_id_or_name", + "required": true, + "schema": { + "title": "Flow Id Or Name", + "type": "string" + } + }, + { + "in": "query", + "name": "user_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "User Id" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "additionalProperties": true, + "title": "Response Webhook Run Flow Api V1 Webhook Flow Id Or Name Post", + "type": "object" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Webhook Run Flow", + "tags": [ + "Base" + ] + } + }, + "/api/v2/files": { + "delete": { + "description": "Delete all files for the current user.", + "operationId": "delete_all_files_api_v2_files_delete", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete All Files", + "tags": [ + "Files" + ] + }, + "get": { + "description": "List the files available to the current user.", + "operationId": "list_files_api_v2_files_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/langflow__services__database__models__file__model__File" + }, + "title": "Response List Files Api V2 Files Get", + "type": "array" + } + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "List Files", + "tags": [ + "Files" + ] + }, + "post": { + "description": "Upload a file for the current user and track it in the database.", + "operationId": "upload_user_file_api_v2_files_post", + "parameters": [ + { + "in": "query", + "name": "append", + "required": false, + "schema": { + "default": false, + "title": "Append", + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_upload_user_file_api_v2_files_post" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/langflow__api__schemas__UploadFileResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Upload User File", + "tags": [ + "Files" + ] + } + }, + "/api/v2/files/": { + "delete": { + "description": "Delete all files for the current user.", + "operationId": "delete_all_files_api_v2_files__delete", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete All Files", + "tags": [ + "Files" + ] + }, + "get": { + "description": "List the files available to the current user.", + "operationId": "list_files_api_v2_files__get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/langflow__services__database__models__file__model__File" + }, + "title": "Response List Files Api V2 Files Get", + "type": "array" + } + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "List Files", + "tags": [ + "Files" + ] + }, + "post": { + "description": "Upload a file for the current user and track it in the database.", + "operationId": "upload_user_file_api_v2_files__post", + "parameters": [ + { + "in": "query", + "name": "append", + "required": false, + "schema": { + "default": false, + "title": "Append", + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/Body_upload_user_file_api_v2_files__post" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/langflow__api__schemas__UploadFileResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Upload User File", + "tags": [ + "Files" + ] + } + }, + "/api/v2/files/batch/": { + "delete": { + "description": "Delete multiple files by their IDs.", + "operationId": "delete_files_batch_api_v2_files_batch__delete", + "requestBody": { + "content": { + "application/json": { + "schema": { + "items": { + "format": "uuid", + "type": "string" + }, + "title": "File Ids", + "type": "array" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Files Batch", + "tags": [ + "Files" + ] + }, + "post": { + "description": "Download multiple files as a zip file by their IDs.", + "operationId": "download_files_batch_api_v2_files_batch__post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "items": { + "format": "uuid", + "type": "string" + }, + "title": "File Ids", + "type": "array" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Download Files Batch", + "tags": [ + "Files" + ] + } + }, + "/api/v2/files/{file_id}": { + "delete": { + "description": "Delete a file by its ID.", + "operationId": "delete_file_api_v2_files__file_id__delete", + "parameters": [ + { + "in": "path", + "name": "file_id", + "required": true, + "schema": { + "format": "uuid", + "title": "File Id", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete File", + "tags": [ + "Files" + ] + }, + "get": { + "description": "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.", + "operationId": "download_file_api_v2_files__file_id__get", + "parameters": [ + { + "in": "path", + "name": "file_id", + "required": true, + "schema": { + "format": "uuid", + "title": "File Id", + "type": "string" + } + }, + { + "in": "query", + "name": "return_content", + "required": false, + "schema": { + "default": false, + "title": "Return Content", + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Download File", + "tags": [ + "Files" + ] + }, + "put": { + "description": "Edit the name of a file by its ID.", + "operationId": "edit_file_name_api_v2_files__file_id__put", + "parameters": [ + { + "in": "path", + "name": "file_id", + "required": true, + "schema": { + "format": "uuid", + "title": "File Id", + "type": "string" + } + }, + { + "in": "query", + "name": "name", + "required": true, + "schema": { + "title": "Name", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/langflow__api__schemas__UploadFileResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Edit File Name", + "tags": [ + "Files" + ] + } + }, + "/api/v2/mcp/servers": { + "get": { + "description": "Get the list of available servers.", + "operationId": "get_servers_api_v2_mcp_servers_get", + "parameters": [ + { + "in": "query", + "name": "action_count", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Action Count" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Servers", + "tags": [ + "MCP" + ] + } + }, + "/api/v2/mcp/servers/{server_name}": { + "delete": { + "operationId": "delete_server_api_v2_mcp_servers__server_name__delete", + "parameters": [ + { + "in": "path", + "name": "server_name", + "required": true, + "schema": { + "title": "Server Name", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Delete Server", + "tags": [ + "MCP" + ] + }, + "get": { + "description": "Get a specific server.", + "operationId": "get_server_endpoint_api_v2_mcp_servers__server_name__get", + "parameters": [ + { + "in": "path", + "name": "server_name", + "required": true, + "schema": { + "title": "Server Name", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Server Endpoint", + "tags": [ + "MCP" + ] + }, + "patch": { + "operationId": "update_server_endpoint_api_v2_mcp_servers__server_name__patch", + "parameters": [ + { + "in": "path", + "name": "server_name", + "required": true, + "schema": { + "title": "Server Name", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MCPServerConfig" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Update Server Endpoint", + "tags": [ + "MCP" + ] + }, + "post": { + "operationId": "add_server_api_v2_mcp_servers__server_name__post", + "parameters": [ + { + "in": "path", + "name": "server_name", + "required": true, + "schema": { + "title": "Server Name", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MCPServerConfig" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Add Server", + "tags": [ + "MCP" + ] + } + }, + "/api/v2/workflows": { + "get": { + "description": "Get status of workflow job by job ID", + "operationId": "get_workflow_status_api_v2_workflows_get", + "parameters": [ + { + "description": "Job ID to query", + "in": "query", + "name": "job_id", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Job ID to query", + "title": "Job Id" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "description": "Synchronous workflow execution response.", + "properties": { + "created_timestamp": { + "title": "Created Timestamp", + "type": "string" + }, + "errors": { + "default": [], + "items": { + "$ref": "#/components/schemas/ErrorDetail" + }, + "title": "Errors", + "type": "array" + }, + "flow_id": { + "title": "Flow Id", + "type": "string" + }, + "inputs": { + "additionalProperties": true, + "default": {}, + "title": "Inputs", + "type": "object" + }, + "job_id": { + "anyOf": [ + { + "type": "string" + }, + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Job Id" + }, + "object": { + "const": "response", + "default": "response", + "title": "Object", + "type": "string" + }, + "outputs": { + "additionalProperties": { + "$ref": "#/components/schemas/ComponentOutput" + }, + "default": {}, + "title": "Outputs", + "type": "object" + }, + "status": { + "$ref": "#/components/schemas/JobStatus" + } + }, + "required": [ + "flow_id", + "status" + ], + "title": "WorkflowExecutionResponse", + "type": "object" + } + }, + "text/event-stream": { + "description": "Server-sent events for streaming status", + "schema": { + "description": "Streaming event response.", + "properties": { + "raw_event": { + "additionalProperties": true, + "title": "Raw Event", + "type": "object" + }, + "run_id": { + "title": "Run Id", + "type": "string" + }, + "timestamp": { + "title": "Timestamp", + "type": "integer" + }, + "type": { + "title": "Type", + "type": "string" + } + }, + "required": [ + "type", + "run_id", + "timestamp", + "raw_event" + ], + "title": "WorkflowStreamEvent", + "type": "object" + } + } + }, + "description": "Workflow status response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Get Workflow Status", + "tags": [ + "Workflow" + ] + }, + "post": { + "description": "Execute a workflow with support for sync, stream, and background modes", + "operationId": "execute_workflow_api_v2_workflows_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowExecutionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "discriminator": { + "mapping": { + "job": "#/components/schemas/WorkflowJobResponse", + "response": "#/components/schemas/WorkflowExecutionResponse" + }, + "propertyName": "object" + }, + "oneOf": [ + { + "description": "Synchronous workflow execution response.", + "properties": { + "created_timestamp": { + "title": "Created Timestamp", + "type": "string" + }, + "errors": { + "default": [], + "items": { + "$ref": "#/components/schemas/ErrorDetail" + }, + "title": "Errors", + "type": "array" + }, + "flow_id": { + "title": "Flow Id", + "type": "string" + }, + "inputs": { + "additionalProperties": true, + "default": {}, + "title": "Inputs", + "type": "object" + }, + "job_id": { + "anyOf": [ + { + "type": "string" + }, + { + "format": "uuid", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Job Id" + }, + "object": { + "const": "response", + "default": "response", + "title": "Object", + "type": "string" + }, + "outputs": { + "additionalProperties": { + "$ref": "#/components/schemas/ComponentOutput" + }, + "default": {}, + "title": "Outputs", + "type": "object" + }, + "status": { + "$ref": "#/components/schemas/JobStatus" + } + }, + "required": [ + "flow_id", + "status" + ], + "title": "WorkflowExecutionResponse", + "type": "object" + }, + { + "description": "Background job response.", + "properties": { + "created_timestamp": { + "title": "Created Timestamp", + "type": "string" + }, + "errors": { + "default": [], + "items": { + "$ref": "#/components/schemas/ErrorDetail" + }, + "title": "Errors", + "type": "array" + }, + "flow_id": { + "title": "Flow Id", + "type": "string" + }, + "job_id": { + "anyOf": [ + { + "type": "string" + }, + { + "format": "uuid", + "type": "string" + } + ], + "title": "Job Id" + }, + "links": { + "additionalProperties": { + "type": "string" + }, + "title": "Links", + "type": "object" + }, + "object": { + "const": "job", + "default": "job", + "title": "Object", + "type": "string" + }, + "status": { + "$ref": "#/components/schemas/JobStatus" + } + }, + "required": [ + "job_id", + "flow_id", + "status" + ], + "title": "WorkflowJobResponse", + "type": "object" + } + ] + } + }, + "text/event-stream": { + "description": "Server-sent events for streaming execution", + "schema": { + "description": "Streaming event response.", + "properties": { + "raw_event": { + "additionalProperties": true, + "title": "Raw Event", + "type": "object" + }, + "run_id": { + "title": "Run Id", + "type": "string" + }, + "timestamp": { + "title": "Timestamp", + "type": "integer" + }, + "type": { + "title": "Type", + "type": "string" + } + }, + "required": [ + "type", + "run_id", + "timestamp", + "raw_event" + ], + "title": "WorkflowStreamEvent", + "type": "object" + } + } + }, + "description": "Workflow execution response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Execute Workflow", + "tags": [ + "Workflow" + ] + } + }, + "/api/v2/workflows/stop": { + "post": { + "description": "Stop a running workflow execution", + "operationId": "stop_workflow_api_v2_workflows_stop_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStopRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStopResponse" + } + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Stop Workflow", + "tags": [ + "Workflow" + ] + } + }, + "/health": { + "get": { + "operationId": "health_health_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + } + }, + "summary": "Health", + "tags": [ + "Health Check" + ] + } + }, + "/health_check": { + "get": { + "operationId": "health_check_health_check_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "Successful Response" + } + }, + "summary": "Health Check", + "tags": [ + "Health Check" + ] + } + }, + "/logs": { + "get": { + "description": "Retrieve application logs with authentication required.

SECURITY: Logs may contain sensitive information and require authentication.", + "operationId": "logs_logs_get", + "parameters": [ + { + "description": "The number of logs before the timestamp or the last log", + "in": "query", + "name": "lines_before", + "required": false, + "schema": { + "default": 0, + "description": "The number of logs before the timestamp or the last log", + "title": "Lines Before", + "type": "integer" + } + }, + { + "description": "The number of logs after the timestamp", + "in": "query", + "name": "lines_after", + "required": false, + "schema": { + "default": 0, + "description": "The number of logs after the timestamp", + "title": "Lines After", + "type": "integer" + } + }, + { + "description": "The timestamp to start getting logs from", + "in": "query", + "name": "timestamp", + "required": false, + "schema": { + "default": 0, + "description": "The timestamp to start getting logs from", + "title": "Timestamp", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Logs", + "tags": [ + "Log" + ] + } + }, + "/logs-stream": { + "get": { + "description": "HTTP/2 Server-Sent-Event (SSE) endpoint for streaming logs.

Requires authentication to prevent exposure of sensitive log data.
It establishes a long-lived connection to the server and receives log messages in real-time.
The client should use the header \"Accept: text/event-stream\".", + "operationId": "stream_logs_logs_stream_get", + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + } + }, + "security": [ + { + "OAuth2PasswordBearerCookie": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "summary": "Stream Logs", + "tags": [ + "Log" + ] } } } -} +} \ No newline at end of file diff --git a/docs/scripts/clean_openapi_formatting.py b/docs/scripts/clean_openapi_formatting.py deleted file mode 100755 index 07ffc9b113..0000000000 --- a/docs/scripts/clean_openapi_formatting.py +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env python3 -"""Clean OpenAPI specification formatting for better ReDoc display. - -This script converts newlines in descriptions to HTML breaks for proper -rendering in ReDoc documentation. -""" - -import json -import sys -from pathlib import Path - -MIN_ARGS = 2 - - -def clean_openapi_formatting(input_file: str, output_file: str | None = None) -> None: - """Clean OpenAPI spec formatting by converting newlines to HTML breaks. - - Args: - input_file: Path to input OpenAPI JSON file - output_file: Path to output file (defaults to overwriting input) - """ - if output_file is None: - output_file = input_file - - try: - # Load the OpenAPI spec - input_path = Path(input_file) - with input_path.open(encoding="utf-8") as f: - spec = json.load(f) - - # Fix description formatting by converting newlines to HTML breaks - if "paths" in spec: - for path_item in spec["paths"].values(): - for operation in path_item.values(): - if isinstance(operation, dict) and "description" in operation: - description = operation["description"] - if description: - # Convert newlines to HTML breaks for better ReDoc rendering - operation["description"] = description.replace("\n", "
") - - # Save the cleaned spec - output_path = Path(output_file) - with output_path.open("w", encoding="utf-8") as f: - json.dump(spec, f, indent=2, ensure_ascii=False) - - # Success message (using sys.stdout for consistency) - sys.stdout.write(f"OpenAPI spec cleaned successfully: {output_file}\n") - - except FileNotFoundError: - sys.stderr.write(f"Error: File not found: {input_file}\n") - sys.exit(1) - except json.JSONDecodeError as e: - sys.stderr.write(f"Error: Invalid JSON in {input_file}: {e}\n") - sys.exit(1) - except OSError as e: - sys.stderr.write(f"Error: {e}\n") - sys.exit(1) - - -def main(): - """Main entry point.""" - if len(sys.argv) < MIN_ARGS: - sys.stderr.write("Usage: python clean_openapi_formatting.py [output_file]\n") - sys.exit(1) - - input_file = sys.argv[1] - output_file = sys.argv[2] if len(sys.argv) > MIN_ARGS else None - - clean_openapi_formatting(input_file, output_file) - - -if __name__ == "__main__": - main() diff --git a/src/backend/base/langflow/agentic/api/router.py b/src/backend/base/langflow/agentic/api/router.py index c999c19993..be85a7cfb4 100644 --- a/src/backend/base/langflow/agentic/api/router.py +++ b/src/backend/base/langflow/agentic/api/router.py @@ -36,7 +36,7 @@ from langflow.agentic.services.provider_service import ( ) from langflow.api.utils.core import CurrentActiveUser, DbSession -router = APIRouter(prefix="/agentic", tags=["Agentic"]) +router = APIRouter(prefix="/agentic", tags=["Agentic"], include_in_schema=False) @dataclass(frozen=True) diff --git a/src/backend/base/langflow/api/v1/deployments.py b/src/backend/base/langflow/api/v1/deployments.py index 606f896231..ccc7f48efd 100644 --- a/src/backend/base/langflow/api/v1/deployments.py +++ b/src/backend/base/langflow/api/v1/deployments.py @@ -33,7 +33,7 @@ from langflow.api.v1.schemas.deployments import ( FlowVersionIdsQuery, ) -router = APIRouter(prefix="/deployments", tags=["Deployments"]) +router = APIRouter(prefix="/deployments", tags=["Deployments"], include_in_schema=False) DeploymentProviderAccountIdQuery = Annotated[ diff --git a/src/backend/base/langflow/api/v1/flow_version.py b/src/backend/base/langflow/api/v1/flow_version.py index 218cb86c2a..7389f0c25c 100644 --- a/src/backend/base/langflow/api/v1/flow_version.py +++ b/src/backend/base/langflow/api/v1/flow_version.py @@ -33,7 +33,7 @@ from langflow.services.database.models.flow_version.model import ( ) from langflow.services.deps import get_settings_service -router = APIRouter(prefix="/flows/{flow_id}/versions", tags=["Flow Versions"]) +router = APIRouter(prefix="/flows/{flow_id}/versions", tags=["Flow Versions"], include_in_schema=False) def strip_version_data(data: dict | None) -> dict | None: diff --git a/src/backend/base/langflow/api/v1/mcp.py b/src/backend/base/langflow/api/v1/mcp.py index a8cb35bd0b..50caa8a454 100644 --- a/src/backend/base/langflow/api/v1/mcp.py +++ b/src/backend/base/langflow/api/v1/mcp.py @@ -20,7 +20,7 @@ from langflow.api.v1.mcp_utils import ( handle_read_resource, ) -router = APIRouter(prefix="/mcp", tags=["mcp"]) +router = APIRouter(prefix="/mcp", tags=["mcp"], include_in_schema=False) server = Server("langflow-mcp-server") diff --git a/src/backend/base/langflow/api/v1/mcp_projects.py b/src/backend/base/langflow/api/v1/mcp_projects.py index 01092fe6d7..196158caf6 100644 --- a/src/backend/base/langflow/api/v1/mcp_projects.py +++ b/src/backend/base/langflow/api/v1/mcp_projects.py @@ -313,6 +313,7 @@ async def list_project_tools( "/{project_id}/sse", response_class=HTMLResponse, dependencies=[Depends(raise_error_if_astra_cloud_env)], + include_in_schema=False, ) async def im_alive(project_id: str): # noqa: ARG001 return Response() @@ -322,6 +323,7 @@ async def im_alive(project_id: str): # noqa: ARG001 "/{project_id}/sse", response_class=HTMLResponse, dependencies=[Depends(raise_error_if_astra_cloud_env)], + include_in_schema=False, ) async def handle_project_sse( project_id: UUID, @@ -399,8 +401,16 @@ async def _handle_project_sse_messages( current_request_variables_ctx.reset(req_vars_token) -@router.post("/{project_id}", dependencies=[Depends(raise_error_if_astra_cloud_env)]) -@router.post("/{project_id}/", dependencies=[Depends(raise_error_if_astra_cloud_env)]) +@router.post( + "/{project_id}", + dependencies=[Depends(raise_error_if_astra_cloud_env)], + include_in_schema=False, +) +@router.post( + "/{project_id}/", + dependencies=[Depends(raise_error_if_astra_cloud_env)], + include_in_schema=False, +) async def handle_project_messages( project_id: UUID, request: Request, @@ -415,7 +425,7 @@ async def handle_project_messages( ######################################################## -@router.head("/{project_id}/streamable") +@router.head("/{project_id}/streamable", include_in_schema=False) async def streamable_health(project_id: UUID): # noqa: ARG001 return Response() @@ -454,6 +464,7 @@ async def _dispatch_project_streamable_http( streamable_http_route_config = { "methods": ["GET", "POST", "DELETE"], "response_class": ResponseNoOp, + "include_in_schema": False, }