For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Logo
ContactLearn More
GuidesReferenceSamplesLicenseChangelog
GuidesReferenceSamplesLicenseChangelog
  • SDKs
    • Overview
  • REST
      • POSTCreate task
      • GETGet task
      • PUTUpdate task status
      • PUTCancel task
      • POSTQuery tasks
      • STREAMStream tasks
      • POSTListen as agent
      • STREAMStream as agent
      • STREAMStream manual control frames
  • gRPC
ContactLearn More
RESTTasks

Stream manual control frames

Beta
POST
https://example.developer.anduril.com/api/v1/tasks/:taskId/manual-control/stream
POST
/api/v1/tasks/:taskId/manual-control/stream
$curl -X POST https://example.developer.anduril.com/api/v1/tasks/taskId/manual-control/stream \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{}'
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`).
Was this page helpful?
Previous

List objects

Next

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).

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

taskIdstringRequired
The ID of the manual control task to receive frames for.

Request

This endpoint expects an object.
heartbeatIntervalMsintegerOptional

The time interval, in milliseconds, that determines the frequency at which to send heartbeat events. Defaults to 30000 (30 seconds).

Response

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

A single frame of manual control input forwarded by Lattice to an agent.

When an operator sends manual control input, for example, joystick movements using SendManualControlFrames, Lattice packages each input into a ManualControlFrame and forwards it to the executing agent via the ListenForManualControlFrames streaming RPC.

Each frame carries sequencing metadata to support concurrent control sessions, detect stale frames, and ensure proper ordering.

Errors

400
Bad Request Error
401
Unauthorized Error