---
title: "Route input from the board’s input bar"
method: POST
path: "/v1/router"
tags: ["Board"]
---

# Route input from the board’s input bar

`POST /v1/router`

## Request

- Base URL: `https://api.shardflux.dev`
- URL: `https://api.shardflux.dev/v1/router`
- Auth: HTTP bearer

Decides which project the input belongs to (or the home, for personal work), whether it is a new task, a question, or a steer for an open task, and splits an input that asks for several tasks into the person’s own words per task, each with a title. It reads the projects and open tasks you can see; it never starts work and never reaches a computer.

`selected_task_id`: the row the person points at; input about it steers it unless it asks about it. `?` or "quick question" at the start makes it a question. When it is unclear whether the input is a task or a question, it is a question.

## Request body

- object
  - `text` string, required
  - `selected_task_id` string, nullable: A task id (`t_…`).
  - `organization_id` string, uuid: UUIDv7, lowercase canonical form.
  - `project_id` string, uuid: UUIDv7, lowercase canonical form.

## Response `200`

Default Response

- RouterResult
  - `kind` 'task' | 'question' | 'steer', required
  - `parts` object[], required: task: one part per task (1 to 4). question and steer: one part with the whole text.
    - `text` string, required: The person’s own words for this part: the whole input, or a verbatim span of it when the input asks for several tasks.
    - `title` string, nullable, required: A short title, set when the input was split into parts. A single task is titled after it is created (its `title` arrives on the task).
    - `project_id` string, uuid, nullable, required: UUIDv7, lowercase canonical form.
    - `home` boolean, required: Personal work with no repository: it runs on the home.
    - `confidence` number, required
  - `task_ref` string, nullable, required: A task id (`t_…`).
  - `confidence` number, required
  - `uncertain` boolean, required: Show the project chip as uncertain (confidence below 0.6): one key fixes it.
  - `forced` 'question', nullable, required: `question` when the input started with `?` or "quick question".
  - `routed_by` 'model' | 'rules', required
  - `latency_ms` integer, required

## Other responses

- `4XX`: Default Response
- `5XX`: Default Response

---

[API](https://skmtc.dev/shardflux/apis/shardflux-api.md) · [All operations](https://skmtc.dev/shardflux/apis/shardflux-api/llms.txt) · [OpenAPI document](https://skmtc.dev/shardflux/apis/shardflux-api/revisions/ea685f7b39c4?raw)
