> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vectorshift.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Transforms & data ops nodes

> Text, list, JSON, CSV, Excel, table, and dataframe operations.

Add these nodes with the pipeline builder: `pipeline.add(name="...").<node>(...)`. Each entry lists the node's configuration parameters. See the [Pipeline reference](/sdk/pipeline/reference) for `add`, `run`, and lifecycle methods.

## `ai_filter_list`

Filter items in a list given a specific AI condition. Example, Filter (Red, White, Boat) by whether it is a color: (Red, White)

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").ai_filter_list(provider="anthropic", ai_condition="...", filter_by=..., list_to_filter=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="filter_mode" type="str" default="'single'">
  Choose whether to filter a single list or filter by another list
  One of: `another`, `single`
</ParamField>

<ParamField path="provider" type="str" required>
  The model provider

  <Expandable title="Allowed values">
    `anthropic`, `azure`, `bedrock`, `cohere`, `custom`, `fireworks`, `google`, `groq`, `openai`, `perplexity`, `together`, `xai`
  </Expandable>
</ParamField>

<ParamField path="model" type="str" default="''">
  The specific model for filtering

  <Expandable title="Allowed values">
    `MiniMaxAI/MiniMax-M2.5`, `MiniMaxAI/MiniMax-M2.7`, `Qwen/QwQ-32B-Preview`, `Qwen/Qwen2.5-72B-Instruct-Turbo-lora`, `Qwen/Qwen2.5-7B-Instruct-Turbo`, `Qwen/Qwen3-235B-A22B-Instruct-2507-tput`, `Qwen/Qwen3-235B-A22B-fp8-tput`, `Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8`, `Qwen/Qwen3-VL-8B-Instruct`, `Qwen/Qwen3.5-397B-A17B`, `Qwen/Qwen3.5-9B`, `Qwen/Qwen3.6-Plus`, `accounts/fireworks/models/deepseek-v4-pro`, `accounts/fireworks/models/glm-5p1`, `accounts/fireworks/models/gpt-oss-120b`, `accounts/fireworks/models/kimi-k2p5`, `accounts/fireworks/models/kimi-k2p6`, `accounts/fireworks/models/minimax-m2p7`, `accounts/fireworks/models/qwen3-235b-a22b`, `accounts/fireworks/models/qwen3p5-397b-a17b`, `accounts/fireworks/models/qwen3p6-plus`, `amazon.nova-lite-v1:0`, `amazon.nova-micro-v1:0`, `amazon.nova-pro-v1:0`, `amazon.titan-text-express-v1`, `amazon.titan-text-lite-v1`, `chatgpt-4o-latest`, `claude-3-5-haiku-20241022`, `claude-3-7-sonnet-20250219`, `claude-3-haiku-20240307`, `claude-haiku-4-5-20251001`, `claude-opus-4-1-20250805`, `claude-opus-4-20250514`, `claude-opus-4-5-20251101`, `claude-opus-4-6`, `claude-opus-4-7`, `claude-opus-4-8`, `claude-sonnet-4-20250514`, `claude-sonnet-4-5`, `claude-sonnet-4-6`, `command-nightly`, `command-r-08-2024`, `command-r-plus-08-2024`, `deepcogito/cogito-v2-1-671b`, `deepseek-ai/DeepSeek-R1-Distill-Llama-70B`, `deepseek-ai/DeepSeek-V3`, `deepseek-ai/DeepSeek-V4-Pro`, `deepseek-ai/deepseek-llm-67b-chat`, `gemini-2.0-flash-001`, `gemini-2.0-flash-lite-preview-02-05`, `gemini-2.5-flash`, `gemini-2.5-pro`, `gemini-3-flash-preview`, `gemini-3-pro-preview`, `gemini-3.1-flash-lite-preview`, `gemini-3.1-pro-preview`, `gemini-3.5-flash`, `gemma2-9b-it`, `google/gemma-2-27b-it`, `google/gemma-2-9b-it`, `google/gemma-2b-it`, `google/gemma-3n-E4B-it`, `google/gemma-4-31B-it`, `gpt-3.5-turbo`, `gpt-4`, `gpt-4-turbo`, `gpt-4-turbo-2024-04-09`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-4o`, `gpt-4o-2024-08-06`, `gpt-4o-mini`, `gpt-5`, `gpt-5-mini`, `gpt-5-nano`, `gpt-5.1`, `gpt-5.1-codex`, `gpt-5.1-codex-mini`, `gpt-5.2`, `gpt-5.3-codex`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano`, `gpt-5.5`, `grok-2`, `grok-2-vision`, `grok-3-beta`, `grok-3-fast-beta`, `grok-3-mini-beta`, `grok-3-mini-fast-beta`, `grok-4`, `grok-4-0629`, `grok-4-0709`, `grok-4-fast-non-reasoning`, `grok-4-fast-reasoning`, `grok-4-latest`, `llama-3.1-8b-instant`, `llama-3.3-70b-versatile`, `meta-llama/Llama-3-70b-chat-hf`, `meta-llama/Llama-3-8b-chat-hf`, `meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo`, `meta-llama/Llama-3.2-3B-Instruct-Turbo`, `meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo`, `meta-llama/Llama-3.3-70B-Instruct-Turbo`, `meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`, `meta-llama/Llama-4-Scout-17B-16E-Instruct`, `meta-llama/Meta-Llama-3-70B-Instruct-Lite`, `meta-llama/Meta-Llama-3-70B-Instruct-Turbo`, `meta-llama/Meta-Llama-3-8B-Instruct-Lite`, `meta-llama/Meta-Llama-3-8B-Instruct-Turbo`, `meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo`, `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo`, `meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo`, `meta.llama3-8b-instruct-v1:0`, `mistralai/Mistral-7B-Instruct-v0.1`, `mistralai/Mistral-7B-Instruct-v0.2`, `mistralai/Mistral-7B-Instruct-v0.3`, `mistralai/Mixtral-8x22B-Instruct-v0.1`, `mistralai/Mixtral-8x7B-Instruct-v0.1`, `mixtral-8x7b-32768`, `moonshotai/Kimi-K2-Instruct`, `moonshotai/Kimi-K2.5`, `moonshotai/Kimi-K2.6`, `o1`, `o3`, `o3-mini`, `o4-mini`, `openai/gpt-oss-120b`, `openai/gpt-oss-20b`, `perplexity-ai/r1-1776`, `r1-1776`, `sonar`, `sonar-deep-research`, `sonar-pro`, `sonar-reasoning-pro`, `us.anthropic.claude-haiku-4-5-20251001-v1:0`, `us.anthropic.claude-opus-4-1-20250805-v1:0`, `us.anthropic.claude-opus-4-5-20251101-v1:0`, `us.anthropic.claude-opus-4-6-v1`, `us.anthropic.claude-sonnet-4-20250514-v1:0`, `us.anthropic.claude-sonnet-4-5-20250929-v1:0`, `us.anthropic.claude-sonnet-4-6`, `us.meta.llama3-1-70b-instruct-v1:0`, `us.meta.llama3-1-8b-instruct-v1:0`, `us.meta.llama3-2-11b-instruct-v1:0`, `us.meta.llama3-2-1b-instruct-v1:0`, `us.meta.llama3-2-3b-instruct-v1:0`, `us.meta.llama3-2-90b-instruct-v1:0`, `zai-org/GLM-4.5-Air-FP8`, `zai-org/GLM-5`, `zai-org/GLM-5.1`
  </Expandable>
</ParamField>

<ParamField path="ai_condition" type="str" required>
  Write in natural language the condition to filter each item in the list
</ParamField>

<ParamField path="filter_by" type="list[str]" required>
  The items to filter the list by
</ParamField>

<ParamField path="list_to_filter" type="list[str]" required>
  The list to filter
</ParamField>

<ParamField path="output_blank_value" type="bool" default="False">
  If true, output a blank value for values that do not meet the filter condition. If false, nothing will be outputted
</ParamField>

<ParamField path="sampling" type="SamplingConfig" />

<ParamField path="max_tokens" type="Any" />

<ParamField path="temperature" type="Any" />

<ParamField path="top_p" type="Any" />

## `combine_list`

Combine multiple lists into one list. Final list is ordered in the order of the input lists.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").combine_list(list=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="type" type="str" default="'string'">
  The type of the list

  <Expandable title="Allowed values">
    `agent`, `any`, `audio`, `bool`, `dataframe`, `file`, `float`, `image`, `int32`, `json`, `knowledge_base`, `path`, `string`, `timestamp`, `vec&lt;file&gt;`, `vec&lt;string&gt;`
  </Expandable>
</ParamField>

<ParamField path="list" type="ListType | list[List[Any]] | list[List[List[Any]]]" required>
  List to be combined
</ParamField>

## `combine_text`

Combine text inputs into a singular output.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").combine_text(text=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="text" type="list[str]" required />

## `create_list`

Create a list from input texts. Final list is ordered in the order of the inputs.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").create_list(list=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="type" type="str" default="'string'">
  The type of the list

  <Expandable title="Allowed values">
    `agent`, `any`, `audio`, `bool`, `dataframe`, `file`, `float`, `image`, `int32`, `json`, `knowledge_base`, `path`, `string`, `timestamp`, `vec&lt;file&gt;`, `vec&lt;string&gt;`
  </Expandable>
</ParamField>

<ParamField path="list" type="ListType | list[Any] | list[List[Any]]" required>
  Value to be added to the list
</ParamField>

## `csv_query`

Utilizes an LLM agent to query CSV(s). Delimeter for the CSV must be commas.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").csv_query(query="...", csv=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="query" type="str" required />

<ParamField path="csv" type="AcceptsFile" required />

<ParamField path="stream" type="bool" default="False" />

## `csv_reader`

Read the contents from a CSV file and output a list of the data for each column.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").csv_reader(selected_file=..., sheet="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="file_type" type="str" default="'CSV'">
  The type of file to read.
  One of: `CSV`, `EXCEL`
</ParamField>

<ParamField path="is_file_variable" type="bool" default="True" />

<ParamField path="processed_outputs" type="dict" default="{}" />

<ParamField path="selected_file" type="AcceptsFile" required>
  The file to read.
</ParamField>

<ParamField path="sheet" type="str" required>
  The Excel sheet to read from.
</ParamField>

<ParamField path="sheets" type="list[str]" default="[]" />

<ParamField path="manual_columns" type="ListType | list[ColumnItem] | list[List[Dict[str, Any]]]" default="[]">
  Define the name(s) of the columns that you want to read
</ParamField>

<ParamField path="columns" type="ListType | list[ColumnItem]" default="[]">
  Define the name(s) of the columns that you want to read
</ParamField>

## `csv_to_excel`

Convert a CSV file into XLSX.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").csv_to_excel()
  ```
</CodeGroup>

**Parameters**

<ParamField path="csv_file" type="AcceptsFile" />

<ParamField path="horizontal_alignment" type="str" default="'left'">
  One of: `center`, `centerContinuous`, `distributed`, `fill`, `general`, `justify`, `left`, `right`
</ParamField>

<ParamField path="max_column_width" type="int" default="100" />

<ParamField path="vertical_alignment" type="str" default="'top'">
  One of: `bottom`, `center`, `distributed`, `justify`, `top`
</ParamField>

<ParamField path="wrap_text" type="bool" default="True" />

## `csv_writer`

Create a CSV from data.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").csv_writer()
  ```
</CodeGroup>

**Parameters**

<ParamField path="selected_option" type="str" default="'new'">
  Whether to create a new CSV or update an existing one.
  One of: `new`, `old`
</ParamField>

<ParamField path="load_option" type="str" default="'file'">
  Whether to load the CSV from a file or a string.
  One of: `file`, `text`
</ParamField>

<ParamField path="columns" type="ListType | list[ListNameTypeValue] | list[List[Dict[str, Any]]]" default="[]">
  The columns to write to the CSV.
</ParamField>

<ParamField path="selected_file" type="AcceptsFile">
  The file to update.
</ParamField>

<ParamField path="csv_string" type="str" default="''">
  The CSV string to write.
</ParamField>

## `dataframe_aggregate`

Aggregate data from a dataframe.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").dataframe_aggregate(aggregation_column="...", aggregation_type="AVG", dataframe=..., group_by_columns=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="dataframe_type" type="str" default="'table'">
  The type of dataframe to be used
  One of: `table`
</ParamField>

<ParamField path="aggregation_column" type="str" required>
  Select a numeric column (integer or decimal) to perform aggregation
</ParamField>

<ParamField path="aggregation_type" type="str" required>
  The aggregation to perform
  One of: `AVG`, `COUNT`, `MAX`, `MIN`, `SUM`
</ParamField>

<ParamField path="dataframe" type="AcceptsDataframe" required>
  The dataframe to aggregate
</ParamField>

<ParamField path="group_by_columns" type="list[str]" required>
  The columns to group by
</ParamField>

## `dataframe_get_schema`

Get the schema of a dataframe including columns, types, and constraints.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").dataframe_get_schema(dataframe=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="dataframe_type" type="str" default="'table'">
  The type of dataframe to be used
  One of: `table`
</ParamField>

<ParamField path="dataframe" type="AcceptsDataframe" required>
  The dataframe to get schema from
</ParamField>

## `dataframe_nl_query`

Execute natural language queries on dataframes.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").dataframe_nl_query(dataframe=..., nlquery="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="dataframe_type" type="str" default="'table'">
  The type of dataframe to be used
  One of: `table`
</ParamField>

<ParamField path="dataframe" type="AcceptsDataframe" required>
  The dataframe to query using natural language
</ParamField>

<ParamField path="nlquery" type="str" required>
  Ask a question about your data in natural language. Example: What are the top 10 rows?
</ParamField>

## `dataframe_operations`

Dataframe Operations

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").dataframe_operations()
  ```
</CodeGroup>

**Parameters**

<ParamField path="sub_type" type="str" default="''" />

## `dataframe_raw_query`

Execute custom queries on dataframes.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").dataframe_raw_query(query="...", dataframe=..., preload=True)
  ```
</CodeGroup>

**Parameters**

<ParamField path="dataframe_type" type="str" default="'table'">
  The type of dataframe to be used
  One of: `table`
</ParamField>

<ParamField path="query" type="str" required>
  SQL query to execute on the dataframe. Use \{df} as the table name placeholder. Example: SELECT \* FROM \{df} limit 10;
</ParamField>

<ParamField path="dataframe" type="AcceptsDataframe" required>
  The dataframe to query
</ParamField>

<ParamField path="preload" type="bool" required>
  Whether to preload dataframe instead of lazy load
</ParamField>

## `dataframe_read_columns`

Read columns from a dataframe.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").dataframe_read_columns(column_name="...", dataframe=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="column_type" type="str" default="'any'">
  The expected type of the column values

  <Expandable title="Allowed values">
    `any`, `audio`, `bool`, `file`, `float`, `image`, `int32`, `knowledge_base`, `list&lt;file&gt;`, `list&lt;string&gt;`, `string`, `timestamp`
  </Expandable>
</ParamField>

<ParamField path="dataframe_type" type="str" default="'table'">
  The type of dataframe to be used
  One of: `table`
</ParamField>

<ParamField path="column_name" type="str" required>
  The name of the column to read
</ParamField>

<ParamField path="dataframe" type="AcceptsDataframe" required />

## `duplicate_list`

Create a new list by duplicating a single item with the size of the new list either matching the size of another list, or a specified size.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").duplicate_list(input_field=..., list_size_to_match=..., list_size=0)
  ```
</CodeGroup>

**Parameters**

<ParamField path="specify_list_size" type="bool" default="False">
  Check this box if you want to manually specify the list size. In this case 'Match List Size' will not be used.
</ParamField>

<ParamField path="type" type="str" default="'string'">
  The type of the list

  <Expandable title="Allowed values">
    `agent`, `any`, `audio`, `bool`, `dataframe`, `file`, `float`, `image`, `int32`, `json`, `knowledge_base`, `path`, `string`, `timestamp`, `vec&lt;file&gt;`, `vec&lt;string&gt;`
  </Expandable>
</ParamField>

<ParamField path="input_field" type="Any | ListType | list[Any]" required>
  Item to duplicate
</ParamField>

<ParamField path="list_size_to_match" type="list[str]" required>
  The size of the list you want to match
</ParamField>

<ParamField path="list_size" type="int" required>
  The size of the new list
</ParamField>

## `excel_cell_reader`

Read data from an Excel cell.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").excel_cell_reader(cell_index="...", selected_file=..., sheet="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="cell_index" type="str" required />

<ParamField path="read_formatting" type="bool" default="False" />

<ParamField path="selected_file" type="AcceptsFile" required />

<ParamField path="sheet" type="str" required />

## `excel_cell_writer`

Write data to an Excel cell.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").excel_cell_writer(cell_index="...", cell_value="...", selected_file=..., sheet="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="set_vertical_alignment" type="bool" default="False">
  Whether to set the vertical alignment of the cell.
</ParamField>

<ParamField path="set_horizontal_alignment" type="bool" default="False">
  Whether to set the horizontal alignment of the cell.
</ParamField>

<ParamField path="set_fill_color" type="bool" default="False">
  Whether to set the fill color of the cell.
</ParamField>

<ParamField path="cell_index" type="str" required>
  The cell to read from.
</ParamField>

<ParamField path="cell_value" type="str" required>
  The value to write to the cell.
</ParamField>

<ParamField path="fill_color" type="str" default="'FFFFFF'">
  The fill color of the cell.
</ParamField>

<ParamField path="horizontal_alignment" type="str" default="'left'">
  The horizontal alignment of the cell.
  One of: `center`, `centerContinuous`, `distributed`, `fill`, `general`, `justify`, `left`, `right`
</ParamField>

<ParamField path="selected_file" type="AcceptsFile" required>
  The file to read from.
</ParamField>

<ParamField path="sheet" type="str" required>
  The sheet to read from.
</ParamField>

<ParamField path="vertical_alignment" type="str" default="'bottom'">
  The vertical alignment of the cell.
  One of: `bottom`, `center`, `distributed`, `justify`, `top`
</ParamField>

## `excel_file_reader`

Read data from an Excel file.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").excel_file_reader(selected_file=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="read_single_sheet" type="bool" default="True">
  Whether to read a single sheet from the Excel file.
</ParamField>

<ParamField path="read_formatting" type="bool" default="False">
  Whether to read the formatting of the cell.
</ParamField>

<ParamField path="read_formula" type="bool" default="False">
  Whether to read the formula of the cell.
</ParamField>

<ParamField path="selected_file" type="AcceptsFile" required>
  The file to read from.
</ParamField>

<ParamField path="sheet" type="str" default="''">
  The sheet to read from.
</ParamField>

## `excel_operations`

Process and manipulate Excel files

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").excel_operations()
  ```
</CodeGroup>

**Parameters**

<ParamField path="sub_type" type="str" default="''" />

## `excel_sheets_reader`

Get list of all sheet names from an Excel file.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").excel_sheets_reader(selected_file=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="selected_file" type="AcceptsFile" required />

## `excel_writer`

Write data to an Excel sheet.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").excel_writer(cell_start_index="...", cell_values=..., selected_file=..., sheet="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="set_vertical_alignment" type="bool" default="False">
  Whether to set the vertical alignment of the cells.
</ParamField>

<ParamField path="set_horizontal_alignment" type="bool" default="False">
  Whether to set the horizontal alignment of the cells.
</ParamField>

<ParamField path="set_fill_color" type="bool" default="False">
  Whether to set the fill color of the cells.
</ParamField>

<ParamField path="cell_start_index" type="str" required>
  The cell to start writing from.
</ParamField>

<ParamField path="cell_values" type="list[str]" required>
  The values to write to the cells.
</ParamField>

<ParamField path="fill_color" type="str" default="'FFFFFF'">
  The fill color of the cells.
</ParamField>

<ParamField path="horizontal_alignment" type="str" default="'left'">
  The horizontal alignment of the cells.
  One of: `center`, `centerContinuous`, `distributed`, `fill`, `general`, `justify`, `left`, `right`
</ParamField>

<ParamField path="selected_file" type="AcceptsFile" required>
  The file to write to.
</ParamField>

<ParamField path="sheet" type="str" required>
  The sheet to write to.
</ParamField>

<ParamField path="vertical_alignment" type="str" default="'bottom'">
  The vertical alignment of the cells.
  One of: `bottom`, `center`, `distributed`, `justify`, `top`
</ParamField>

## `extract_to_table`

Extract data to a CSV using AI

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").extract_to_table(file=..., text_for_extraction="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="model" type="str" default="'gpt-4o'">
  One of: `gpt-4o`, `gpt-4o-2024-08-06`, `gpt-4o-mini`
</ParamField>

<ParamField path="add_columns_manually" type="bool" default="False" />

<ParamField path="additional_context" type="str" default="''" />

<ParamField path="extract_multiple_rows" type="bool" default="True" />

<ParamField path="file" type="AcceptsFile" required />

<ParamField path="manual_columns" type="ListType | list[ColumnEntry] | list[List[Dict[str, Any]]]" default="[]" />

<ParamField path="provider" type="str" default="'openai'">
  One of: `openai`
</ParamField>

<ParamField path="text_for_extraction" type="str" required />

## `filter_list`

Filter items in a list given a specific condition. Example, Filter (Red, White, Blue) by (100, 95, 80)>90 is (Red, White)

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").filter_list(condition_type="Equal", filter_by=..., list_to_filter=..., output_blank_value=True)
  ```
</CodeGroup>

**Parameters**

<ParamField path="filter_mode" type="str" default="'single'">
  Choose whether to filter a single list or filter by another list
  One of: `another`, `single`
</ParamField>

<ParamField path="type" type="str" default="'string'">
  The type of the list

  <Expandable title="Allowed values">
    `agent`, `any`, `audio`, `bool`, `dataframe`, `file`, `float`, `image`, `int32`, `json`, `knowledge_base`, `path`, `string`, `timestamp`, `vec&lt;file&gt;`, `vec&lt;string&gt;`
  </Expandable>
</ParamField>

<ParamField path="condition_type" type="str" required>
  The type of condition to apply

  <Expandable title="Allowed values">
    `Equal`, `GreaterThan`, `IsEmpty`, `IsFalse`, `IsNotEmpty`, `IsTrue`, `LessThan`, `TextContains`, `TextDoesNotContains`, `TextDoesNotEndWith`, `TextDoesNotStartWith`, `TextEndsWith`, `TextStartsWith`, `VecContainsItem`, `VecDoesNotContainsItem`
  </Expandable>
</ParamField>

<ParamField path="condition_value" type="str" default="''">
  The value to compare the list items against
</ParamField>

<ParamField path="filter_by" type="ListType | list[Any] | list[List[Any]]" required>
  The items to filter the list by
</ParamField>

<ParamField path="list_to_filter" type="ListType | list[Any] | list[List[Any]]" required>
  The list to filter
</ParamField>

<ParamField path="output_blank_value" type="bool" required>
  If true, output a blank value for values that do not meet the filter condition. If false, nothing will be outputted
</ParamField>

## `find_and_replace`

Find and replace words in a given text

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").find_and_replace(text_to_manipulate="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="replacements" type="ListType | list[FindReplace] | list[List[Dict[str, Any]]]" default="[]" />

<ParamField path="text_to_manipulate" type="str" required />

## `flatten_list`

Flatten list of lists into a single list. For example, \[\[a, b], \[c, d]] becomes \[a,b,c,d].

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").flatten_list(list_of_lists=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="type" type="str" default="'string'">
  The type of the list

  <Expandable title="Allowed values">
    `agent`, `any`, `audio`, `bool`, `dataframe`, `file`, `float`, `image`, `int32`, `json`, `knowledge_base`, `path`, `string`, `timestamp`, `vec&lt;file&gt;`, `vec&lt;string&gt;`
  </Expandable>
</ParamField>

<ParamField path="list_of_lists" type="ListType | list[List[Any]] | list[List[List[Any]]]" required>
  List of lists to be flattened
</ParamField>

## `generate_chart`

Use this to generate a chart from. Convert a tabular file, dataframe or table to a chart or graph visualization. Supports bar, line, pie, scatter, and donut charts/graphs.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").generate_chart(dataframe=..., dataframe_column_names="...", dataframe_type="csv", title="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="chart_type" type="str" default="'bar'">
  The type of chart to generate (bar, line, pie, scatter, donut)
  One of: `bar`, `donut`, `line`, `pie`, `scatter`, `time_series`
</ParamField>

<ParamField path="aggregation" type="str" default="'sum'">
  How to aggregate values when there are multiple data points per category
  One of: `average`, `count`, `max`, `min`, `sum`
</ParamField>

<ParamField path="chart_description" type="str" default="''">
  A brief description or subtitle explaining what the chart shows
</ParamField>

<ParamField path="dataframe" type="AcceptsDataframe" required>
  The dataframe to visualize as a chart. In case of csv, the input should be a properly formatted valid csv string with appropriate headers. When chaining from a tool that returned a CSV file (e.g. fetch\_ratios.table), set dataframe\_type="file" and pass \$action.\<id>.table — never paste the upstream formatted\_text/XML here.
</ParamField>

<ParamField path="dataframe_column_names" type="str" required>
  Actual column names from the dataframe. It should be a string representing the comma separated list of column names.
</ParamField>

<ParamField path="dataframe_type" type="str" required>
  The type of dataframe to be used. Only available options are table, csv, md, json, file.
  One of: `csv`, `file`, `json`, `md`, `table`
</ParamField>

<ParamField path="legend_orientation" type="str" default="'right'">
  Where to display the chart legend
  One of: `bottom`, `hidden`, `left`, `right`, `top`
</ParamField>

<ParamField path="sort_order" type="str" default="'ascending'">
  The order to sort the data
  One of: `ascending`, `descending`
</ParamField>

<ParamField path="title" type="str" required>
  The title to display on the chart
</ParamField>

<ParamField path="x_axis_field" type="str" required>
  The column name to use for the X-axis (categories). Must EXACTLY match (case-sensitive) one of the column names from the CSV header.
</ParamField>

<ParamField path="x_axis_label" type="str" default="''">
  The label to display on the X-axis. Defaults to the field name if not provided.
</ParamField>

<ParamField path="y_axis_fields" type="str" required>
  Column name(s) for Y-axis values. Must EXACTLY match (case-sensitive) column name(s) from the CSV header. For multi-series charts (multiple lines/bars), use comma-separated names like 'revenue,profit,cost'.
</ParamField>

<ParamField path="y_axis_label" type="str" default="''">
  The label to display on the Y-axis
</ParamField>

<ParamField path="currency_symbol" type="str" default="''">
  Currency symbol (only used with currency format)
  One of: \`\`, `eur`, `gbp`, `jpy`, `usd`
</ParamField>

<ParamField path="default_time_period" type="str" default="'max'">
  Initial time period tab selection
  One of: `1m`, `1y`, `5y`, `6m`, `max`, `ytd`
</ParamField>

<ParamField path="number_format" type="str" default="'number'">
  How to format values
  One of: `currency`, `number`, `percent`, `ratio`
</ParamField>

<ParamField path="series_icon_urls" type="str" default="''">
  Comma-separated icon URLs for each series (company logos, game art, product images, etc.), in same order as y\_axis\_fields. Leave empty for no icons.
</ParamField>

<ParamField path="series_labels" type="str" default="''">
  Comma-separated display names for each Y-axis field, in same order as y\_axis\_fields (e.g. 'MSFT,NVDA' for tickers, 'Halo,Fortnite' for games, 'US,EU,APAC' for regions).
</ParamField>

<ParamField path="show_percent_change" type="str" default="'false'">
  Set to 'true' to show Original/% Change toggle
</ParamField>

<ParamField path="unit_suffix" type="str" default="''">
  Scale suffix for values
  One of: \`\`, `b`, `k`, `m`, `t`
</ParamField>

## `get_list_item`

Get a value from a list given an index. The first item in the list is index 0.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").get_list_item(index=0, list=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="type" type="str" default="'string'">
  The type of the list

  <Expandable title="Allowed values">
    `agent`, `any`, `audio`, `bool`, `dataframe`, `file`, `float`, `image`, `int32`, `json`, `knowledge_base`, `path`, `string`, `timestamp`, `vec&lt;file&gt;`, `vec&lt;string&gt;`
  </Expandable>
</ParamField>

<ParamField path="index" type="int" required>
  The index of the item to retrieve
</ParamField>

<ParamField path="list" type="ListType | list[Any] | list[List[Any]]" required>
  The list to retrieve the item from
</ParamField>

## `join_list_item`

Join a list of items into a single piece of text. For example, with / as the separator, \['a', 'b', 'c'] becomes 'a/b/c'

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").join_list_item(list=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="join_by_newline" type="bool" default="False">
  Separate each line in the final output with a new line
</ParamField>

<ParamField path="type" type="str" default="'string'">
  The type of the list

  <Expandable title="Allowed values">
    `agent`, `any`, `audio`, `bool`, `dataframe`, `file`, `float`, `image`, `int32`, `json`, `knowledge_base`, `path`, `string`, `timestamp`, `vec&lt;file&gt;`, `vec&lt;string&gt;`
  </Expandable>
</ParamField>

<ParamField path="join_characters" type="str" default="''">
  Use a specified character to join list items into a single string
</ParamField>

<ParamField path="list" type="ListType | list[Any] | list[List[Any]]" required>
  List of items to be joined
</ParamField>

## `json_operations`

Read, create, and update JSON data

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").json_operations()
  ```
</CodeGroup>

**Parameters**

<ParamField path="sub_type" type="str" default="''" />

## `list_deduplicator`

Remove duplicate items from a list. Outputs a list of unique items.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").list_deduplicator(list=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="type" type="str" default="'string'">
  The type of the list
  One of: `bool`, `float`, `int32`, `string`, `timestamp`
</ParamField>

<ParamField path="list" type="ListType | list[Any] | list[List[Any]]" required>
  The list to deduplicate
</ParamField>

## `list_operations`

Process and manipulate lists

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").list_operations()
  ```
</CodeGroup>

**Parameters**

<ParamField path="sub_type" type="str" default="''" />

## `list_trimmer`

Trim a list to just the sections you want. Enter enter the number of items or specify the section of the list that you want to keep.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").list_trimmer(end_index=0, list=..., start_index=0, item_to_keep=0)
  ```
</CodeGroup>

**Parameters**

<ParamField path="specify_section" type="bool" default="False">
  Check this to specify a section of the list to keep. Leave unchecked to keep a specified number of items from the start.
</ParamField>

<ParamField path="type" type="str" default="'string'">
  The type of the list

  <Expandable title="Allowed values">
    `agent`, `any`, `audio`, `bool`, `dataframe`, `file`, `float`, `image`, `int32`, `json`, `knowledge_base`, `path`, `string`, `timestamp`, `vec&lt;file&gt;`, `vec&lt;string&gt;`
  </Expandable>
</ParamField>

<ParamField path="end_index" type="int" required>
  The ending index of the section to keep (exclusive).
</ParamField>

<ParamField path="list" type="ListType | list[Any] | list[List[Any]]" required>
  The list to trim
</ParamField>

<ParamField path="start_index" type="int" required>
  The starting index of the section to keep (inclusive). The first item of the list is index 0.
</ParamField>

<ParamField path="item_to_keep" type="int" required>
  Check this to specify a section of the list to keep. Leave unchecked to keep a specified number of items.
</ParamField>

## `read_json_values`

Read values from a JSON object based on a provided key(s).

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").read_json_values(json_string="...", keys=..., processed_outputs=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="json_string" type="str" required />

<ParamField path="keys" type="ListType | list[KeyItem] | list[List[Dict[str, Any]]]" required />

<ParamField path="processed_outputs" type="dict" required />

## `sort_csv`

Sort a CSV based on a column

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").sort_csv(file=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="is_file_variable" type="bool" default="True">
  Whether the file is a variable.
</ParamField>

<ParamField path="has_headers" type="bool" default="True">
  Whether the CSV has headers.
</ParamField>

<ParamField path="column_index" type="int" default="0">
  The index of the column to sort by.
</ParamField>

<ParamField path="file" type="AcceptsFile" required>
  The CSV file to sort.
</ParamField>

<ParamField path="reverse_sort" type="bool" default="False">
  Whether to reverse the sort.
</ParamField>

<ParamField path="column_to_sort_by" type="str" default="''">
  The column to sort by.
</ParamField>

## `split_text`

Takes input text and separate it into a List of texts based on the delimiter.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").split_text(text="...", character="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="delimiter" type="str" default="'space'">
  The delimiter to split the text on
  One of: `character(s)`, `newline`, `space`
</ParamField>

<ParamField path="text" type="str" required>
  The text to split
</ParamField>

<ParamField path="character" type="str" required>
  The character(s) to split the text on
</ParamField>

## `table`

Table

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table()
  ```
</CodeGroup>

**Parameters**

<ParamField path="sub_type" type="str" default="''" />

## `table_add_columns`

Add one or more columns to a table.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table_add_columns(table=..., columns=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="table" type="AcceptsTable" required />

<ParamField path="columns" type="dict" required />

## `table_add_row`

Add New Row to Table.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table_add_row(table=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="table" type="AcceptsTable" required />

## `table_aggregate`

Aggregate data from a table.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table_aggregate(aggregation_column="...", aggregation_type="AVG", dataframe=..., group_by_columns=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="aggregation_column" type="str" required />

<ParamField path="aggregation_type" type="str" required>
  One of: `AVG`, `COUNT`, `MAX`, `MIN`, `SUM`
</ParamField>

<ParamField path="dataframe" type="AcceptsTable" required />

<ParamField path="group_by_columns" type="list[str]" required />

## `table_delete_columns`

Delete one or more columns from a table.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table_delete_columns(table=..., columns=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="table" type="AcceptsTable" required />

<ParamField path="columns" type="list[str]" required />

## `table_delete_values`

Delete rows matching a filter.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table_delete_values(table=..., filters="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="table" type="AcceptsTable" required />

<ParamField path="filters" type="str" required />

## `table_read_columns`

Select column in table to read as list.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table_read_columns(column_name="...", dataframe=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="column_type" type="str" default="'any'">
  The expected type of the column values

  <Expandable title="Allowed values">
    `any`, `audio`, `bool`, `file`, `float`, `image`, `int32`, `knowledge_base`, `list&lt;file&gt;`, `list&lt;string&gt;`, `string`, `timestamp`
  </Expandable>
</ParamField>

<ParamField path="column_name" type="str" required>
  The name of the column to read
</ParamField>

<ParamField path="dataframe" type="AcceptsTable" required>
  The table to read from
</ParamField>

## `table_rename_column`

Rename a column in a table.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table_rename_column(table=..., column="...", new_name="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="table" type="AcceptsTable" required />

<ParamField path="column" type="str" required />

<ParamField path="new_name" type="str" required />

## `table_update_values`

Update the values in rows matching a filter.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").table_update_values(table=..., filters="...", values=...)
  ```
</CodeGroup>

**Parameters**

<ParamField path="table" type="AcceptsTable" required />

<ParamField path="filters" type="str" required />

<ParamField path="values" type="dict" required />

## `text_formatter`

Format text based off a specified formatter

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").text_formatter(text="...", max_num_token=0)
  ```
</CodeGroup>

**Parameters**

<ParamField path="formatter" type="str" default="'To Uppercase'">
  The formatter to apply to the text
  One of: `To Lowercase`, `To Propercase`, `To Uppercase`, `Trim Spaces`, `Truncate`
</ParamField>

<ParamField path="text" type="str" required>
  The text to format
</ParamField>

<ParamField path="max_num_token" type="int" required>
  The maximum number of tokens to truncate the text to
</ParamField>

## `text_manipulation`

Process and manipulate text

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").text_manipulation()
  ```
</CodeGroup>

**Parameters**

<ParamField path="sub_type" type="str" default="''" />

## `write_json_value`

Update a specific value in a JSON.

<CodeGroup>
  ```python Sync theme={"languages":{}}
  pipeline.add(name="node").write_json_value(json_string="...")
  ```
</CodeGroup>

**Parameters**

<ParamField path="selected" type="str" default="'new'">
  Whether to update the JSON value or create a new JSON
  One of: `new`, `old`
</ParamField>

<ParamField path="fields" type="ListType | list[KeyValue] | list[List[Dict[str, Any]]]" default="[]" />

<ParamField path="json_string" type="str" required>
  The JSON to update
</ParamField>
