---
title: "Record Console Turn"
method: POST
path: "/v1/teams/{team_id}/console/turns"
tags: ["agent runtime"]
---

# Record Console Turn

`POST /v1/teams/{team_id}/console/turns`

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

Record what a HUMAN typed at their terminal, under their own identity.

Stormy's terminal hands the owner's words straight to a worker, so the one
fact that governs every human-in-the-loop gate — a person said this — had
no record anywhere. Whoever runs the terminal writes the owner's message
here with the OWNER's credential, and the turn is stamped with the
authenticated principal.

An agent principal is refused outright. The whole value of the record is
that nothing which is not a human can appear in it, so no worker can
manufacture the human half of its own approval.

## Path parameters

- `team_id` string, uuid, required

## Headers

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

## Request body

- ConsoleTurnRequest: One message a human typed at their own terminal. No principal field, by design: WHO said it is the authenticated caller, resolved server-side. A caller can never claim a message on someone's behalf, so "a human said this" stays a fact about the credential.
  - `text` string, required
  - `client_turn_id` string, required

## Response `201`

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