Skip to main content

Lifecycle

new

Create a new pipeline with the specified parameters. Parameters
str
required
The name of the pipeline.
Optional[list[Node]]
default:"None"
List of nodes to include in the pipeline.
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
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).
Optional[BumpLevel]
default:"None"
Semantic-version bump level: "major", "minor", or "patch". Only meaningful with deploy=True. See BumpLevel.
Optional[str]
default:"None"
Updates the pipeline description; also used as the changelog entry when bumping a version.
Returns
dict: A dictionary containing the status of the save operation.
Raises
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
Optional[str]
default:"None"
The unique identifier of the pipeline to fetch.
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.
Optional[str]
default:"None"
Fetch the pipeline for a specific branch (id-fetch only).
Optional[str]
default:"None"
Semantic version to fetch (e.g. "1.2.0"), or "latest" (id-fetch only).
Optional[str]
default:"None"
The username of the pipeline owner.
Optional[str]
default:"None"
The organization name of the pipeline owner.
Returns
Pipeline
Pipeline: The fetched Pipeline instance.
Raises
exception
If neither id nor name is provided.

list

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

delete

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

duplicate

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

Building

add

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

add_batch

Fluent builder that adds nodes with execution_mode='batch'. Usage
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
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
Optional[str]
default:"None"
ID of the node to remove.
Optional[str]
default:"None"
Name of the node to remove.
Returns
dict[str, Any]
\{"status": "success", "node_id": "\<resolved_node_id>"\}

Running

run

Run the pipeline with the specified inputs. Parameters
dict[str, Any]
required
Dictionary of input nodes -> input values for the pipeline. eg: {“input_node”: “Hello, world!”}
bool
default:"False"
Whether to stream the response. (Set true only when pipeline has an output node with a streaming llm input)
bool
default:"False"
Whether to stream all outputs as they arrive.
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.
Optional[dict[str, Any]]
default:"None"
Optional per-node input overrides.
Optional[bool]
default:"None"
Whether to send intermediate results (default: True on server).
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
If the pipeline execution fails.

bulk_run

Run the pipeline with a list of specified inputs. Parameters
list[dict[str, Any]]
required
List of dictionaries of input values for the pipeline.
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
If the pipeline execution fails.

run_status

Check the status of an async pipeline run. Parameters
str
required
The run/task ID returned by :meth:start.
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
dict[str, Any]
required
Dictionary of input values for the pipeline.
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.
Optional[dict[str, Any]]
default:"None"
Optional per-node input overrides.
Optional[bool]
default:"None"
Whether to send intermediate results.
Optional[str]
default:"None"
URL to call when the run completes.
Optional[str]
default:"None"
Pipeline version to run.
Optional[str]
default:"None"
Trace ID for observability.
Returns
RunHandler
A :class:RunHandler for the background run.

terminate

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

Streaming

stream

Run the pipeline with streaming, yielding StreamChunk objects. Parameters
dict[str, Any]
required
Dictionary of input values for the pipeline.
bool
default:"False"
Whether to stream all outputs as they arrive.
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.
Optional[dict[str, Any]]
default:"None"
Optional per-node input overrides.
Optional[str]
default:"None"
Pipeline version to run.
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
Optional[str]
default:"None"
User ID to share with.
Optional[str]
default:"None"
Organization ID to share with.
Literal[viewer, editor]
default:"'viewer'"
Permission role ("viewer" or "editor").
Optional[str]
default:"None"
Display name for the shared entity.
Returns
dict[str, Any]
\{"status": "success"\}

unshare

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

publish

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

unpublish

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

move_to_folder

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

Versioning

revert

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

Serialization

to_dict

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

from_json

Parameters
dict
required
Returns
Pipeline

serialize_inputs

Parameters
dict[str, Any]
required
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
str
required
dict[str, Any]
required
str
required

RunStatus

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

StartResult

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