---
title: "Open a fresh kanban board (browser redirect)"
method: GET
path: "/todo"
tags: ["Boards"]
---

# Open a fresh kanban board (browser redirect)

`GET /todo`

## Request

- Base URL: `https://cnvs.app`
- URL: `https://cnvs.app/todo`
- Auth: none declared

Human-friendly entry point for sharing a new todo/kanban board. Creates a fresh board already in `todo` mode (starter columns seeded server-side) and responds with `302 Found` to `https://cnvs.app/#<id>` — a clean URL you can paste into chat. Optional query `template` (`kanban` — default — / `sprint` / `bugs`) selects the starter column set, same as `POST /api/boards { mode: "todo", template }`.

Shares the `POST /api/boards` per-IP create cap (5 / 60s per `CF-Connecting-IP`).

## Query parameters

- `template` 'kanban' | 'sprint' | 'bugs'

## Other responses

- `302`: Redirect to the new board at `/#<id>`.
- `429`: Rate limit exceeded. Standard REST/MCP: 60 requests/10s/board; valid X-Import-Token infrastructure tier: 600/10s/board; browser WebSocket always 60/10s/board. REST/MCP enforcement is soft per-isolate; WebSocket enforcement is strong per Durable Object.

---

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