---
title: "Stream manual control frames"
method: POST
path: "/api/v1/tasks/{taskId}/manual-control/stream"
tags: ["tasks"]
---

# Stream manual control frames

`POST /api/v1/tasks/{taskId}/manual-control/stream`

Establishes a server streaming connection that delivers manual control frames to agents
using server-sent events (SSE).

This endpoint streams manual control frames, for example, for joystick movements, for a specific task
to the executing agent. The agent should open this stream before reporting `STATUS_EXECUTING`
to ensure it is ready to receive control input when the operator begins sending frames.

Each frame includes epoch and sequence metadata for handling concurrent control sessions
and detecting stale or out-of-order frames. Heartbeat messages are sent periodically to
maintain the connection.

The stream terminates automatically when the task reaches a terminal state
(`STATUS_DONE_OK` or `STATUS_DONE_NOT_OK`).

## Path parameters

- `taskId` string, required

## Headers

- `Authorization` string, required

## Request body

- ManualControlStreamRequest — The request to establish a streaming connection using server-sent events (SSE) for receiving manual control frames for a specific task.
  - `heartbeatIntervalMs` integer — The time interval, in milliseconds, that determines the frequency at which to send heartbeat events. Defaults to 30000 (30 seconds).

## Response `200`

Returns a stream of manual control frames as they are sent by the operator.

## Other responses

- `400` — Bad request
- `401` — Unauthorized to access resource

---

[API](https://skmtc.net/anduril/apis/rest.md) · [All operations](https://skmtc.net/anduril/apis/rest/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/anduril/rest/versions/c2a841b48ac6/schema)
