Lifecycle
new
str
required
The name of the pipeline.
Optional[list[Node]]
default:"None"
List of nodes to include in the pipeline.
Pipeline
A new Pipeline instance.
save
deploy=True vs deploy=False — the branch model
Think of a pipeline like a Git repo:
- Working tree — the
Pipelineobject in your Python process. Everypipeline.add(...)mutation lives here. - Main branch — the
branch_idon the server.save(deploy=False)writes your working tree to this branch as a new commit. Anything reading bybranch_id(the platform editor, ad-hocpipeline.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 withbump="patch"+description="..."for a labelled release.
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.
dict: A dictionary containing the status of the save operation.
exception
If the pipeline update fails.
fetch
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.
Pipeline
Pipeline: The fetched Pipeline instance.
exception
If neither id nor name is provided.
list
Optional[str]
default:"None"
Filter pipelines by folder.
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.
list[Pipeline]
A list of Pipeline instances.
delete
dict: A dictionary containing the status of the deletion operation.
exception
If the pipeline couldn’t be deleted.
duplicate
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.
Pipeline
A new Pipeline instance for the duplicated pipeline.
Building
add
NodeAdder
add_batch
execution_mode='batch'.
Usage
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.
add_node
Node
required
The node to add to the pipeline.
remove_node
Optional[str]
default:"None"
ID of the node to remove.
Optional[str]
default:"None"
Name of the node to remove.
dict[str, Any]
\{"status": "success", "node_id": "\<resolved_node_id>"\}Running
run
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).
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.
exception
If the pipeline execution fails.
bulk_run
list[dict[str, Any]]
required
List of dictionaries of input values for the pipeline.
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.)exception
If the pipeline execution fails.
run_status
str
required
The run/task ID returned by :meth:
start.RunStatus
A :class:
RunStatus dict with keys task_id, status, and
optionally error or result. See RunStatus.Background runs
start
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.
RunHandler
A :class:
RunHandler for the background run.terminate
str
required
The pipeline run ID to terminate.
dict[str, Any]
\{"status": "success"\}Streaming
stream
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.
Generator[StreamChunk, None, None]
A generator of :class:
StreamChunk objects.Sharing & publishing
share
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.
dict[str, Any]
\{"status": "success"\}unshare
Optional[str]
default:"None"
User ID to unshare.
Optional[str]
default:"None"
Organization ID to unshare.
dict[str, Any]
\{"status": "success"\}publish
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.
dict[str, Any]
\{"status": "success", "id": "\<marketplace_object_id>"\}unpublish
str
required
The marketplace listing ID to remove.
dict[str, Any]
\{"status": "success"\}move_to_folder
str
required
Target folder ID.
dict[str, Any]
\{"status": "success"\}Versioning
revert
str
required
Semantic version string, e.g.
"1.2.3".dict[str, Any]
\{"status": "success"\}Serialization
to_dict
dict
from_json
dict
required
Pipeline
serialize_inputs
dict[str, Any]
required
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
