Skip to main content
POST
Error

Authorizations

Authorization
string
header
required

The control surface credential. Send Authorization: Bearer <token>.

Two kinds of token are accepted and they are told apart by shape, not by a separate header. A token beginning pbk_ is an org scoped API key, whose public half and secret half are generated together and of which only a hash of the secret is ever stored; anything else is treated as an OAuth 2.1 access token and verified against the authorization server's keys.

Both resolve to the same context: an org, a principal and a set of scopes. Nothing downstream branches on which channel you used, with one deliberate exception, key management, which requires a signed-in person so that a key can never mint another key.

Scopes are enforced when MCP tools are REGISTERED rather than when they are called, so a tool your credential cannot use is absent from tools/list rather than refused mid gesture.

Path Parameters

deviceId
string
required

The deviceId from a listing.

Response

The stop reached the arm. Read stopped, pending and reason for what it managed.

deviceId
string
required

The device that was stopped.

stopped
boolean
required

Whether the arm stopped. False when its controller took the request but could not finish yet; then pending is true and reason says why. An arm that did not answer at all is an error, not a false here.

penLifted
boolean | null
required

Whether the arm reports it lifted the pen, or null when it did not say.

at
string | null
required

When the arm stopped, on the arm's clock, or null when it did not say.

pending
boolean
required

True when the arm's controller was still busy when it answered: the stop is taken and the arm may still be settling for a moment. False otherwise.

reason
string

Why the stop did not finish, when the arm says: coordinates_invalid, controller_not_idle, lift_failed or motion_busy today. Read any other value as a generic failure to stop. Absent when the stop finished.