---
title: "Stream Presence"
method: GET
path: "/v1/teams/{team_id}/presence/stream"
tags: ["agent runtime"]
---

# Stream Presence

`GET /v1/teams/{team_id}/presence/stream`

## 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}/presence/stream`
- Auth: none declared

The rail's live wire — presence pushed, not polled.

ONE CONNECTION PER PERSON, NOT FIFTEEN REQUESTS A MINUTE PER TAB. The poll
this replaces was correct and expensive in the same breath: it asked "is
anything working" every four seconds forever, and was still up to four
seconds late with the answer. The browser keeps `GET /presence` as the
opening read and the fallback when a stream cannot be held, so nothing here
is load-bearing for correctness — it is the difference between a light that
is right and a light that is right IMMEDIATELY.

## Path parameters

- `team_id` string, uuid, required

## Headers

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

## Response `200`

Successful Response

- unknown

## 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)
