---
title: "Repo Overview"
method: GET
path: "/v1/teams/{team_id}/repo/overview"
tags: ["team repo"]
---

# Repo Overview

`GET /v1/teams/{team_id}/repo/overview`

## Request

- Base URL: `https://api.stormy.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stormy.ai/v1/teams/{team_id}/repo/overview`
- Auth: none declared

The branch bar and the About panel in one read.

Also the row a workspace index draws: an operator asking "which customer
trees are alive" wants last-touched and commit count per workspace, and one
call per team beats six.

`uncommitted` has no equivalent on a git host and is the reason this is not
a link to GitHub: it counts writes the agent has made but not yet committed,
which are real content the next call will read.

A TEAM WITH NO TREE IS THE EMPTY STATE, NOT A 404 — the same answer `/tree`
gives, for the same reason. This is the row a workspace index draws, and a
team the agent has never written into is a normal row rather than a hole.
It raised 404 until 2026-08-09, which cost two things: the workspace list
fired one 404 per treeless team every poll, and the client had to `catch`
to draw the row at all — so a genuine failure (403, 500, network) was
indistinguishable from "never written to" and got reported to the operator
as fact about their data. `initialized` was already in the response and
already typed on the client; it was just never once false.

## Path parameters

- `team_id` string, uuid, required

## Query parameters

- `ref` string

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/4d811ab18158?raw)
