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

# Router Actions Reference

> Reference for router action metadata, categories, and payload structure

## Overview

Router actions are backend-defined and fetched by Bud admin from `/routers/actions`. The response provides action categories, parameter definitions, output definitions, icons, colors, descriptions, and validation metadata.

## Action Metadata

Each action includes metadata similar to:

| Field         | Description                                          |
| ------------- | ---------------------------------------------------- |
| `type`        | Stable action type used in router steps              |
| `name`        | Human-readable action label                          |
| `description` | Explanation shown in the editor                      |
| `icon`        | Optional icon for action cards                       |
| `color`       | Optional display color                               |
| `params`      | Parameter schema rendered in the configuration panel |
| `outputs`     | Output names available to downstream configuration   |

## Supported Parameter Types

The router editor supports a broad set of parameter renderers:

| Type                                                | Purpose                                       |
| --------------------------------------------------- | --------------------------------------------- |
| `string`, `number`, `boolean`                       | Basic scalar fields                           |
| `select`, `multiselect`                             | Fixed or dynamic option lists                 |
| `json`, `template`                                  | Structured configuration and templated values |
| `range`                                             | Numeric range controls                        |
| `model_ref`, `cluster_ref`, `project_ref`           | Bud resource references                       |
| `endpoint_ref`, `endpoint_ref_list`                 | Single or multiple endpoint references        |
| `endpoint_weighted_list`                            | Weighted endpoint routing configuration       |
| `endpoint_ordered_list`                             | Ordered fallback endpoint configuration       |
| `provider_ref`, `credential_ref`, `cloud_model_ref` | Provider-backed integrations                  |
| `branches`                                          | Decision branch configuration                 |
| `content_rule_list`, `string_list`                  | Rule and list inputs                          |

## Router DAG API Shape

When saving a router, the UI converts editor steps into `dag_config`:

```json theme={null}
{
  "name": "support-routing-router",
  "description": "Routes support prompts to the best endpoint",
  "entry_step": "step_signal",
  "steps": [
    {
      "step_id": "step_decision",
      "action_type": "decision_rules",
      "name": "Choose Route",
      "params": {},
      "conditions": [],
      "depends_on": [],
      "next_steps": ["step_algorithm"]
    }
  ],
  "parameters": [],
  "outputs": {}
}
```

```mermaid theme={null}
flowchart LR
    Editor[Editor DAG] --> Mapper[Save Mapper]
    Mapper --> Config[dag_config]
    Config --> API[PUT /routers/{id}]
    API --> Active[Active Router]
```

## Router Resource Fields

| Field         | Description                                 |
| ------------- | ------------------------------------------- |
| `id`          | Router identifier                           |
| `project_id`  | Owning project identifier                   |
| `name`        | Router name used by the UI and API snippets |
| `description` | Router summary                              |
| `tags`        | Optional colored labels                     |
| `icon`        | Display icon                                |
| `dag_config`  | Router graph configuration                  |
| `status`      | `draft`, `active`, or `inactive`            |
| `step_count`  | Number of configured steps                  |
| `created_at`  | Creation timestamp                          |
| `modified_at` | Last modification timestamp                 |

## Validation

Action parameters can be validated through `/routers/actions/validate`. Bud admin also performs client-side checks for required fields, empty arrays in required list parameters, ranges, string lengths, patterns, and conditional field visibility.
