---
title: "Stream User States"
method: POST
path: "/user_states/stream"
tags: ["user-states"]
---

# Stream User States

`POST /user_states/stream`

Stream board generation via SSE.

Accepts ``application/json`` (legacy, text-only) or ``multipart/form-data``
(new, supports any combination of ``audio``, ``image``, ``document``, and
``feedback`` fields). When audio is provided, the stream emits
``transcribing`` → ``transcript`` before board partials. When an image or
PDF is provided, the stream emits ``analyzing`` immediately so the UI can
show progress before the agent starts.

Delivers partial board fields progressively as the agent generates them.
If the client disconnects mid-stream on a text-only turn, generation
completes in the background and a push notification is sent. Multimodal
turns skip recovery (the upload would have to be redone) and surface the
disconnect to the client instead.

## Query parameters

- `user_id` string, nullable

## Headers

- `accept-language` string, nullable
- `x-device-timezone` string, nullable
- `x-units` string, nullable

## 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/55d56c4beab4/schema)
