---
title: "Read Station Messages"
method: GET
path: "/v1/teams/{team_id}/stations/{station}/messages"
tags: ["stations"]
---

# Read Station Messages

`GET /v1/teams/{team_id}/stations/{station}/messages`

What has landed in this place — its mailbox, newest first.

THE READ THAT MAKES A FORWARD REAL. `channel_messages` had no writer until
`forward` and no reader until this, so a line handed to a desk was a row
nobody could ever look at: the count on the rail knew about the ones still
ASKING, and everything else was invisible. A delivery you cannot inspect is
indistinguishable from one that never happened.

THE READER'S CEILING IS THE FILESYSTEM'S. Rows carry no directory to hide
behind, so `channels.stream` filters on `metadata->>'visibility'` through
the same ladder a file is masked by — the reason that key exists at all
(`runtime/channels.py`, and the turn that once saw 71 other customers'
transcripts).

## Path parameters

- `team_id` string, uuid, required
- `station` string, required

## Query parameters

- `limit` integer

## Headers

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

## Response `200`

Successful Response

- StationMail
  - `station` string, required
  - `lines` StationLine[]
    - `id` string, required
    - `role` string, required
    - `kind` string, required
    - `body` string, required
    - `ref` string
    - `sender` string
    - `at` string
    - `answered_at` string

## Other responses

- `422` — Validation Error

## Changes

> 32 revisions in range; 1 not diffed.

- **2026-09-11** `79b0c0f35170` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/stations/:station/messages/get.md)

---

[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/b09e3c4ee2af?raw)
