Skip to main content

Lifecycle

new

Create a new pipeline with the specified parameters. Parameters
name
str
required
The name of the pipeline.
nodes
Optional[list[Node]]
default:"None"
List of nodes to include in the pipeline.
Returns
returns
Pipeline
A new Pipeline instance.

save

Save the pipeline with its current configuration. Updates the pipeline in the database with the current nodes, inputs and outputs configuration.

deploy=True vs deploy=False — the branch model

Think of a pipeline like a Git repo:
  • Working tree — the Pipeline object in your Python process. Every pipeline.add(...) mutation lives here.
  • Main branch — the branch_id on the server. save(deploy=False) writes your working tree to this branch as a new commit. Anything reading by branch_id (the platform editor, ad-hoc pipeline.run(...) from this SDK process) immediately sees the change.
  • Deployed version — what callers of the published pipeline get. Chatbots, integrations, scheduled runs, and the platform’s “Run published” button all read this version. save(deploy=True) (the default) promotes the current main-branch state to be the new deployed version.
bump attaches a semantic-version tag ("major", "minor", or "patch") to the deploy. Consumers can then pin to that version via Pipeline.fetch(id=..., version="1.2.0") instead of always tracking latest. In practice:
  • Iterating on a draft? save(deploy=False) — keeps the deployed version stable while you tweak.
  • Ready to ship? save(deploy=True) (default) — optionally with bump="patch" + description="..." for a labelled release.
Parameters
deploy
bool
default:"True"
When True, promotes the saved state to be the new deployed version (the one chatbots, integrations, and the “Run published” path will hit). When False, only updates the working/main branch — the deployed version is untouched until the next save(deploy=True).
bump
Optional[BumpLevel]
default:"None"
Semantic-version bump level: "major", "minor", or "patch". Only meaningful with deploy=True. See BumpLevel.
description
Optional[str]
default:"None"
Updates the pipeline description; also used as the changelog entry when bumping a version.
Returns
returns
dict: A dictionary containing the status of the save operation.
Raises
Exception
exception
If the pipeline update fails.

fetch

Fetches an existing pipeline by id or name. branch_id and version only apply when fetching by id. Parameters
id
Optional[str]
default:"None"
The unique identifier of the pipeline to fetch.
name
Optional[str]
default:"None"
The name of the pipeline to fetch. When multiple pipelines share the same name, the most recently modified one is returned.
branch_id
Optional[str]
default:"None"
Fetch the pipeline for a specific branch (id-fetch only).
version
Optional[str]
default:"None"
Semantic version to fetch (e.g. "1.2.0"), or "latest" (id-fetch only).
username
Optional[str]
default:"None"
The username of the pipeline owner.
org_name
Optional[str]
default:"None"
The organization name of the pipeline owner.
Returns
returns
Pipeline
Pipeline: The fetched Pipeline instance.
Raises
ValueError
exception
If neither id nor name is provided.

list

List pipelines. Parameters
folder_id
Optional[str]
default:"None"
Filter pipelines by folder.
include_shared
Optional[bool]
default:"None"
Include shared pipelines.
verbose
Optional[bool]
default:"None"
Include full pipeline details.
offset
Optional[int]
default:"None"
Pagination offset.
limit
Optional[int]
default:"None"
Maximum number of pipelines to return.
Returns
returns
list[Pipeline]
A list of Pipeline instances.

delete

Deletes an existing pipeline. Returns
returns
dict: A dictionary containing the status of the deletion operation.
Raises
Exception
exception
If the pipeline couldn’t be deleted.

duplicate

Duplicate this pipeline. Parameters
name
Optional[str]
default:"None"
Name for the duplicate. Auto-generated if omitted.
description
Optional[str]
default:"None"
Description for the duplicate.
folder_id
Optional[str]
default:"None"
Folder to place the duplicate in.
Returns
returns
Pipeline
A new Pipeline instance for the duplicated pipeline.

Building

add

Fluent builder for adding nodes to this pipeline. Usage
Returns
returns
NodeAdder

add_batch

Fluent builder that adds nodes with execution_mode='batch'. Usage
Returns
returns
BatchNodeAdder

Node catalogue

pipeline.add(name=).<node_type>(...) exposes every node type as a typed builder method. There are ~500 node types in total. The biggest categories: Each builder returns a typed node object with attributes (.text, .response, .results, .path_0, etc.) you wire into downstream nodes. The full surface ships as a .pyi stub (vectorshift/pipeline/node_adder.pyi) — your editor’s autocomplete is the canonical browseable catalogue.
For runnable examples covering each category, see the pipeline examples gallery — the sidebar groups them by purpose (Core, Logic & routing, Composition, Streaming, Background, Integrations, Lifecycle).

add_node

Add a node to the pipeline. If a node with the same name already exists, it will be replaced in-place. Parameters
node
Node
required
The node to add to the pipeline.

remove_node

Remove a node (and its connected edges) from the pipeline. Provide either node_id or node_name. Parameters
node_id
Optional[str]
default:"None"
ID of the node to remove.
node_name
Optional[str]
default:"None"
Name of the node to remove.
Returns
returns
dict[str, Any]
\{"status": "success", "node_id": "\<resolved_node_id>"\}

Running

run

Run the pipeline with the specified inputs. Parameters
inputs
dict[str, Any]
required
Dictionary of input nodes -> input values for the pipeline. eg: {“input_node”: “Hello, world!”}
stream
bool
default:"False"
Whether to stream the response. (Set true only when pipeline has an output node with a streaming llm input)
stream_all_outputs
bool
default:"False"
Whether to stream all outputs as they arrive.
session_id
Optional[str]
default:"None"
Optional session ID for run grouping and tracing. Groups multiple runs under the same session for analytics and observability. Note: this does not provide conversational memory to LLM nodes — each run’s LLM nodes only see the current inputs.
node_input_overrides
Optional[dict[str, Any]]
default:"None"
Optional per-node input overrides.
send_intermediate_results
Optional[bool]
default:"None"
Whether to send intermediate results (default: True on server).
Returns
returns
Union[dict[str, Any], Generator]
Union[dict[str, Any], Generator]: A dictionary containing pipeline outputs and run_id. If stream is True, returns a generator that yields response chunks.
Raises
Exception
exception
If the pipeline execution fails.

bulk_run

Run the pipeline with a list of specified inputs. Parameters
inputs
list[dict[str, Any]]
required
List of dictionaries of input values for the pipeline.
Returns
returns
dict[str, Any]
A single dictionary with two keys: run_outputs — a list with one entry per input set, each containing that run’s outputs — and status, the overall bulk-run status. (Note: this is one dict wrapping all runs, not a list.)
Raises
Exception
exception
If the pipeline execution fails.

run_status

Check the status of an async pipeline run. Parameters
run_id
str
required
The run/task ID returned by :meth:start.
Returns
returns
RunStatus
A :class:RunStatus dict with keys task_id, status, and optionally error or result. See RunStatus.

Background runs

start

Start pipeline in background, return a RunHandler. Parameters
inputs
dict[str, Any]
required
Dictionary of input values for the pipeline.
session_id
Optional[str]
default:"None"
Optional session ID for run grouping and tracing. Groups multiple runs under the same session for analytics and observability. Note: this does not provide conversational memory to LLM nodes — each run’s LLM nodes only see the current inputs.
node_input_overrides
Optional[dict[str, Any]]
default:"None"
Optional per-node input overrides.
send_intermediate_results
Optional[bool]
default:"None"
Whether to send intermediate results.
webhook_url
Optional[str]
default:"None"
URL to call when the run completes.
version
Optional[str]
default:"None"
Pipeline version to run.
trace_id
Optional[str]
default:"None"
Trace ID for observability.
Returns
returns
RunHandler
A :class:RunHandler for the background run.

terminate

Terminate an active pipeline run. Parameters
run_id
str
required
The pipeline run ID to terminate.
Returns
returns
dict[str, Any]
\{"status": "success"\}

Streaming

stream

Run the pipeline with streaming, yielding StreamChunk objects. Parameters
inputs
dict[str, Any]
required
Dictionary of input values for the pipeline.
stream_all_outputs
bool
default:"False"
Whether to stream all outputs as they arrive.
session_id
Optional[str]
default:"None"
Optional session ID for run grouping and tracing. Groups multiple runs under the same session for analytics and observability. Note: this does not provide conversational memory to LLM nodes — each run’s LLM nodes only see the current inputs.
node_input_overrides
Optional[dict[str, Any]]
default:"None"
Optional per-node input overrides.
version
Optional[str]
default:"None"
Pipeline version to run.
Returns
returns
Generator[StreamChunk, None, None]
A generator of :class:StreamChunk objects.

Sharing & publishing

share

Share this pipeline with a user or organization. At least one of user_id or org_id is required. Parameters
user_id
Optional[str]
default:"None"
User ID to share with.
org_id
Optional[str]
default:"None"
Organization ID to share with.
role
Literal[viewer, editor]
default:"'viewer'"
Permission role ("viewer" or "editor").
name
Optional[str]
default:"None"
Display name for the shared entity.
Returns
returns
dict[str, Any]
\{"status": "success"\}

unshare

Remove sharing for this pipeline. At least one of user_id or org_id is required. Parameters
user_id
Optional[str]
default:"None"
User ID to unshare.
org_id
Optional[str]
default:"None"
Organization ID to unshare.
Returns
returns
dict[str, Any]
\{"status": "success"\}

publish

Publish this pipeline to the marketplace. Parameters
title
str
required
Marketplace listing title.
description
str
default:"''"
Marketplace listing description.
tags
Optional[list[str]]
default:"None"
Optional list of tags.
internal
bool
default:"False"
If True, publish as internal-only.
Returns
returns
dict[str, Any]
\{"status": "success", "id": "\<marketplace_object_id>"\}

unpublish

Remove this pipeline from the marketplace. Parameters
marketplace_id
str
required
The marketplace listing ID to remove.
Returns
returns
dict[str, Any]
\{"status": "success"\}

move_to_folder

Move the pipeline to a different folder. Parameters
folder_id
str
required
Target folder ID.
Returns
returns
dict[str, Any]
\{"status": "success"\}

Versioning

revert

Revert pipeline to a specific version. .. note:
Parameters
version
str
required
Semantic version string, e.g. "1.2.3".
Returns
returns
dict[str, Any]
\{"status": "success"\}

Serialization

to_dict

Convert Pipeline to ObjectInfo dict format for use in other nodes. Returns
returns
dict

from_json

Parameters
data
dict
required
Returns
returns
Pipeline

serialize_inputs

Parameters
inputs
dict[str, Any]
required
Returns
returns
dict[str, Any]

Types

Configuration objects, response shapes, and enums used by the methods above.

BumpLevel

Members
  • PATCH = "patch"
  • MINOR = "minor"
  • MAJOR = "major"

RunResult

Response from :meth:Pipeline.run / :meth:Pipeline.arun. Fields
run_id
str
required
outputs
dict[str, Any]
required
trace_id
str
required

RunStatus

Response from :meth:Pipeline.run_status / :meth:RunHandler.run_status. Fields
task_id
str
required
status
Literal[in_progress, completed, failed]
required
error
str
required
result
dict[str, Any]
required

StartResult

Response from :meth:Pipeline.start background run initiation. Fields
task_id
str
required
trace_id
str
required