---
title: "Stream Goal Turn"
method: POST
path: "/goals/turn/stream"
tags: ["goals"]
---

# Stream Goal Turn

`POST /goals/turn/stream`

Run one turn and stream it: reply deltas first, document last.

Written or spoken, it is the same turn against the same conversation, so
it is one endpoint taking one of the two: a ``message``, or an ``audio``
note that gets transcribed into one. Both at once is a request the page
could not have meant, so it is refused rather than silently resolved.

``delivery`` names how the REPLY reaches the athlete — ``voice`` only when
a live voice front will speak it (the call sideband's turns). A voice-note
upload is still a text turn: its reply lands on the screen.

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) · [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/imperfect/imperfect-api/revisions/cc2293a44257/schema)
